Computer Science I:

Spring 2013

Syllabus

This syllabus is subject to update throughout the semester.

Professor: Jenny Walter (link to my web page)
Office: OLB 124
Office Hours: Mon/Wed 10:30 to 11:45 am, Tue/Thu 1:30-3 pm (and by appointment)
Office Phone: 437 7449
Email: walter at cs dot vassar dot edu
jewalter at vassar dot edu
Lecture times: Tue/Thu 3:10 to 4:25 pm, OLB 105 (sect 51)
Mon/Wed 9 to 10:15 am, OLB 105 (sect 52)
Lab times: Tuesday 4:35 to 5:50 pm, OLB 105 (sect 51)
Friday 9 to 10:15 am, OLB 105 (sect 52)

Textbooks/Readings:

This is a paper-free course, meaning all readings are available on-line and all labs, assignments, and exams are submitted, graded, and returned electronically.

  • Course Notes posted with each lecture.
  • Adaptations of other reading for this particular class (posted with lecture notes).
  • Selected readings: Felleisen, Findler, Flatt, Krishnamurthi. How to Design Programs, 2nd Edition (HtDP/2e). MIT Press, 2010 Draft. Available online.
  • Supplemental: Felleisen, Findler, Flatt, Krishnamurthi. How to Design Programs, 1st Edition (HtDP/1e). MIT Press. Sept 2003 version. Available online.
  • Supplemental: Bloch. Picturing Programs: an Introduction to Computer Programming Texts in Computing, 2010
    http://www.picturingprograms.org (click this link to textbook website, where full copy may be downloaded).

Course Prerequisites

The course is suitable for both CS majors and non-majors. No previous programming experience is required (although knowledge about using web browsers is helpful).

Attendance

Please notify me before any classes or labs you know you will miss. Part of your grade (5%) is based on participation, and you must be present to participate. Excessive absences tend to hurt one’s overall performance in this class.

Course Goals

  1. To learn to solve problems, using the functional programming language Racket, on a computer 8-).

  2. To learn to enjoy the creative process of programming (it really is an art and it really is fun) :-P!

Advice

Keep up with the reading and assignments. Topics tend to build on one another. Missing one lecture or lab may preclude fully understanding the next, so do your best to attend every class meeting. Make arrangements with a classmate to copy material you miss when you can’t attend. Please contact or visit me if you have any questions, or if there is anything you would like to discuss. If you can’t make it to office hours, let me know and I can arrange to meet with you at another time. Email is generally the best way to reach me. I will answer emails quickly (except that anything you send me after 9 pm at night will not be answered until the following morning.) My e-mail addresses are given at the top of this page.

Programming Style

Writing a program to solve a problem is in many ways analogous to writing an essay. In fact, both acts share the notion of composition and involve a problem-solving process. Therefore, just as you would in other classes, in this class you should strive to write elegant, non-repetitive code. One reason to strive for this goal is that over time, you will probably need to read and maintain more code than you will write. Writing unorganized, hard-to-read code will earn you a similar grade to that which you would receive for writing unorganized, hard-to-read essays in an English class.

I advise you not to wait until the last minute (or even the night before the assignment is due) to start a programming assignment!! Read the last sentence again. Students who start working on programs early will be rewarded if their final grade is on the border between two grade categories. It is always possible to submit a program early and submit it again (before the deadline) if necessary. Asking questions is a good thing and is highly encouraged. It’s not possible to ask too many questions, although the coaches and I will let you know when you are asking questions whose answers help you too much in solving the problems (you actually learn much more if you develop a solution on your own).

Remember, design of a program is every bit as important as the code and you will find that a good design leads to easily readable, error-free, and maintainable programs. So spend some time thinking about how to solve a problem before you actually start typing...it can save you lots of time.

Coursework

Tools

We will use an Integrated Development Environment (IDE) called DrRacket to create and edit our programs. The benefits of using an IDE like DrRacket will become apparent as you begin programming. You can download the DrRacket IDE for free using the link on the left sidebar. For help with installation, bring your laptop to OLB and your professor or one of the coaches will help you.

Lectures

The lectures will be used to present new material, usually augmented by handouts posted on-line. Most lectures will use live programming sessions to analyze and test the concepts being presented. Program code from these sessions will typically be posted on the course web page shortly before lectures. The material covered each week will build on what was covered in prior weeks. As such, it is essential that you attend every lecture (and keep up with the reading assignments).

Classroom Etiquette

We will have classes and labs in OLB 105, which has been outfitted with lab computers to accommodate our lectures and labs. During lecture sessions, you are encouraged to log in to your computer science account to access: the course web page, links on the course web page, and DrRacket. The use of the computers in OLB 105 to surf the web, use FaceBook, Twitter, or any other computer applications that are unrelated to course content during lecture or lab is highly discouraged! This restriction is a matter of common courtesy because what is on your screen can distract the students sitting behind you.

Please turn off all cell phones while in OLB 105.

Labs

This course has weekly lab sessions held in OLB 105 (and spreading to other computer labs if necessary). The computers in all our labs run the Linux operating system and have the DrRacket software that we will be using throughout the semester. Even if you have the DrRacket software installed on your own computer, you must do your lab work in the lab on one of the lab computers during your scheduled lab time. When you are finished with each lab, you should ask the professor (or a lab coach) to verify that you have done the work and record your presence in lab. Make sure you are checked off before leaving the lab. You are responsible for saving your lab work for use on exams. Since printing hard copy doesn’t fit with the “green” theme of this class, you should keep all lab and assignment programs in your computer science account so that the programs are backed up (our system administrator, Ben Stoughtenburgh, saves all the data on all our systems at regular intervals).

Assignments

To reinforce the concepts we will be studying, you will construct programs of increasing complexity and sophistication throughout the course to assess your understanding of the topics presented.

  • Late assignments will be penalized unless a valid excuse is presented or arrangements are made before the due date (5% of total grade will be deducted for each day an assignment is late). Extensions on assignments will not be open-ended and will be granted only in the event of illness or other excused absence. Having too much work due for other classes is not a valid excuse.

  • Collaboration is not allowed on assignments or exams, so please do your work on your own.

  • Assignments will be submitted, graded, and returned electronically.

Exams

There will be two midterms (dates already tentatively set, see below), and a final exam (during the regularly scheduled final exam period).

If you are unable to take the exam on the date scheduled, it is your responsibility to notify me in advance to make other arrangements.

Grading

Your final grade for the course will be calculated according to the following distribution of coursework:

30% Assignments (8 to 10)
15% Weekly Labs (8 to 10)
5% Class Participation (including office visits)
30% Exam I (Feb 22nd and Feb 26th) and Exam II (week of Apr 22nd)
20% Final Exam - Regularly Scheduled time

Note: Although higher numerical scores will necessarily receive higher grades, I do not feel bound to follow the frequently used 90/80/70/60 cut-offs. Programming is as much an art as it is a logical process and superior performance will be rewarded. No extra credit work will be given. Pluses or minuses may be added at my discretion.

Academic Integrity

Don’t cheat. Read Originality and Attribution: A guide for student writers at Vassar College. Copying someone else’s code without attribution amounts to plagiarism. Likewise, give proper attribution for the help you receive. School policy dictates instructors must report all suspected incidents of cheating to their department chair. Please don’t put yourself or me in that position. When in doubt, ask me before seeking any help from another source.

Students with disabilities

Academic accommodations are available for students registered with the Office for Accessibility and Educational Opportunity. Students in need of ADA/504 accommodations should schedule an appointment with me early in the semester to discuss any accommodations for this course that have been approved by the Office for Accessibility and Educational Opportunity, as indicated in your AEO accommodation letter.

courses/cs101-201301/top.txt · Last modified: 2013/02/18 16:53 by walter
VCCS Top Events Extended Site Search Login Vassar Science Web Vassar Home Driven by DokuWiki Valid XHTML 1.0