IT 116: Introduction to Scripting
Class 1

Today's Topics

Course Description

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 the Python scripting language and show you how it can be used to automate routine system administration and workflow tasks.

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.

Programming Is Hard, but You Can Do It

Texts

Starting Out with Python (3rd Edition) by Tony Gaddis
Pearson
ISBN-13: 978-0133582734
ISBN-10: 0133582736
Look here for details on an electronic version of the textbook.

ACM Code of Ethics and Professional Conduct available from https://ethics.acm.org.

Programming Environment

All programs will be written in Python 3.

Although you can install Python on your own computer, it is not a requirement for this course.

All students must have an account on the Unix machines run by the Computer Science department.

All work for this course must be stored in a student's individual directory, inside the directory for this course.

The class directory can only be reached from the Unix machines mentioned above.

This means all student will have to learn a few simple Unix commands.

What Happens in Class

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.

Course Work

In each class you will receive a Class Exercise, which consists of code that you must copy and run on our Unix systems.

You should 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 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 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

Making the Class Interesting

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.

Taking Notes

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.

You can find one such study here .

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.

Laptops

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 programs into a text file inside your class directory.

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.

That's because students using laptops in class spend most of their time viewing material that has no relation to the content of the course.

You can read a summary of these results here and here .

Some of you may claim that you need to use your laptops to take notes.

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 the following 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.

If you believe you have a special need that requires you to use a laptop in class see me.

The Most Important Thing to Learn in This Class

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.

Attendance

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.

Who Am I

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.

Do You Have Enough Time to Do the Work for This Course?

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.

Getting Enough Sleep

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.

The Koru Mindfullness classes may also help with this.

You can read more about this problem here.

Learn to Read Carefully

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 an email 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 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 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.

Course Documents

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

Grading Policy

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

Homework15%
Class Exercises15%
Weekly Quizzes20%
Mid-term Exam20%
Final Exam30%

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
B85 - 83
B -82 - 80
C +79 - 76
C75 - 73
C -72 - 70
D +69 - 66
D65 - 63
D -62 - 60
F< 60

Late Work

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.

Email Notification

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.

If You Fall Behind See Me

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.

Accommodations for Disabilities

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.

Classroom Behavior

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.

Academic Honesty

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 that every aspect of academic life not only formal coursework situations, but all relationships and interactions connected to the educational process shall be conducted in an absolutely and uncompromisingly honest manner. The University presupposes that any submission of work for academic credit indicates that the work is the student’s own and is in compliance 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 can find the complete text of the Academic Honesty Policy here.

Cheating

Trust is essential for all human societies.

Cheating undermines trust.

The vast majority of people do not cheat, but some do.

Cheating will not be tolerated in this class.

I have a zero tolerance policy with regard to cheating.

Students who cheat on an exam will have their exam papers confiscated and will receive a score of 0.

The incident will be reported to the Provost's Office.

Copying assignments is cheating.

If copying is detected, both students will receive a 0 on the assignment an the incident will be reported.

If this happens a second time, both students will fail the course and the incident will be reported to the Provost's Office.

Class Discussion Area

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/spring2020/it1162

The URL for the discussion area is https://piazza.com/umass_boston/spring2020/it1162/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.

Office Hours

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 - 12:00 PM and 5:30 to 6:30 PM.

You do not need an appointment to see me during office hours.

I am usually on campus on Wednesday, but you will need an appointment to see me then.

If you need to see me but cannot make it to office hours, send me an email and we will make arrangements.

Unix Lab Assistant

An IT student will be in the Unix Lab Monday, Wednesday and Friday to help you with Unix and other questions.

You can find details here.

This link also appears on the class web page.

Academic Support Programs

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.

Contacting Me

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.

First Class Exercise

The first Class Exercise requires you to run the Apply program for this course.

You will find the Class Exercise here.

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.

First Homework Assignment

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 must make this post.

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.

First Reading Assignment

You should read Chapter 1, Introduction to Computers and Programming, from our textbook, Starting Out with Python, before next week's class.

Attendance

Class Exercise 1