IT 117: Intermediate Scripting
Syllabus

Instructor Glenn Hoffman Email Glenn "dot" Hoffman "at" umb "dot" edu
Office McCormack 3-0201-22 Office Hours Tuesday & Thursday
11:00 - 12:00 & 5:30 - 6:30
You can also attend Office Hours using Zoom with this link
Also by appointment
Schedule Tuesday & Thursday
4:00 - 5:15 PM
Classroom Wheatley W01-0005
Phone 617-821-3936 Web www.cs.umb.edu/~ghoffman/it117_html/class_page_it117

Prerequisites

IT 116 - Introduction to Scripting

Course Description

This course, a continuation of IT 116 - Introduction to Scripting, covers advanced features of scripting languages such as objects and regular expressions.

The course will also address the ethics of applying the skills learned here to real world situations.

This course can be used as one of the two programming courses required for the Bachelor of Science in Information Technology.

Is there anyone here who has NOT taken IT 116?

This Course Requires Work

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.

Texts

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.

Unix Account

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 running the Apply program described here.

Each student must run the Apply program for this course.

Even if they already have a Unix account.

Running the program creates a class directory for your account, which you will need to submit your assignments.

Programming Assignments

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 placed inside your class directory.

Programs not placed in the correct directory will not be scored.

Students can create these files on their own machines and upload them to their class directories.

Or they can use a Unix text editor to create the programs in their class directories while connected to the CS Unix machines.

Course Work

For each class there Class Exercise, which consists of code that you must copy and get to work.

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.

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

Software Needed for the Course

You will need to have three software packages on your machine 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 can use to write Python programs.

Laptops

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.

Phones

Smart phones make you stupid.

They divert your attention 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.

Attendance

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.

Recorded Class Meetings

All class meetings are recorded.

You will find links to the videos here.

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/it117_html/class_page_it117

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:

Attendance 5%
Homework10%
Class Exercises15%
Weekly Quizzes20%
Midterm Exam20%
Final Exam30%

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

Exams and Your Grade

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.

Late Work

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.

Email Notification

You will receive a grading sheet for all homework assignments sent to you UMB email account.

Gradescope will use your UMB account to send you the results of all exams and quizzes.

You will also receive emails when a due date has passed for an assignment.

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

Gradescope is is an online application for giving and grading quizzes and exams.

Gradescope will be used for the weekly graded quizzes.

You will take the weekly graded quizzes online in Gradescope.

You will have to connect the the Gradescope website to take the 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.

The email will contain your score on the test and for each question.

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.

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.

Diversity, Equity and Inclusion

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 do your best in this class, please let me know.

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 material that will help you get a job.

Please respect that effort while you are in this room.

Academic Integrity

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.

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.

Reputation

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?

Academic Honesty

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.

Honesty Expected In This Class

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.

What Happens If You Are Caught Cheating?

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.

Use of Artificial Intelligence Programs

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.

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/spring2024/it11711.

The URL for the discussion area is https://piazza.com/umass_boston/spring2024/it11711

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.

Class Assistant

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 name is Talia Lemerise who can be reached at Talia.Lemerise001@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.

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

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 than 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.

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.

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.

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

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 may end up doing too little.

Your Mental Health

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.

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.

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.

You can read more about this problem here.

Office Hours

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
11:00 - 12:00 & 5:30 - 6:30

I will 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.

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.

Other UMB Services

We all want to be self-sufficient, but sometimes we need help.

UMB provides a number of services to help with specific needs.

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.