CSC 160: Computer Programming for Non-Majors

Department of Mathematics and Computer Science     Prof. A. Wittenstein

114 Alumnae Hall      (516) 877-4486     Wittenstein@adelphi.edu

Spring 2006 Office Hours - TuTh 4:00-4:30pm (in the Gallagher Lab)

Course Home Page | Announcements | Syllabus | Calendar | Links

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 Description
There are no prerequisites, as this course is intended for students with little or no experience in computer programming. It gives students a feel for what programming is like, introduces the process of program development, and introduces the major concepts of programming --- variables, data types, functions, parameters, assignment statements, conditionals, compound data types such as structures, lists, and arrays, and repeating constructs such as loops and recursion.

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 Adelphi University. Please arrive to class on time. Also, I will count latenesses (or leaving early) as partial absences.

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%