Computer Science 150 Spring 2018 Syllabus

Syllabus Index
Objectives Exams
Texts and Software Work Load
Sakai Usage Homework
Zoom Academic Dishonesty
Piazza Programming Environment
Class Attendance and Activities Course Outline
Semester Grades Questions


Computers are everywhere today. The amount of information that can be creatively used is exploding. The ideas in this course should be useful both to modern citizens of the world with main interests in other areas and also to people who are going on to further Computer Science study.

Microsoft Office programs like Word and Excel are NOT covered in this course. Information Services has free Short Courses on using such applications.

Texts and Software

All required material is free on the web in written form, which can be printed, and most of the material is also covered as videos that you can download from Google or (Loyola cloud storage). The cover page for the Hands-on Python Tutorial lists various resources:

Videos for most all of the course content are discussed, with a download link and instructions in

Students have different learning styles. Some absorb thing well by reading and doing. They can mostly just look at the written tutorial, and ignore the videos except in a few places where I mention that the videos include major things missing in the text, and where the videos are demonstrating something naturally visual.

Other students really like to hear and see at the same time as with a more traditional presence of a professor introducing material. For this class the professor's traditional presentations are provided by lots of videos. You can replay bits of videos as many times as you need to, and you can stop the video and think when I pose a question (and likely give the answer shortly after that in the video).

I repeat: In any case for Python you need to download and unzip my Python tutorial example zip file.

If you would like alternate explanations, some of the many Python resources are listed and briefly described on the course home page and many more are at the home site for Python:

Further materials, not centered on Python, are in the course notes at, with main parts on video, at the Google and Box URLs, above.

Other references will be linked directly into the course schedule Look to the schedule for what is happening next and what is due next.

Professor: Dr. Andrew Harrington

University ID for email: aharrin

Email, or preferably communications through Piazza (see below) are always appreciated, and with our online software, Zoom, we can set up separate synchronous times to work individually.

Starting off the semester I have office hours before our classes, 1-2:15PM. See my office hour page for more complete and up-to-date hours.

Particularly since the class is blended, you will certainly have rather flexible access to me online at some times we agree on.

Email is always appreciated. Also we can use online software like Zoom to meet, when getting together on campus does not fit both our schedules. You will need a good broadband connection for synchronous online collaboration. See This page links to various help documents.

Course TA

Anadi Misra, university ID: amisra

Tutoring Assistance (free!)

Tutoring hours by advanced Computer Science students (generally first-come-first-serve) is posted at It should start by the second week of the semester. Your best choices for help are the professor and TA for the course, but all tutors should be familiar with most of the course topics. If any tutors you visit are NOT familiar with Python, let me know right away!

It is important to keep up. If you are having trouble, it can be very helpful to just sit in the room with the tutor(s) in our dept. offices while you do your work.

Sakai Usage

Private information between professor and individual students will be handled through the University Sakai system. It will mostly be used for grades, homework submissions, and grader comments. The public course materials will all be posted directly on the web under

Online environments

For programming we will be using Python, but both the Python installations and the operating systems keep changing. Be sure to read extra Windows notes or extra Mac notes. These supersede the system instructions in the tutorial.


We will be using Zoom for synchronous online sessions. That could be a brief whole class description/screen-share/discussion. After that, those with desire at that time to discuss/display individual or pair work will go into Zoom breakout rooms.

At other times, if you are working on homework with a currently remote partner, you can host a Zoom meeting and discuss and share screens!

Piazza - Asynchronous

Go to the Piazza sign-up page, select Student, and put in your Loyola email address when asked. This is important - class communications will be through this site.

Later, after signing up, return to the site with the URL

Piazza is an online learning community - sort of social media for a course. I have been using it for a number of semesters.

You encouraged to pose conceptual or technical questions publicly and offer answers to others there. Pose questions about your specific work on exercises to me privately.

Entries in Piazza come in several forms: general comments, questions, answers, discussion on an issue with a problem, and edits to previous entries (this is a wiki). Entries can be directed privately to instructors.

It is a wiki which means it as a shared, editable space: If you think you can improve something posted publicly by anyone, change/edit it.

Be careful with questions and comments that would help with a homework problem: If you post for everyone to see, the entry needs to be general or conceptual enough not to give away solution details. Do look early at the homework, think, and post such questions, to get early help! If you have a question that is directly related to a solution you are thinking of, it should be a private communication for instructors.

Here are suggestions on using the individual types of Piazza contribution:

General Comments

Here are some ideas:

  • If they are not giving away a part of a homework/lab problem, they can be anything useful to the general community.
  • Requests for special emphasis in the next class make sense to go out to the whole class, too. After an initial request, "me, too!" additions are very helpful for me to plan how to make class time best support you!
  • If you found a good web site that addresses a course topic in a way that you like, post the URL with a comment.
Other than the restrictions around specific assigned problems, use this community for help. We will discover more ways as we go along! Do organize your materials so you know where to look first for resources. Be aware of the recent course reading and topics. Go to the community second.
This is a wiki. One latest version appears directly, though the earlier wiki history can be viewed. Be helpful. It is particularly important in your learning to read critically. If you can improve an answer, edit it!
Discussion on a question
There is a provision for discussion of issues separate from answers. If the issue is resolved, the issue can be marked closed (but it is a wiki - it could be reopened by someone else).

Suggestions to me for optimizing Piazza use in our learning community are highly encouraged.

Initially, make sure you respond to my invitation to join, and add a response to the "Introduce Yourself" note.


Communication is encouraged through Piazza, particularly for content that might resonate with others in the course. Make sure you log in and give it your preferred email address. I will generally send announcements through Piazza, so I strongly suggest you set up Piazza for frequent updates via email. I may occasionally send a very important note and override your email preferences, so you get notified immediately.

Class Attendance and Activities

In this blended class we will start with advantages of being physically together to get to know each other, choose partners, and get used to the technology and environment.

This flipped class, with basic learning materials online for you to consider on your own schedule. Instructor interactions will mostly be individual -- what help you need for where you are in your individual/pair work. Some of this can happen in the classroom, but since it is basically individual, and centered around what appears on a computer screen, we can take advantage of the flexibility on meeting online to discuss and share screens.

I will firm this up later, but likely from late February through mid April, meetings will be online, other than exams.

Since you do all have the official class time carved out in your schedule, I will want us to discuss general current issues/questions with the whole class each week, generally in only a small amount of time. The rest of class time is often convenient for individual help rotating around while you progress on individual work. This can be in the classroom with individuals/pairs, on online via Zoom breakout rooms.

An advantage of being online is that I will also record these sessions in case you want to come back to them or miss the live one. Also we can meet online at other mutually convenient times.

The most important thing associated with this form of course is the willingness to get help and to ask questions when needed: Most of the help is individual, so you need to say when you need help. If my first pass on an idea was not enough for you, we can do better together in pass 2, and maybe pass 3 if needed, .... Learning is a spiral process, and the rate varies by person and individual topic. Everyone can get it, particularly with help. Do NOT be shy about asking for help until you are clear.

If you have a notebook computer, you are highly recommended to bring it to the classroom, so you work on your hardware rather than a lab machine, which remembers nothing after you leave. With work on a lab machine you have to trasfer your data on and off every class, either via a flashdrive, or transfer through cyberspace. It is particularly handy to do your work on your machine, while displaying course materials on the lab screen.

The following are legal statements you will find for any Loyola class doing class recordings, to assure your privacy:

In this class software will be used to record live class discussions. As a student in this class, your participation in live class discussions will be recorded. These recordings will be made available only to students enrolled in the class, to assist those who cannot attend the live session or to serve as a resource for those who would like to review content that was presented. All recordings will become unavailable to students in the class when the Sakai course is unpublished (i.e. shortly after the course ends, per the Sakai administrative schedule: Students who prefer to participate via audio only will be allowed to disable their video camera so only audio will be captured. Please discuss this option with your instructor. The use of all video recordings will be in keeping with the University Privacy Statement shown below:

Privacy Statement: Assuring privacy among faculty and students engaged in online and face-to-face instructional activities helps promote open and robust conversations and mitigates concerns that comments made within the context of the class will be shared beyond the classroom. As such, recordings of instructional activities occurring in online or face-to-face classes may be used solely for internal class purposes by the faculty member and students registered for the course, and only during the period in which the course is offered. Students will be informed of such recordings by a statement in the syllabus for the course in which they will be recorded. Instructors who wish to make subsequent use of recordings that include student activity may do so only with informed written consent of the students involved or if all student activity is removed from the recording. Recordings including student activity that have been initiated by the instructor may be retained by the instructor only for individual use.

This forces the consequence that during the semester you can stream class recordings while online, but you cannot download them for viewing later when offline.

Semester Grades

Grading weights:
programs/homework/classwork (30%), three exams (15% each), final exam (25%).

Points are comparable only within an individual category, where I will take an average. Averages in different categories are combined using the weights above.

For example a student who ends up with 95% in programs/homework/classwork, exams scaled to 75 and 85, and a final exam scaled to 92, would have a final numerical grade of (.30)(95) + (.15)(75) + .25(85) + (.3)(92) = 88.6, a B+.

Only raw grades will appear in Sakai, not scaled or weighted grades. The raw grades in Sakai allow for easy checking of my accuracy in recording. Please check periodically and correct us if necessary. With these conventions, any cumulative totals you see in Sakai are meaningless. (Sorry I cannot seem to block you seeing them.)

I convert to course letter grades with the following minimum requirements:

A 93.0 A- 90.0 B+ 87.0 B 83.0 B- 80.0 C+ 77.0 C 73.0 C- 70.0 D+ 67.0 D 63.0.

If you have consistently displayed more knowledge and ability in class discussions than you show in your exams, I may raise this grade. Note that one way to display your effort and thought is to ask/answer questions in class/Piazza about your reading/viewing!


The tentative exam due dates are

  1. Monday February 12
  2. Wednesday March 14
  3. Wednesday April 11
  4. Final Exam: Friday, May 4: 4:15-6:15PM

Exam coverage

Exams will cover material discussed in class, reading material on the web, and assignments. Exams will always be cumulative, but they will NOT include new material from the class immediately before the exam. This way there will always be time for questions after digesting a class. You will always be allowed at least two 8.5 x 11 inch sides of notes for exams. As the allowed notes suggest, the exams are not going to be looking for fact recall, but concept application.

Exam Grading

Do not write down things on exams that you can see are incomplete or incorrect without making some comment acknowledging this -- it is better to know you are wrong than to be wrong and think you are right.

Missed Exams

If you must miss an exam, let me know well in advance. Then if you have a good reason we can possibly make other arrangements. I have little sympathy for people who inform me after the fact for no good reason. I may completely excuse you from an exam if you were sick or unable to participate for long enough. Most often if you cannot take an exam at the usual time, I will want you to take it a little later.

*No second try*: If you have an excuse for not being prepared to take an exam, but decide to take it anyway, you don't get to change your mind after you see a poor grade. Being sick is not a way to get one more chance than everyone else. I may allow you to delay an exam due to illness, but I will not let you be reexamined due to a poor grade.

Work Load

Students used to a face to face class with material presented at a fixed pace in class must make a major adjustment to a commitment to keep up with this flipped, largely self-directed course. Help is always available, but you have to put in the work regularly to see what help you need, and be proactive about getting the help! If you are used to your scheduling being driven mainly by what the instructor is likely to ask you in the next class, then you need a major change in plans.

Part of keeping up is being sure you get help very promptly at the first sign of trouble. Contact me. Then at the next sign of trouble, contact me.... Your journal, discussed below, is another way for me to get a feeling for how you are doing.



I want a private (with instructor and TA) journal entry by Monday evening each week to help me keep up with all of you. I believe the Sakai blog feature will be used. More on that later.

Things to include in a journal entry:

  1. Where you are in watching/reading/absorbing the material (by a section name and maybe number). The current point may not be clear cut. If you have moved ahead but have major questions on earlier material, say so.
  2. How far you are on the individual exercises in the next written assignment.
  3. How it is going. Indicate any major issues. Note major insights.
  4. Make any suggestions or questions you have for me, and if I asked a question in my previous comment to your journal, please respond.


Initially there will be ongoing assignments to work on the Python Tutorial. You should keep all your work from the tutorials, and you will asked to turn it in a chapter at a time (1/2 for chapter 3). You are given names for the files you are instructed to create. I will be expecting these particular names.

There will be reading/viewing assignments for all class days, shown in the course schedule along with written graded assignments, generally submitted through the Sakai assignment submission system. The timing of these assignments is designed to have your work load be fairly even throughout the semester. If you get behind, you will have a lot to do later.

Written assignments are due at 11:55PM at the end of the date specified unless otherwise stated. Programming assignments should be turned in on time, running correctly. If your program is not running correctly, get help before you turn it in, even if it will be late! It should not be hard to see that your code is not working! Graded assignments are either listed as programs (which you may work on in pairs) or homework, which is generally an individual assignment. Working on programs and homework problems is essential to your understanding of the course material and giving it insufficient attention will almost surely affect your exam performance.

As you see from the exam description above, where you can bring notes, what is important is being able to apply concepts. When you do something, always be able to think why you chose that process. The same process, not the same final answer will be important later. Getting the right final answer, so it works, is a test of the results of your thought process, but the specific result is not what you want to stay with you.

You must give credit BY NAME to any person who assists you in completing an assignment. Be sure to make clear the nature and the amount of help you received. Failure to acknowledge such help is PLAGIARISM and will be dealt with accordingly. If you give help, you should also state in your own assignment, who and how you helped. See further restrictions below under Academic Dishonesty.

Late Assignments

Late work can be penalized 1% per day including weekends. If there is some special reason for an assignment being turned in late, preferably speak to me directly first. I will consider reducing/removing the penalties. If I accept your reason, ALSO make a comment at the top of your source code in the main program. (This reminder helps!) In this short semester, keeping up is extra important! Start early, and get help, if you need it, early. Preferably do assignments as you come to them as you view/read through the material.

The penalty for being late is way less than for turning in a program that does not work. Preferably start early enough to get all the help you need by the due date, but if something does not work, get it working before submission, even if that is late.

Pair Programming

It has been demonstrated that Pair Programming, two people collaborating on one problem with one person coding while the other looks on (either directly or with our modern technology from afar), whether beginner students or seasoned professionals, allows projects been done better and faster with more confidence, and also that students learn at least as well and have more enjoyment in the process. You have the option to do pair programming in this course for assignments. (Your exams will NOT be in pairs however!) Read the page on how to make pair programming work and also the page of administrative guidelines for pair programming (mostly for when it does not work out as planned!).

General Rules for Giving/Getting Help

An outside person, below, refers to someone other than a pair partner if you have one. On their joint assignment, there are no limits on the communication between pair partners, and a pair partner does not need to be listed under those helping you.

If you are seeking help: The TA, a tutor, or I may read your code and comment on it for you as you are working on it. You must acknowledge the helper and the help, clearly explaining its extent. You may not read an outside person's code but it is permissible to talk about the solution of the problem (not the actual code). Anyone with whom you discuss the problem, must be listed in your documentation.

If you are giving help:You may not allow an outside person to read your code "to get the idea". It is permissible to talk about your solution but be judicious about the hints you give. Again, the other student is responsible for listing your help in the documentation, and you should also list in your assignment how you helped, and your take on the help you gave.

Academic Dishonesty

The penalty for cheating may be anywhere from a 0 on an assignment to a grade of "F" in this course. The appropriate dean will be informed in writing of any cheating incident.

Cheating consists of, but is not limited to:

If you are working on a pair or group project, an "outside person" only refers to people other than your assigned partner or team.

Note that cheating goes both ways: both giving and receiving.

Consultation is allowed with me, the tA, and official department tutors. If you consult with any of us, still make a comment at the top of your work about the substance and depth of the help.

Help from any source is fine concerning

Programming Environment

We will be programming in Python, available in the University labs, and as a download to your own computer. There are several choices based on program version and operating system. You should get Python version 3.6.4 or greater for your operating system from the central site It comes with the graphical interface, Idle, which we will use. There are many alternate free Python development environments, like PyCharm, Community Edition, while Idle is particularly simple, and is discussed in the tutorial.

Before you install anything, be sure to look at the extra Windows notes or extra Mac notes.

Campus Network, Rights and Responsibilities

As a user of the campus network, you should be aware of your rights and responsibilities in

Course Outline

The Course Schedule and Assignments page shows the progression of topics, reading, exams, and written assignments. The time schedule of class topics is tentative.

This page will be the main administrative reference during the course. Bookmark it.


Please contact me if you have questions about these ground rules or about anything else in the course. Before/in/after class or a note in Piazza work for me. While the text and video is out there for everyone, you are paying for a Loyola course with me: take advantage of that; I am here particularly to help guide you in the rough spots.

Back to Comp 150 Home