People who work in IT have many routine tasks that must be done regularly.
Some of these tasks must be performed manually, but many can be automated.
Automating a task frees up time for other things that require more careful consideration.
And it reduces the boredom that comes from doing the same thing over and over.
One way to automatic routine tasks is by writing small programs that do one specific thing.
These programs are best written in programming languages which are simple and flexible.
Languages designed for large projects, such as Java and C++, are not suitable for this work.
To meet this need, scripting languages such as Perl, Python and PHP have been created.
These languages are designed to be easier to learn than more demanding programming languages such as Java, C and C++.
This course will teach the basics of the Python scripting language and show you how it can be used to automate routine tasks.
This course can be used to as one of the 2 programming courses for the IT degree.
This is not a course where you can put off studying until just before the exam.
Programming languages take time to learn.
They can be very fussy about things like spelling and punctuation.
Most programs do not work the first time you run them.
If you make a mistake, you will usually get an error message which may be hard to understand at first.
Experience has taught me that the best way to learn a programming language is with a great deal of practice.
I've structured this course to provide you with that practice.
Each week you will need to submit 3 assignments and take a quiz.
You should be prepared to put in several hours a week in this course if you want to learn the material.
If you are not prepared to put in substantial amounts of time you should not be taking this course.
Starting Out with Python, 5th Edition
by Tony Gaddis
Pearson
ISBN-10: 0-13-4774602 | ISBN-13: 978-0-13-4774602
Earlier versions of this text can also be used.
This book is recommended, but not required, for this course.
ACM Code of Ethics and Professional Conduct available from https://ethics.acm.org.
All students must have an account on the Unix machines run by the Computer Science department.
All students must have a class directory for this course on the CS Unix machines.
Both the Unix account and the class directory can be obtained by going to the CS Portal on the web.
You will find instructions on how to do this here.
Each student must go to the CS Portal and sign up for this class.
You must do this to get a Unix account if you don't have one.
If you already have a Unix account you must also do this.
Signing up for this class on the Portal creates a class directory for your account, which you will need to submit your assignments.
You cannot submit any work for this course if you do not have a class directory.
This course will require you to write Python programs.
Python programs are text files containing statements in the Python language.
These programs must run in Python version 3.5 or above.
In order to receive credit for your programs they must be moved to your class directory on the Unix machine pe15.cs.umb.edu.
I will show you how to do this using a nice program called FileZilla.
It runs on both PCs and Macs
Programs not placed in the correct directory inside your class directory will not be scored.
You can create these files on your own machine and upload them to your class directories using FileZilla.
For each class you must write a program called a Class Exercise.
You simply copy the code from the Class Exercise into a text file on your own machine.
Then copy it to pe15.cs.umb.edu using Filezilla.
Class Exercises for the week must be submitted by the following Sunday at 11:59 PM.
Each Class Exercise will be graded on completion.
If the code does everything it should do and does not show any errors, you will receive the full 100 points for that exercise.
There will be two types of quizzes
The Class Quizzes are made available at the end of each class and are not graded.
The purpose of the Class Quizzes is to help you learn the material.
You should print the Class Quiz then answer the questions.
Then check them against the Class Quiz Answers on the class web site.
Studies have shown that taking a quiz immediately after hearing new material helps you learn.
The Weekly Quizzes are graded.
Their purpose is to encourage you to study the material as we go along.
And not postpone studying until just before the exams.
All questions on the Weekly Quizzes come from the ungraded Class Quizzes.
They will usually cover the material from the previous week.
The weekly graded quizzes will be given on Tuesday, starting in the third week of class.
The graded Quiz will be given in the online testing platform Gradescope in the final minutes of the Tuesday class.
Since the weekly quiz is online you will be able to take it even if you are not in class.
If you miss a quiz your score on it will be 0.
There will be no makeup for a missed quiz because Gradescope does not permit it.
If you have a valid reason for missing the quiz, send me an email.
There will be weekly homework assignments.
There will be two exams
You will need to have three software packages on your machine to complete the work for this course
An SSH client allows you to log in to a Unix machine from your computer.
Mac OS comes with an SSH client already installed.
There are many free SSH clients available for Windows users.
A very popular one is putty.exe which can be downloaded here
FileZilla makes it easy to move files from your machine to a Unix machine.
You can download it here.
You can download the latest version of Python here.
Python comes with an editor called IDLE that you should use to write Python programs.
If you have a laptop, you should bring it to class.
You will need it to take the graded quizzes on Gradescope.
There may also be time at the end of each class to work on the Class Exercise.
But you CANNOT use your laptop during my lecture.
Studies have shown that students who use laptops in class do less well than students who don't.
That's because students use laptops in class to view things not related to class material.
You can read a summary of these results here and here .
I will begin each class by saying "Screens Down".
If you believe you have a special need that requires you to use a laptop in class, see me.
Smart phones make you stupid.
And mess up your life.
They are addictive and take time away from the important work of learning.
They are a distraction that will harm your grade.
If you are looking at your phone you are not paying attention to what is happening in class.
Most of you are going into debt to attend this class.
If you are mesmerized by your phone you are not getting your money's worth
For these reasons you may not use a phone when I am talking.
If you do, I will ask you to put it away.
If you refuse you must leave the class.
Or I will call security.
If you need to take or receive a call, leave the room until you are done.
I take attendance in each class.
I used to say that I did this to learn your names.
That is still the main reason.
But COVID taught all of us that in-person teaching is important.
To encourage attendance, it will count as 5% of your grade.
If you cannot make it to class, send me an email.
You will not be marked as absent if you have a valid excuse.
If you believe you have a valid reason for taking classes remotely, send me an email.
But even if I let you learn remotely, you will have to take the exams in person.
All class meetings are recorded.
You will find links to the videos here.
Everything I create for this class is available on on the web and all of it can be accessed from the class web page, http://www.cs.umb.edu/~ghoffman/it116_html/class_page_it116
On this page you will find links to the following
All homework and exams are subject to the University's Code of Conduct .
Plagiarism is not tolerated in any form.
Grades will be computed as follows:
Attendance | 5% |
Homework | 10% |
Class Exercises | 15% |
Weekly Quizzes | 20% |
Midterm Exam | 20% |
Final Exam | 30% |
Final grades will be assigned based on the following scale:
A | > 100 - 93 (the Registrar does not accept an A+ grade) |
A - | 92 - 90 |
B + | 89 - 86 |
B | 85 - 83 |
B - | 82 - 80 |
C + | 79 - 76 |
C | 75 - 73 |
C - | 72 - 70 |
D + | 69 - 66 |
D | 65 - 63 |
D - | 62 - 60 |
F | < 60 |
If you look carefully at how grades are calculated you will see that your scores on the two exams determines half of your grade.
If you do very well on the other assignments, but poorly on the exams, your grade will suffer.
You should think of the other assignments as tools to help you prepare for the exams.
Scoring assignments takes a great deal of time.
To do this efficiently, I score each assignment once and only once.
All assignments are due on Sunday at 11:59 PM.
But I do not score them until the following weekend.
I run a collection script many times during the week after an assignment is due.
Usually on Monday, Wednesday and Friday.
If my scripts cannot find your assignment, you will get an email message to that effect.
You will lose 2 points for each day an assignment is late.
You will get a 0 for the assignment if it is not in the correct directory when I run the collection script for the last time.
If you have a personal emergency, contact me I will give you an appropriate extension.
You will receive frequent emails from me sent to your UMB email account.
You get an email if I cannot find your homework or Class Exercise script.
You will receive grades for homework assignments and Class Exercises by email.
If there are problems with your Class Exercise scripts you will get an email warning.
Gradescope will send you an email when scores on Quizzes and exams are available for you to see.
If a class needs to be cancelled for some reason, I will send an email to all students.
All these notifications will be sent to your UMB email address.
For this reason, it is important that you forward your UMB email to an account you check regularly.
Forwarding your UMB email is part of your first homework assignment.
Gradescope is is an online application for giving and grading quizzes and exams.
You will have to connect the the Gradescope website to take the the weekly graded quiz.
The quiz will only be available during a 15 minute window at the end of class.
The Midterm and Final will be in-person, paper exams.
I will use Gradescope to score them.
You will receive an email from Gradescope when a quiz or exam has been scored.
If you think I have made a mistake you can ask for a rescore on individual questions within Gradescope.
You can find more information about Gradescope here.
Most students at UMB have many demands on their time.
They work many hours outside of school and take several courses.
Under normal circumstances, most students can handle the load.
But sometimes life throws you a curve.
A family emergency, health issues, or problems at work can make it hard to keep up with your coursework.
If this happens see me.
Often I can help.
But you need to do this soon as you start to fall behind.
If you wait until the end of the semester there is much less that I can do to help.
Our world is better when everyone gets a chance to make the most of their life.
Sadly, many people do not get a chance to do their best.
I want to do everything I can to help all of you do have successful, healthy lives.
This reflects our official department policy, which you can read here.
If there is something I can do to help you, please let me know.
Section 504 of the Americans with Disabilities Act of 1990 offers guidelines for curriculum modifications and adaptations for students with documented disabilities.
Students may obtain adaptation recommendations from the Ross Center for Disability Services.
Their web site is https://www.umb.edu/academics/vpass/disability.
A student must present these recommendations and discuss them with me within a reasonable period, preferably by the end of Add/Drop period.
I put a lot of work into my classes.
If I see you looking furtively at your cell phone while I'm talking, I wonder why I am doing this.
If I hear you having an extensive conversation with your neighbor, it makes me feel that I am wasting my time here.
I could make more money doing other things, but I find this work important.
I am working hard to teach you material that will help you get a job and have a good life.
Please respect that effort while you are in this room.
Our civilization is the product of thousands of years of human improvement.
This civilization gives us a way of life considerably better than the first humans who walked this earth.
There are many social inventions, like the law and science, which allow us to maintain this civilization.
One such invention is the university.
One of the key principles of any university is academic integrity.
Academic integrity requires that all of us be honest, trustworthy, responsible, respectful, and fair in the work we do here.
It also means that when we use the work of others, we note the source.
These are important values, and when societies fail to uphold them bad things happen.
By enrolling in this university, you have agreed to abide by these these principles.
Many students worry about their Grade Point Average.
They feel that a good GPA is needed in order to get a job.
It is certainly worthwhile to get the best grades you can.
But your GPA will probably only be a factor in getting your first job.
In the long run what is more important is your reputation.
Do you have a good work ethic?
Do you get along well with the people you work with?
Are you reliable?
Are you honest?
The last quality is particularly important in IT.
IT professionals have access to information that is extremely valuable to any organization.
Why would anyone hire you if you can't be trusted?
The goal of education is to pass on the knowledge and wisdom accumulated down through the centuries of human experience to young people so they can make the most of their lives.
Education is the mechanism by which one generation transmits knowledge to the next.
Without education, human civilization would crumble.
Those of us who teach have a duty to present what we have learned in a clear and honest way.
A teacher who lies is betraying a fundamental principle of education.
Honesty is also expected of you.
You have entered into an institution where honesty is a core principle.
If you are dishonest, you violate that principle.
Honesty is expected of you and if you are not honest, there will be consequences.
Our University takes the principles of academic honesty very seriously.
The preamble to the Academic Honesty section the Code of Student Conduct of the University reads as follows
It is the expressed policy of the University of Massachusetts Boston that every aspect of academic life—including formal coursework situations as well as all relationships and interactions connected to the educational process—shall be conducted in an absolutely and uncompromisingly honest manner. The University presupposes that any work submitted by a student for academic credit indicates that the work is the student’s own and complies with University policies. In cases where academic dishonesty is discovered after completion of a course or degree program, sanctions may be imposed retroactively up to and including revocation of the degree. Any student who reasonably believes another student has committed an act of academic dishonesty should inform the course instructor of the alleged violation.
You should read these words carefully and make sure you understand them.
You can find the complete text of the Student Code of Conduct here.
Anything you write on a quiz or test in this class must come from your own knowledge.
You may not copy from another student or use electronic devices or software to help with your answer on a quiz or exam.
You may work with others on your homework assignments, but only with students in this class.
If you work with other students on an assignment you must list all their names in a comment at the top of the script.
You must not copy lines of code from the Internet or any other source into your assignments.
If you do you are cheating.
Students working in groups on an assignment must each type their own copy of the script.
They cannot simply copy a file an make a few changes.
You must not copy any homework assignment or Class Exercise to any site on the Internet.
This include "homework help" sites like chegg.com.
The first homework assignment includes an oath swearing that you will not be dishonest in this class.
You must write out this oath in your own handwriting, sign it, photograph it and send it to me in an email.
I will not grade any work from you unless I have a copy of this oath from you.
Cheating will not be tolerated in this class.
I have a zero tolerance policy with regard to cheating.
Any cheating it will be reported to the Provost and may become part of your permanent record.
Copying files is cheating.
If copying is detected, both students will receive a 0 on the assignment.
And the incident will be reported.
If you cheat more than once on a homework assignment, Class Exercise, Quiz or exam, you will fail the course.
Students who cheat on an exam will automatically fail the exam.
Students who post homework assignments, Class Exercises, or quiz and exam questions to a site on the Internet will be reported to the Provost.
You may not use any artificial intelligence programs in creating work for this course.
If you do, it will be treated as a violation of academic honesty and subject to the penalties mentioned above.
If you have questions about the material or the assignments, you should post them to the class discussion area.
This discussion area is provided by Piazza, which is a platform to help students share information.
You need to register for the discussion area, which you can do at https://piazza.com/umass_boston/fall2024/it11611.
The URL for the discussion area is https://piazza.com/umass_boston/fall2024/it11611
If you find yourself stuck on anything, post it here.
I will check Piazza frequently and answer question as they appear.
If you see a question and know the answer, you can respond to it on Piazza.
I will check these replies and approve or modify them as appropriate.
You can post questions anonymously on Piazza, if you prefer.
Each of my classes has a Class Assistant who can help you with your assignments.
This student is an undergraduate who has taken this course.
The Class Assistant for this class is Imran Rashid and you can reach him at Imran.Rashid001@umb.edu.
Feel free to contact the him if you are having trouble with an assignment.
You can request a Zoom meeting with with him to help you solve a problem.
There is a link to information about the Class Assistant on the Class Web Page.
The first universities appeared in Europe over 1,000 year ago.
Since then, the what happens in classrooms has not changed much.
The teacher stands at the front of the class and lectures to the students.
The first universities arose before the printing press.
There were no textbooks.
Books had to be copied by hand so they were very expensive and rare.
The instructor read from one of these books and the students took notes.
The word "lecture" comes from the Latin word for read.
Students had to study from their notes, because there were no textbooks.
Much has changed since then, but most teachers in universities still lecture.
Recent research has shown that this is not an effective way to learn.
Students learn by doing and by interacting with the instructor.
The more students participate in class, the more they learn.
I want you to interact with me.
I want you to ask questions.
I want you to make comments.
The more you interact with me, the more you learn.
This will make the class more interesting for you and for me.
I will take note of the students who speak up.
Such student may get a point or two added to their score when I calculate grades.
When I first taught at UMB I printed the Class Notes and handed them out to students.
I don't do this anymore because I want you to take notes.
Studies have shown that students learn more when they take notes.
This is true even if the students never look at their notes again.
The more senses you engage when studying, the more you learn.
The act of writing engages different parts of the brain than when you just listen.
This increases what you remember.
You can find a study showing this here .
Other studies have show that writing notes by hand, is better than typing.
Some people type so fast, that they don't process what they type.
Copying by hand forces you to slow down and pay more attention to the material.
All of you should take notes.
Another effective study technique is to rewrite my class notes in your own words.
This most important thing to learn in this class is how to learn new a new technology.
When I first programmed computers in the 60s we used punch cards.
I programmed in a language called Algol 60.
Neither of these technologies is used today.
Some of what you learn in your courses today, will not be around in a decade or two.
If you want a career in IT you will have to learn new technologies as they come along.
Learning a new technology requires good work habits and discipline.
If you learn these now, they will serve you throughout your life.
You should have a specific times set aside each week for this class.
It is better to have several study sessions than one long one.
Start working on the homework assignment as soon as it is assigned.
At the very least read the assignment.
Don't begin work on the assignment the day it is due.
Most of us spend a large part of each day reading.
Most of this reading is done quickly because the material is familiar and the details are not that important.
Most of the time we read, we know what to expect.
For example, if you get text from a friend, you don't linger over each word.
You have some idea of what he or she is going to say, so you can read it quickly.
The same thing happens when you read about the last game of your favorite team.
The details aren't important, just the overall picture.
The reading you will do for this course is fundamentally different.
Technical work is detailed work.
If you read technical material too quickly, you will miss important details.
You must learn to read technical material slowly and carefully.
You must learn to reread something you have already read until you fully understand it.
Learning this skill may be the most important thing you take away from this class.
My name is Glenn Hoffman.
My official title is Lecturer.
I am also the Program Director for the Information Technology Program in the Computer Science Department.
I prefer to be addresses by my first name, Glenn.
In all the high-tech jobs I've had, people called each other by their first names.
Many years ago I worked for a neuroscientist at Harvard.
All of us called him Randy, not Dr. Buckner.
I graduated with a Bachelor of Science degree in Computer Science from UMB.
After many years of work, I returned to UMB to earn a Masters in Computer Science.
My most recent work outside of UMB has been as a LAMP developer.
LAMP stands for Linux, Apache, MySQL and PHP.
Each time I attended UMB I worked full time.
I hope this background gives me some appreciation of the challenges many of you face.
Many of you work, either part or full time.
This cuts down on the time you have for study.
Technical courses are filled with details where accuracy is very important.
They also introduce concepts which may take some time to fully understand.
For this reason, they require a significant amount of study time in order to do well.
This studying should not be done on one day, but spread out over the days of the week.
You should not be taking this course if you are not able to devote several hours a week to it.
Too many people rush to finish a degree without doing the work to really learn the material.
These people are setting themselves up for professional failure.
If you try to do too much ...
you may end up doing too little.
You cannot do your best work if you often feel down and have difficulty getting things done.
How you feel about yourself and things in general affects what you do and how well you do it.
If you are feeling down or stressed there are things you can do to keep yourself on track:
If things in your life are preventing you from doing your best, do something about it.
You can get help from the Counseling Center by calling 617-287-5690 or sending a text to 988.
Doing this will put you in touch with a licensed clinician who can offer support, crisis recommendations, and help with finding what you need.
This service is available 24 hours a day, 7 days a week.
Or you can go to https://988lifeline.org.
If you are thinking of hurting yourself you can get help from the Samaritans,
And you can always talk to me.
If you don't get enough sleep it will affect your ability to learn.
After being awake 16 hours in a row, brain function starts to decline, and after 20 hours awake, you perform as if legally drunk.
If don't get enough sleep during the week but try to make up for it on weekends, it still affects your performance.
We all have biological clocks that regulate many things in our bodies.
If you are sleep deprived during the week but make it up on the weekends, it sends your biological clock out of whack.
Messing up the biological clock means that important body chemicals are released at the wrong time, which makes performance in everything worse.
Studies have shown that for each day you mess up your clock, the chances of dropping out of a course increase by 10%.
Many students think they do not have a sleep problems because they are so often sleep deprived that they can sleep anywhere.
The ability to sleep anywhere at any time is a symptom of sleep deprivation.
American Academy of Sleep Medicine has recommendations for good sleep habits that you will find here.
You will also find a link to this page on the class web page.
This topic is also covered in one of the wellness workshops offered through the UMB-UR-BEST program.
You can read more about this problem here.
My office is on the third floor of McCormack 3-0201-22.
It has a Pterosaur poster on the door, so it is hard to miss.
My office hours are Tuesday & Thursday
12:30 - 1:30 &
5:30 - 6:30
I always open a Zoom session during office hours.
So you do not have to come to my office for help.
Here is the Zoom link for Office Hours.
You do not need an appointment to see me during office hours.
If you need to see me but cannot make it to office hours, send me an email and we will make arrangements.
If you are having trouble in any of your classes, you should reach out for help.
The University provides extensive Academic Support Programs.
To learn more about them go to https://www.umb.edu/academics/vpass/academic_support .
We all want to be self-sufficient, but sometimes we need help.
UMB provides a number of services to help with specific needs.
If you have questions about your status in the class, email me at Glenn.Hoffman@umb.edu.
If you have question about any of the material we cover in class or an assignment, post in on Piazza.
The first Class Exercise requires you connect to the CS Portal to get a Unix account and a class directory.
All work for this class must be copied to a class directory for this course on a Unix machine run by the CS Department.
In order to use this machine you need to have a Unix account.
On the Portal you can create a Unix account, if you do not have one.
If you already have an account you still need to go to the Portal to create a class directory.
You will find the Class Exercise here.
Your first homework assignment is a simple one, with four parts.
The first part is to register for the class discussion area.
The second part consist of making a post to this discussion area answering some questions about yourself.
Even if you have taken a course with me before, you must must make this post.
The third part is to write, sign, photograph and email to me your Oath of Honesty
The fourth part involves forwarding your UMB email to an email account you check frequently.
You will find the homework assignment here.
Let's take a look at it.
I will be in the CS Lab tomorrow afternoon to help you with any problems you have with this or my other courses.
I will open a Zoom session when I do this, and send out an email.
CS lab is on the 3rd floor of McCormack, M-3-731.
Here are directions