Our course syllabus is subject to update throughout the semester.
| Professor: | Jenny Walter | |
|---|---|---|
| Office: | OLB 124 | |
| Office Hours: | Tue & Thu 10am to noon, Mon 4 to 5 pm (and by appointment) | |
| Phone: | 437 7449 | |
| Email: | walter at cs dot vassar dot edu | |
| Lectures: | Mon/Wed noon to 1:15 pm, OLB 105 | |
| Labs: | Fri, 2 to 3:30 pm, Asprey Lab |
This course begins where Computer Science I leaves off. We will begin by studying class-based program design, inheritance, and abstractions that support the creation of reusable software and libraries. This preliminary material will be covered in the course notes.
After the first few weeks of the course, we will transition to programming exercises from the Roberts textbook. This book stresses graphical programming using a library developed by the Association for Computing Machinery (ACM), one of the largest societies for professional computer scientists in the world. The assignments in this book are designed to be run as Applets–programs that can be run through a web browser. The Roberts book will lead us into more advanced data structures and event-driven programming.
The principles of object oriented program design, the basic rules of program evaluation, the relationship between algorithms and data structures, and the basic techniques for analyzing algorithm complexity will be discussed over the course of the semester.
The course web page will be updated regularly throughout the semester with assignments, deadlines, and other important information. Please check it frequently. You will also need to check your email regularly for important class announcements.
The course is suitable for both CS majors and non-majors. It assumes that you have been introduced to the basic principles of program design and computation in CMPU 101. The course also assumes a basic familiarity with the systematic design of programs, and a moderate degree of computational and mathematical maturity.
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.
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 your professor 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 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 definitely not be answered until the following morning.) My e-mail address is given at the top of this page.
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 code. One reason for this goal is because, over time, we need to read more code than we write, and so we write code with this realization in mind. Writing unorganized, hard-to-read code will earn you a similar grade to that you would receive for writing unorganized, hard-to-read essays in an English class.
The lectures will be used to present new material, typically augmented by handouts. 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 after class. 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).
This course has weekly lab sessions held in the Asprey Computer Lab in OLB 112. These computers use the Linux operating system and have the DrJava and NetBeans software that we will be using throughout the semester. Even if you have the DrJava and/or NetBeans software installed on your own computer, you must do your lab work in the lab on one of the lab computers during the lab time. Each lab session should be viewed as a warm-up to prepare you for that week’s forthcoming assignment. There is nothing to turn in or submit for a lab session. Instead, when you are finished, simply ask the professor (or lab coach) to verify that you have done the work and he/she will record your grade on a scale from 0 (no work) to 3 (well done). You are responsible for printing and saving your lab work for use on exams.
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 in this course, there will be weekly written or programming assignments. Late assignments will be penalized unless a valid excuse is presented or arrangements are made before the due date.
Assignments will be submitted both in paper form and electronically.
There will be two midterms (dates already tentatively set, see below and schedule), and a final exam (during the regularly scheduled final exam period). At the instructor’s discretion, the exams will either be given open-notes in-class or in a take-home format.
If you are unable to take the exam on the date scheduled, it is your responsibility to notify the instructor in advance to make other arrangements.
Your final grade for the course will be calculated according to the following distribution of coursework:
| 50% | Weekly Assignments | |||
| 10% | Weekly Labs | |||
| 5% | Class Participation (including office visits) | |||
| 10% | Midterm 1 (Fri, Feb 19 & Mon, Feb 22) IN LAB | |||
| 10% | Midterm 2 (Wed, April 14) | |||
| 15% | Monday, May 17, 1:00pm-3:00pm, RH 300 | |||
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. Pluses or minuses may be added at my discretion.
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. Did you read the previous sentence? Please don’t put yourself or your professor in that position. When in doubt, ask your professor before seeking any help from another source.
Academic accommodations are available for students with disabilities who are registered with the Office of Disability and Support Services. Students in need of disability accommodations should schedule an appointment with me early in the semester to discuss any accommodations for this course that have been approved by Office of Disability and Support Services, as indicated in your DSS accommodation letter.