Syllabus Index
Objectives
- To introduce the concepts of algorithms and their analysis
and
design in the context of a particularly simple as well as powerful
computer language, Python.
- To implement Python programs with appropriate use of
selection, repetition, functions, and data structures.
- To learn how to add graphical effects to
programs.
- To study some of the basic ideas behind computing -- 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 increase understanding of the operation of the
Internet and the World Wide Web.
- 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.
- To look critically at some societal and ethical issues
arising in the area of computing.
Computers are everywhere today. 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.
Textbooks and Software
Zelle, John. Python Programming: An
Introduction to Computer Science.
Wilsonville, Oregon: Franklin, Beedle & Associates, 2004, ISBN
1-887902-99-6.
Decker, Rick and Hirshfield, Stuart. The
Analytical Engine, Second edition.
Brooks/Cole, 2004, ISBN 0-534-39159-1.
Important
Web Sites:
Beginning python: http://python.org/doc/Newbies.html
The python home page: http://python.org
Staff
and Tutors
Professor:
Dr Andrew Harrington
Lakeshore Office: Damen Hall 225 (773-508-3782)
Watertower Office: Lewis
Towers 512B (312-915-7982)
E-mail address
Initial
office hours are below. See my main
office hour page for updated information.
Initial
Office Hours
Lakeshore (225 Damen Hall):
Tuesday, Thursday:
11:30AM-12:30PM
Watertower (512B Lewis Towers): Tuesday,
Thursday:
2:00-2:30PM, 4:00-4:30 PM
Course TA's
Initial tutoring hours: since classes are often using DH 342, look for the tutors in DH 341. They might also be helping someone in 342 or 339.
Nilanjan
Podder, university ID: npodder
Tuesday and Friday : 2:00-5:00PM
Sanketkumar Patel,
university ID: spate42
Wednesday : 2:00-4:30PM & Thursday : 11:30AM.-2:00PM
Tutoring Assistance (free!)
Tutoring hours by other Computer Science TA's (generally walk-in)
will be posted by about the second week of the semester at http://www.cs.luc.edu/academics/services/tutoring.
Your best choices for help are the professor and TA's for the
course, and they will try to publicize initial hours during the first
week of class.
The university supports an official Tutoring Center at the
Lake Shore
Campus, located in Damen Hall 149. Their phone extension is
8-3194. Their web site is http://www.luc.edu/depts/lac/skills/tutor.html.
You may
need to make appointments in advance for university tutoring.
When
consulting the university tutoring center hours, remember that tutors
for Comp 150
are only available during
some of those times, due to the personal schedule of the tutor(s).
Course
Materials
Private information between professor/TA and individual
students will be handled through the University Blackboard
system.
It will mostly be used for grades and homework submissions.
The public course materials will all be posted directly on
the web under http://www.cs.luc.edu/~anh/150.
Class
Attendance and Activities
I expect students to be present in classes. Pop quizzes,
discussions and paired class lab activities all need your presence.
Please let me know in advance if you must be absent for a
scheduled
college activity. Illness might prevent you from being present for a
couple of classes during the term but anything beyond that will
probably have a detrimental effect on your grade. This
class is being taught as an integrated lecture and lab. If
you have an excused absence you may do the day's
lab work on your own and hand in or display the work by
the next class meeting.
Many classes will begin
with a pop Quiz
over assigned reading or the material covered in the previous class.
These will be very short - there will be no makeup if you are absent or
late. I will drop the lowest three grades.
You have well-written books. I rarely consider it a
good use of class time to reproduce factual information in the
textbooks. That is why you will have reading assignments
first (reinforced with pop quizzes). Much better uses of our
time are answering questions on basic material remaining after
reading, using and synthesizing the course material in
creative ways
in discussions, and your hands-on lab work.
I will not always be following the books. Information
and
activities in class that are not in the book will be on exams and used
in homework. I will have at least some notes
from
classes available on the web,
but do not depend at all on their completeness or promptness.
I
will generally have programming
examples from class on
the web promptly.
I am very happy to give extensive help outside class to people who
attend 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.
Semester Grades
Grading
weights:
quizzes
(8%), programs/homework (14%), labs/classwork (8%), three
exams (15% each), final exam (25%).
Points are comparable only
within an individual catagory. (For example an exam point is
roughly three times a program/homework point.) Only
raw grades will appear in Blackboard, not scaled or weighted grades.
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 questions in
class about your readings!
Exams
The tentative dates are posted in the course schedule.
Exam
coverage
Exams will cover
material discussed in class, reading material
in the
text and on the web, lab work, 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.
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 attend 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, BUT I WILL NOT LET ANYONE TAKE A LATE EXAM
AFTER
THE NEXT CLASS PERIOD. If you somehow fail to let me know in a timely
fashion
that you have an excuse and want to take the exam late, appear at my
office before the NEXT class after the exam, and I may be able to give
you
the exam.
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. In
certain
circumstances
I may allow you to delay an exam due to illness, but I will not let you
be reexamined due to a poor grade.
Assignments
There will be reading assignments for most days. Often they
are followed by suggested review questions or exercises that are good
to do as you read or right after the class on the subject, but are not
to be turned in. There is a separate column in the course
schedule for graded written assignments, generally submitted
through Blackboard,
using my electronic submission
instructions. Assignments are due at midnight
at the end of the date specified unless otherwise stated.
Programming assignments should
be turned in on time, running correctly. Graded assignments
are either listed as programs (which you may work on in pairs)
or homework, which is 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.
You must give credit BY NAME to any
person
who assists you in completing an assignment. Be sure to give some
indication of the nature and the amount of help you received.
Failure to acknowledge such
help is PLAGIARISM and will be dealt with accordingly.
Late
Assignments
Late
work will be penalized 10% 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
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!)
Pair Programming
It
has been demonstrated recently that Pair
Programming, two people collaborating on one problem on one computer,
whether starting 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 do pair programming in this course for
labs
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.
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:
Your professor, TA, or official university tutor may read your code.
You
must acknowledge their help. 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.
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 incidents.
Cheating consists of, but is not limited to:
- Using or copying an outside person's work on an exam
or assignment
in any
fashion.
- Work includes outlines, pseudocode, code, and documentation.
- Allowing your own work to be copied or used by an
outside person.
- Submitting as your own work something that has been written
by
an outside
person.
- Using any unauthorized reference on an exam or assignment
- Not acknowledging in writing on an assignment
any help you are allowed.
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, or official tutors for the course. If you
consult
with any of these people, 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
- The meaning of program specifications (not the plan for the
solution or
the actual solution).
- The tools used to write programs. Feel free to ask
questions on
the
programming
environment you use and the use of the debugger.
- The restrictions of the current programming language syntax.
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 versions.. You can go to the
central site www.python.org/download.for
a version for any operating system. The University Labs have
installed a version from ActiveState
with some advanced features (that we will not need) specifically for
Windows.
Both versions come with the graphical interface, Idle, which we will
use. Later in the semester we will also connect to a Computer
Science Department server running Linux, that will allow you
to create dynamic web pages on the account which we will provide you
there.
Flash Drives or other storage
The University computers labs (unlike Computer
Science labs) do not provide students with any file server space, so
you need to take all your files with you. You are strongly recommended to get a USB 2.0 flash drive ($20-$200 depending on the capacity) and use it every time you
are in the lab. It takes almost no time to insert and remove, and
it will have everything in one place. It will allow east
shortcuts to starting the software, too. You can also store most
of the electronic materials that come with your text, and have ready
access.
Flash drive are very small, like a finger, and that makes them easy to
forget and leave behind, particularly in the DH 342 lab, where the USB
ports are in the back of the computer where you do not immediately see
them. This may seem silly, but after all the flash drive I have
seen lost, I really mean it: attach a LONG string to your flash
drive and attach it to your books or notes or purse, or something you
are pretty sure not to forget in the lab. Then if you get up to
leave without taking out your flash drive, you will realize you are
still attached, and then you will not forget the flash drive!
There are many poorer and much more time consuming alternatives
involving working on the computer D: drive, and then storing your work
on some other medium, erasing D: drive, and restoring your work the
next time you work on it. There are several ways to store it
(that you do not have to worry about if you have a flash drive!):
- Send an email to yourself or put it your work on your Blackboard
digital dropbox. These methods only work one file at a time.
You either will need to make and later separate archive files, or
handle each file separately.
- Save to a floppy disk. The 342 DH lab does appear to
have them. They are not always maintained well, and many machines
these days do not have them at all. They are slow for while you
are working, unlike a flash drive, hence the suggestion of only using
them as an archival medium. You can at least copy whole
directories at once. There is a similar issue to the flash drive
with leaving them behind, but they cost less, so you lose less IF you
keep your work backed up.
- You DO have permanent storage on the Computer Science servers.
You can open an SFTP client like Filezilla and move files and
whole directories back and forth. We will do this for sure when
you create dynamic web pages later in the course.
Campus
Network, Rights and
Responsibilities
As a user of the campus network, you should be aware of your
rights and
responsibilities in http://www.luc.edu/is/policies.
Course
Outline
The Course Schedule and
Assignments
page shows the progression of topics, reading, exams, and
written assignments. The time schedule is tentative.
Questions
Please contact me if you have questions about these ground rules or
about anything else in the course. After class, by email, in
my
office, by phone, all work for me. I am here to help guide
you in
the rough spots.
Back to Comp 150 Home