CAIH
150
Computer Science Principles
Summer, 2018
Course #: |
CAIH 150
|
CRN:
|
201910
|
Day/Time: |
Tuesday and Thursday, 6:00 - 8:50 p.m.
|
Prerequisites: |
none |
Instructor: |
Mrs. Devorah Goldberg
|
email: |
devorah.goldberg@htc.edu
|
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:
- to implement Python programs with appropriate use of
selection repetition functions and data structures
- to learn how to add graphical effects to programs
- to
introduce the concepts of algorithms and their analysis and design in
the context of a simple yet powerful computer
language, Python
- Time permitting: To study some
of the basic ideas behind computing -- how data are represented in a
computer; how a computer processor is
built up from simple circuits; how the processor is controlled
through low level languages; and the transition from
low level languages to high level languages like Python.
- To be able to
use HTML to construct a web page containing forms and write a
Python CGI script to dynamically process information placed in a web
form, time permitting.
Course
Materials: There
is no specific text for this course. Rather, we will be using
resource materials available online.
- For the Python
component of the course, we will be using The Hands-on
Python Tutorials
designed by Professor Andrew Harrington of Loyola University,
with permission.
They are available on the web, both in browsable
format and in printable pdf format.
This is the closest thing that we have to a text for this
course.
Other Python resources are at the home site for Python: http://python.org.
- Videos,
where most all of the course content are discussed. These were
also
prepared by
Professor Harrington.
- Class
notes for
other course
components are linked to from the Course Schedule.
Software:
- We will
be programming in Python, available in the Blitstein 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.1 or greater for your operating system
from the central
site http://www.python.org/download.
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.
- If
you are familiar with Jupyter Notebooks (or iPython), feel free to
install Anaconda and use that.
We may demonstrate the use of Jupyter notebooks at some point in the
class, time permitting.
- Before
you install anything, be sure to look at the extra
Windows notes or extra
Mac notes.
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.
- An interactive web version of How
to Think Like a Computer Scientist
starts with pretty
much the same basics as the Hands-on
Python Tutorial, but
in a somewhat different order with a different
graphics library, and goes much further, and allows you to program
totally inside the browser,
and has embedded videos.
There is also an older, somewhat different, non-interactive pdf
version.
- Http://python.org
Home
site for the Python
language, where you can find out more and download the latest
production version starting with a 3 (3.6.1 in March 2017).
Caution: an incompatible 2.7 version may be
listed first in the downloads.
http://www.pythontutor.com/
A wonderful site where you run code in your browser step by step
and save and email a URL reference to any step.
- Extra Material on IDLE errors messages
- An online interactive presentation with online
exercises,
covering pretty much what I do, though they do functions much later: http://cscircles.cemc.uwaterloo.ca/
They incorporate the pythontutor.com functionality referenced above.
The page has a link
to a large collection of videos, Python from Scratch.
- https://groklearning.com/course/intro-python-1/
: Gentle Python intro, also totally in the browser.
- http://en.wikibooks.org/wiki/Non-Programmer's_Tutorial_for_Python_3
Another introduction to Python basics in different words. No
graphics, few major examples, lots of basic syntax.
- Official
Python 3 Tutorial moves very fast for someone with no
programming
background.
It covers a lot, going well past our course!
- http://codecademy.com
step by step, but with Python 2, not 3.
Python 2 has
slightly different syntax for reading from the keyboard (raw_input),
printing (a statement, not a function - no parentheses), and they use
an old form of
division where / can mean either the // or / of Python 3, depending
on the types involved.
- Software
Carpentry - Python
is an intro for data scientists using the numpy library and the nice
development/display environment ipython.
- A long further list at http://wiki.python.org/moin/BeginnersGuide/Programmer
Canvas
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.
Homeworks/Assignments:
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 http://www.python.org/download.
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:
- Submitting
as one's own, material copied from a published source.
- Submitting
as one's own, another person's unpublished work or examination
material.
- Submitting
as one's own, a rewritten or paraphrased version of another
person's work.
- Purchasing,
acquiring, and using for course credit a pre-written paper.
- Allowing
another to write or research a paper for one's own benefit.
- Copying
electronic or printed media for one's own use without
permission or licensing from appropriate publishers.
- Submitting
the same paper for more than one course without explicit
permission from the
instructor(s).
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.
Grading:
Tutorial, Chapter 1 Exercises |
45
|
Tutorial, Chapter 2 Exercises |
45
|
Tutorial, Chapter 3 Exercises |
60
|
Exam
|
350
|
Python Project |
250 |
Number System Excercises
|
60
|
Pip Program |
60
|
Gates Homework |
60
|
Attendance, Participation,
Timeliness
|
50
|
Total |
1000 |
- Note
that there are 1000 total possible points.
- There
are a few extra credit homework problems in some of the
assignments. No further extra credit opportunities will be
provided. It
is neither practical nor fair to the other students.
- Late
assignments are worth only half credit. This is true
even if you have a valid reason for submitting the homework
late.
- You may only submit an assignment late with permission, and any
late assginment
must
be submitted within one week of the due date for half credit.
After one week, you will receive zero points for any unsubmitted
assignments.
Course grades are assigned as follows:
A+
|
97
|
A
|
93
|
A-
|
90
|
B+
|
87
|
B
|
83
|
B-
|
80
|
C+
|
77
|
C
|
73
|
C-
|
70
|
D+
|
67
|
D
|
63
|
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.
Week
|
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
|
|
2
|
7/02
|
Python
Tutorial 1.13 Loops, 1.14 Data Types
|
|
7/04
|
Python
Tutorial 2.1 - 2.3 Strings and more Madlibs
|
Chapter
1 Exercises
|
3
|
7/09
|
Python
Tutorial 2.4 Graphics
|
|
7/11
|
Python
Tutorial 3 - 3.3.1 If
statements and simple While loops
|
|
4
|
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 |
5
|
7/23
|
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
|
7/25
|
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 |
6
|
7/30
|
gatesand Boolean
algebra (N5A-D)
through Gates Applet
Gates and Boolean
Algebra
(N5E-I)
Project Final Check
|
Pip
Program
Gates HW due
in class
|
8/01
|
Project Presentations
|
Python
Project
Due |
Important
Dates:
Please reference the Blitstein Institute Academic Calendar.