Information Technology specialists do not spend most of their time programming, but they must perform many routine tasks to keep the systems they maintain in good working order.
Automating these routine tasks, allows this work to be performed quickly and consistently, freeing the specialist for work that requires time and judgement.
This automation is accomplished by writing small programs which are specific to the task at hand.
These programs are best written in programming languages which are simple and flexible.
This makes languages designed for large projects, such as Java and C++, unsuitable for this task.
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 a scripting language and show students how it can be used to automate routine system administration and workflow tasks.
This course can be used as one of the two programming courses required for the Bachelor of Science in Information Technology.
Starting Out with Python (3rd Edition) by Tony Gaddis
You can also get an electronic version of the textbook.
See this page for details.
All programs will be written in Python 3.
Students are expected to install Python on their own computers.
All students will apply for a Unix account for this course, and their programs must be copied to the student's class directory for the course.
All programs must run on the CS LAN Unix machine specified by the instructor.
This is a combined lecture and lab course.
I will speak for a while at the beginning of the class.
After my prepared material, there will be an ungraded quiz.
The purpose of the ungraded quiz is to help you remember the new material we have covered.
After you have completed the quiz I will hand out a Class Exercise.
You will work on the exercise for the remainder of the class.
There will also be weekly graded quizzes.
In each class you will receive a Class Exercise, which consists of code that you must copy and run on our Unix systems.
You must work on each exercise in class so I can help you if you run into trouble.
If you cannot complete the exercise in class, you may finish it later.
Class Exercises for the week must be submitted by 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 administered at the end of each class and are not graded.
The purpose of the Class Quizzes is to help you learn the material.
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 this 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 in the first class of the week, starting on the third week of class.
If you miss this class your only other opportunity to take the quiz, will be the following class.
There will usually be a weekly reading assignment from the textbook.
There will be weekly homework assignments.
There will be two exams
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 word "lecture" comes from the Latin word for read.
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.
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 then when you just listen.
This increases what you remember.
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.
All of you should take notes.
Another effective study technique is to rewrite my class notes in your own words.
If you have a laptop, you should bring it to class.
There will be a Class Exercise for each class.
Class Exercises require you to copy commands from the handout to the Unix command line.
You do not have to finish these exercises in class, but you should start working on them while you are here.
This will allow me to help you if you run into trouble.
I will check all class exercises.
You should only use your laptops while working on the Class Exercises
Studies have shown that students who use laptops in class do less well than students who don't.
You can read a summary of these results here and here .
The studies show that most students who use laptops in class spend most of their time viewing material that has no relation to the subject discussed in class.
For this reason you should not use your laptops except when working on the Class Exercises
Some of you may claim that you need to use your laptops to take notes.
As I mentioned above, studies have shown that students learn more when they take notes by hand instead of using a laptop.
You can find one such study here .
If you insist on using your laptop while I am speaking you must fill out a form that I will give you.
On this form you will enter your name, Student ID and date.
You must fill out this form for each class where you take notes.
Then you must email me a copy of the notes you took in class by Sunday at 11:59 PM.
If you do not, you will lose 5 points on the Weekly Quiz for each class where you did not email your notes.
I will take attendance at the end of each class.
I do this to learn your names.
Your attendance will not directly affect your grade.
But I am more likely to give you the benefit of the doubt when grading if you have been regularly attending 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 will end up doing too little.
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.
For example, if you get an email from a friend, you don't linger over each word.
Most of us do this quickly because we know what to expect.
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 an account of 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 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.
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
Whenever you see some term in the Class Notes that looks like this, it is a link to a definition on the Definitions page.
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
Final grades will be assigned based on the following standard 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|
Scoring assignments takes a great deal of time.
In order to do this as efficiently as possible, 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, and will get a 0 for the assignment if is not in the proper 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 a grading sheet for all quizzes, tests, and graded quizzes.
You will also receive emails when a due date has passed for an assignment.
If a class needs to be cancelled due to a storm I will send an email to all students.
These 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 you UMB email is part of your first homework assignment.
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 important material.
Please respect that effort while you are in this room.
One of the fundamental principles of academics is honesty.
Would you take a course from an instructor who lied or distorted the truth?
Just as this University expects honesty from its teachers, it expects the the same from its students.
All work you turn in for this course must be original or credited to the source from which it came.
It is not acceptable to copy a file from another student.
Every file you submit must be created by you.
Answers on quizzes and tests must come from your understanding of the material.
I will run software to check for students copying the work of other students.
If you cheat on any quiz, exam or assignment you will receive a score of 0 and the incident will be reported to the Computer Science Department, with consequences that could affect your status as a student.
I know that sometimes students cheat when the instructor has failed as a teacher.
From the reactions of my previous students, I don't think that you will find me a poor instructor.
I put a great deal of work into my courses.
I am asking you to respect that work.
I am asking you not to cheat.
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/umb/spring2018/it116.
The URL for the discussion area is https://piazza.com/umb/spring2018/it116/home.
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.
My office is Science 3-92A.
It has a pterosaur poster on the door, so it is hard to miss.
My office hours are Tuesday & Thursday 11:00 AM - Noon and 3:30 - 5:00 PM.
You do not need an appointment to see me during office hours.
I am usually on campus on Wednesday, but you need to make an appointment if you want to see me on Wednesday.
If you need to see me but cannot make it to office hours, send me an email and we will make arrangements.
If you have questions about your status in the class, email me at firstname.lastname@example.org.
If you have question about any of the material we cover in class or an assignment, post in on Piazza.
All work for this class will be done on Unix machine run by the CS Department.
In order to use this machine you will need to complete the apply process.
This process will create a Unix account for you, if you do not have one, and will create a class directory for you for this course.
All you work for this course must be done in your class directory.
Even if you already have a Unix account you must complete the apply process in order to get a class directory.
You can find out more about the apply process here.
Your first homework assignment is a simple one, with three 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 send me an email with answers to the questions in the assignment.
The third 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.
You should read Chapter 1, Introduction to Computers and Programming, from our textbook, Starting Out with Python, before next week's class.