CAIH 150
Computer Science Principles
Summer, 2018

Course #: CAIH 150
Day/Time: Tuesday and Thursday, 6:00 - 8:50 p.m.
Prerequisites: none
Instructor: Mrs. Devorah Goldberg

Syllabus Index
Objectives Exams  
Course Schedule Academic Integrity
Class Format, Attendance
Students with Disabilities
Homework/Assignments Canvas
Important Dates
Programming Environment

Conceptual Framework

Conceptual Framework

"To Learn, To Teach, To Observe, and To Do."  The student should be a Critical Thinker, Effective Communicator, Proactive Educator, and Moral Practitioner.

Course Objectives:

Course Materials:  There is no specific text for this course.  Rather, we will be using resource materials available online.

Free Online References for Python:  All except the official Python Tutorial are intended for people with no programming background.  The others, however, tend to be for Python 2.X, which has slightly different syntax for reading from the keyboard (raw_input), printing (a statement, not a function), and they use an old form of  division where / can mean either the // or / of Python 3.2, depending on the types involved. Free Online References for Python. All except the official Python Tutorial are intended for people with no programming background.


As of this writing, Canvas will be used for course announcements, homework submissions, and grade postings.   Grades are calculated as specified in this syllabus!!  

Course Format:

Since this is a Summer session, we have to be sensitive to the time constraints.  Therefore, students must come prepared to class having reviewed the materials listed for that class session, so that class time can be used more effectively.  We will review the material during class time and focus on the hands-on exercises.  Expect the pace to be fast, and expect to spend time processing and reviewing the material at home.


Programming Assignments:  For each tutorial, you must submit to Canvas a zip file of the required exercises for that chapter.  The exercises are mentioned as you encounter them in the tutorials.  In addition, a list of the exercises and the due dates for each assignment are linked to on the Course Schedule.

Homework Assignments:  There are also several non-programming homework assignments.  The links to these homeworks and their due dates are on the Course Schedule(below).  Pip Program (assembly-language programming) and Logic Gates are listed.  We may also have an additional assignment on database queries.

Pair Programming:  It has been demonstrated recently that Pair Programming, two people collaborating on one problem with one person coding while the other looks on, 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.  We will have the option to do pair programming in this course for in-class work and programing 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!). 

Project:  You will form teams of two or three, to complete a project, which is a major programming assignment in Python.  Some suggestions for the project can be found here. This will be discussed further in class.

-->Important note about team submissions: If I announce that an assignment may be worked on in a team (for instance, pair programming), each team member must submit something on Canvas.  If you are the team member submitting the assignment, you must also submit a note in the Assignment comment box on Canvas, listing each team member for whom you are submitting the assignment.  If someone else is submitting the assignment, you must submit a note in the Assignment comment box telling me who is submitting the assignment for your team.  Do not assume that just because your team member submitted the assignment that you will automatically get credit.  You MUST submit a comment letting me know that it was submitted on your behalf.

-->Even more important note about the group project:  You are expected to fully participate in the group project.  Your individual grade may be modified depending upon your contribution to the project and your cooperative and substantive participation.  This will be assessed by instructors walk-throughs during class and by the Team Pariticpation form completed by each team member.

Programming Environment:
We will be programming in Python, which should be available on the TI lab computers, 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.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.

Academic Integrity:

Hebrew Theological College is committed to providing an academic community and learning environment based on honest inquiry and pursuit of knowledge that fosters commitment and adherence to Judaic tenets. The faculty and administration of Hebrew Theological College have specified the following acts as serious violations of personal honesty and academic ideals that jeopardize the quality of education within a Torah environment:

More information about HTC’s Academic Integrity policy can be found on page 15 of the Student Handbook.

Exams:  Due to the short semester, there is only one exam.  It is scheduled for 7/23, but that may change to 7/25 or 7/30 depending on class progress.  Any change in the date will be announced at least one week in advance of the new date.  The exam will cover material discussed in class, reading material on the web, and assignments.  You are allowed  two 8.5 x 11 inch sides of notes for the exam, but no computer or calculator. I emphasize having you process and use information, not regurgitate facts -- put the facts you most forget and still need in your notes. This is very different than many of the requirements some students had in high school, where fact recall may have been key. What you want most to remember is general patterns about the process of breaking problems into pieces and identifying the right process for each piece. The pieces may come in all sorts of combinations, so remembering whole rote sequences is not likely to be helpful. Do not depend on it.

There is a review for the exam posted on the Course Schedule.

Students with Disabilities:  If you have a documented disability and wish to discuss academic accommodations, please contact Dr. Richard Aronoff, our Disability Officer.  The full policy on disability accommodations is listed under the College Policies on Canvas.  Please be aware that I am not allowed to accommodate you without a letter from the Disabilities Office.


Tutorial, Chapter 1 Exercises 45
Tutorial, Chapter 2 Exercises 45
Tutorial, Chapter 3 Exercises 60
Python Project 250
Number System Excercises
Pip Program 60
Gates Homework 60
Attendance, Participation, Timeliness
Total 1000

Course grades are assigned as follows:

Course Schedule:

The dates below give the sequence and a general idea of the time spent, though we may get ahead or behind this time schedule at different points, depending on the needs of the class.  Links for assignments and exam reviews may be inaccurate (not updated) or missing until their introduction in class. You are expected to come to class having prepared the tutorial sections listed for that day. Written assignments should be turned in to Canvas by the end of the day listed (11:55PM), unless otherwise noted.  The section on Course Materials discusses how to obtain the videos for the listed sections.

Date Activities Due
1 6/25

In class: Syllabus, Pair Programming:  the idea and administration, introductory notes
Form pairs, pictures, introduce Hands-on Python Tutorial, Example Files, Python Installation
Begin Python: 
Tutorial, Chapter 1
Followup:  make sure you have completely read the administrative documents introduced above.

6/27 Hands-on Python Tutorial through Input/Output 1.10
Python Tutorial  functions 1.11, dictionaries 1.12 

Python Tutorial  1.13 Loops, 1.14 Data Types

Python Tutorial 2.1 - 2.3  Strings and more Madlibs

Chapter 1 Exercises
Python Tutorial 2.4 Graphics

Python Tutorial 3 - 3.3.1  If statements and simple While loops

7/16 PYthon Tutorial 3.3.2 - 3.3.4 through Bouncewhile
Chapter 2 Exercises
7/18 Review, Catch up, and possible web connection (depending on progress)
Final Team Formation
Discuss Project Ideas
Chapter 3.1 Exercises
Exam (review materials part 1;   review materials part 2
Bases and Binary Arithmetic in binary web notes
(videos N2, N3A, N3B, N3C-E)
Project Work
Submit any independent plan for the Python Project

Number system exercises due at the end of class

Pip assembler through 4E in web notes
(videos N4, N4A, N4B, N4C, N4D, N4E)
Pip If-else in assembler (Videos N4F, N4G, N4H)  (we may not cover this part)
Project Check
Chapter 3.2--3.3.4 Exercises
gatesand Boolean algebra (N5A-D) through Gates Applet
Gates and Boolean Algebra (N5E-I)
Project Final Check
Pip Program

Gates HW due in class
Project Presentations
Python Project Due

Important Dates:

Please reference the Blitstein Institute Academic Calendar.