Computer Science 150 Online: Summer 2016 Syllabus

Syllabus Index
Objectives Exams
Texts and Software Work Load
Sakai Usage Homework
Adobe Connect 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 such applications.

Texts and Software

No texts are required. All required material is free on the web in written form, and most of the material is also covered as videos downloadable from Google or Box. If you want printed materials, you can always print things out. In particular the Hands-on Python Tutorial is separately formatted as an indexed pdf document, ready for printing. Even online, some like the pdf image better. Feel free to compare.

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 likly give the answer shortly after that in the video).

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 is always appreciated, and with our online software, we can set up separate synchronous times to work individually.

Office Hours

Initially I will plan to be online, with the classroom open, not only during the regular classes, but also

Monday, Tuesday, Thursday: 11:15-11:45AM

if I get an email by 9:30 AM the same morning, saying that you want to meet in that office hour period.

If that is not a good time to complete our discussion, we can hopefully connect long enough to agree on a different time.

Note that the days do not match class days: Tuesday rather than Wednesday.

These initial times may well get modified.

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 supercede the system instructions in the tutorial.

Adobe Connect - Synchronous

Make sure you go through the technology check for the system you plan to use for synchronous online sessions, We will be using Adobe Connect software for regular synchronous meetings, at You might also use the software for separate collaborations in pairs. See Using Adobe Connect before we first meet. Also look for communications about times to get together and test the software, so we can minimize time spent futzing with the environment when we want to be getting on with the coursework, together.

Piazza - Asynchronous

Go to the Piazza signup 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 (not direct homework questions) and offer answers to others there.

Your first entry (after signing up) should be a response to my request to introduce yourself to the class. I started with the first response. Add your own in the text box under Start a new followup discussion. The more students who fill this in promptly, even before the first class, the easier it will be to arrange a partner for programming assignments.

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 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.
  • Of course you can always give your own direct comments!
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 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

We meet at I will try to have the meeting space opened 10-15 minutes before class time. Class is a good place to get a sense of others in the class, to give and to discuss suggestions for this online class, and you to voice general questions and comments, and let us respond.

I plan to record our synchronous sessions. Remind me to set that up at the beginning of each class! Please try to log in to class consistently. It is the only real group contact we have in this online course.

In face-to-face classes with a long established class period, I spend most of my time helping individuals with individual problems. With the online setup, I can meet with people about individual questions at a wide range of times, so I have not set the synchronous class times to be long. It may be that people want to arrange individual meetings directly before or after class, or at some separate times.

Also, in my short publicized office hours, we can go over things right then, or make agreement to meet some other time that is mutually convenient.

I am very happy to give extensive help outside class to people who log into class. 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.

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.

Semester Grades

Grading weights:
programs/homework/classwork (30%), exam 1 (15%), exam 2 (25%), final exam (30%).

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 A- 90 B+ 87 B 83 B- 80 C+ 77 C 73 C- 70 D+ 67 D 63.

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. Tuesday June 7, by 11:55PM
  2. Tuesday, June 21, by 11:55PM
  3. Final Exam: Friday, July 1, by 11:55PM

You can make your own plans when to take the exams: I will post each exam at least a day before it is due, so you can choose your own exact 3-hour time to work on it. Dates are also posted in the course schedule.

Your exams will start with verbiage something like:

Comp 150 Online Exam 1 Due in Sakai at 11:55PM June 7, 2016 Prof. Harrington. 100 points

Notes allowed on two sides of 8.5x11 inch paper. No books, calculators, help, or web research, or other outside resources, other than emailed clarification requests to me. You can choose the 3 hour interval when you look at the exam, as long as you submit the exam on time.

You can print out the exam, write on it, and turn in scanned or clearly photographed (and checked!) images. Alternately, for part or all of your solution, you may use a computer as a word processor only, and just turn in the file you create with your answers.

Python should not be running in any form.

In requested printed output, show all output in the order of execution, with correct line breaks shown and clear blank space where a blank should be. You increase your chances of partial credit if you also clearly show significant intermediate steps, separately from and in addition to, the final answer.

I have taken this exam in the time allowed, using no sources or aids except the notes allowed.

Sign/print name: __________________________ Time spent on the exam: ____________

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. You will be given a generous time limit of 3 hours. You should make a clearly readable scan or photos of your handwritten work on tests and/or word-processed text files. Then submit them as a Sakai assignment.

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

Time flies when you are having fun. I hope you do have fun as many have before you in this course, but you will only feel pressure if you do not commit to enough time as the course flies by in 6 weeks, rather than the usual 15 week semester. Plan on this being an intense and fun experience. If you figure 2-3 hours per week per credit in a normal semester, or 6-9 for a 3-credit course, and we are moving 2.5 times as fast, let it sink in that you need to plan on 15-22 hours a week, or 5-7 hours for each of our synchronous classes. We do not have time to waste the first day. You have a major reading assignment to discuss and ask questions about on the first day.

There is a further issue even if you have 15-22 hours available, but only at very restricted times: You are encouraged to program with a partner, and that will not work out if you do not have enough flexibility in your schedule to arrange many hours that also suit a partner. Not having a partner could make the course harder for you.

The class days are not spaced evenly. Having videos that you can watch on your own schedule means you can even out the workload if you get ahead between Thursday and Monday. It is even more important than in a 15 week semester to keep ahead as much as possible, because a lot of people finally "get" a topic when they get to "sleep on it". You do not have a lot of nights to sleep on things.

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. You still need to actively suggest how we connect when you need help in this online environment.

Students used to a face to face class with material presented at a fixed pace must make a major adjustment to a commitment to keep up with this 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!



Three times a week, on the schedule listed below, make an entry in the online journal that I provide to you in I will have a folder for you containing a document with the name <YourName> Journal, and share the folder with you. You are strongly encouraged to sync that folder to your computer. Note that open, unsaved documents do not sync - be sure to save after you finish your entry!

Each time write an additional response in the same document, including:

  1. Date and time.
  2. 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.
  3. How far you are on the individual exercises in the next written assignment.
  4. How it is going. Indicate any major issues. Note major insights. Make any suggestions you have.
Entry times:
Saturday or Sunday, for me to review before Monday class
7PM Monday to anytime Tuesday, for me to review before Wednesday class
7PM Wednesday to anytime Thursday, for me to review Friday or Saturday


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

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 is 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, 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 5% 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: I may read your code and comment on it for you. You must acknowledge my 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. If you consult with me, 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 Windows 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.5.1 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 to help guide you in the rough spots.

Back to Comp 150 Home