CSC 160
Spring 2006
Computer
Programming for Non-Majors
Prof. A.
Wittenstein
Contact Information
Office: Alumnae Hall 114
Course Web Page: http://www.adelphi.edu/~wittensa
Phone: 877-4486
Email:
Wittenstein@adelphi.edu
Office Hours
Tu/Th 4:00-4:30pm
Class Meetings
T/Th 4:30-5:45pm, Gallagher Lab
Course Expectations
Although the course has no prerequisites, and is considered
suitable for General Education distribution requirements, it is nonetheless
hard work. Lectures will not cover everything you need in order to complete the
homework assignments; you need to complete and understand the readings
too. There will be homework
assignments every week or two, most of which will require hours of programming,
either in a computer lab or at your home computer.
Since this course meets for three credit hours per
week, it is expected that on average you do at least 3-6 hours of
work for
this course per week outside of class time.
Please budget this time to ensure that homework is completed on
time, and the sections of the textbook are read before the
class session covering those sections.
It is known that especially in beginning programming courses, it is of
the utmost importance for students to keep up with the readings and
assignments.
Students who fall behind tend to stay behind, and either drop or
fail.
I don't want anybody to drop or fail; if you fear that you're falling
behind, talk to me as soon as possible and I'll work with you to
solve
the problem while it's still solvable.
Submitting
Assignments
All assignments are to be submitted via email to Wittenstein@adelphi.edu. They are to be submitted by 11:59pm
on the announced due date (usually a Sunday). Ten points will be
taken off per day (or portion thereof) for late assignments. Late
assignments will not be accepted after they have been reviewed in
class whether or not you were there for the review.
Program
Standards
The first line of every assignment must contain a comment indicating the
name(s) of the student(s) working on it and which assignment it is.
Programs not containing this information, clearly visible, will get a
zero.
Every program must be accompanied by test cases, so I can see how it
actually works. Programs with inadequate or poorly-chosen test cases will
lose points (we'll discuss how to choose good test cases); programs turned
in with no test runs at all will lose lots of points.
I realize that sometimes you hit a brick wall and cannot get a program
working. If this happens, turn in the program together with a detailed
description of how the program fails, what you've tried in your attempts
to fix it, and how those attempts didn't succeed. You won't get full
credit, but if I'm convinced that you're working on it diligently, you'll
get partial credit. Note that "how the program fails" does not mean saying
"I got an error message": you need to tell me which error message
you
got,
when you saw it, and what you think the error message means.
Similarly, if
the program fails by producing wrong answers, you need to tell me
when it
produces wrong answers (are they all wrong, or just in a few
cases?), how
they are wrong (e.g. are the numbers too high?, or is the picture
facing
the wrong way?) and your speculations on how such an error might
have
arisen. I ask all this not because I'm mean and horrible, but because by
the time you've written all this down, you may realize how to actually
fix
the problem, which is much better than turning it in incomplete.
Ethics
Most homework assignments in this course involve writing, testing, and
debugging one or more programs. For each of these assignments, you are to
work either alone or in teams of two students, switching teams from one
assignment to the next. You are required to switch partners from one
assignment to the next, so you get experience working with different
people. When I say "teams of two students", I don't mean "you write the
first half and I'll write the second half"; I want both students working
together on all of the assignment.
Students are encouraged to help one another with difficulties like (How do
I save this file?", "what's the syntax for define-struct?", etc.),
regardless of whether they're on the same team, but designing, coding,
testing, and debugging must be done solely by the one or two people whose
names are at the top of the assignment.
It's remarkably easy for me to notice when three different teams
have turned in nearly-identical programs; if that happens, I'll grade it
once and divide the credit among the three, so the best any of them can
hope for is 33%. I don't try to figure out who copied from whom; it is
your responsibility to not let anyone copy your homework. Among
other
things, that means don't leave it on a campus computer, because anyone at
Adelphi can copy it and even delete it.
Attendance
Attendance is required.
After four absences, your grade will be lowered by one-third of a grade
(e.g., A to A-, A- to B+, etc.). You are also responsible for whatever
work is covered
in class whether or not you are there. Absence from quizzes,
the midterm and the final exam will be excused only for a good and
well-documented
reason. The decision to allow a make-up exam will be made in accordance
with the policies of
Text
How to Design Programs: An Introduction to
Programming and Computing, by Matthias Felleisen, Robert Bruce
Findler, Matthew Flatt and Shriram Krishnamurthi, MIT Press, 2003.
(on-line version at http://www.htdp.org)
Topics
1. Introduction: What is Programming?
2. Overview: UFO Example
3. Data Types: Strings, Images, Numbers
4. Using Your Errors and a Design Recipe
5. Multi-Function Programs
6. Booleans and Conditionals
7. Structures
8. Mixed Data Types
9. Syntax and Semantics
10. Lists and Recursion
11. Arrays
12. Loops
Grading
Assignments
40%
Quizzes
10%
Midterm Exam 20%
Final Exam 30%