====== Computer Science III: Software Design and Implementation ====== ~~NOTOC~~ **CMPU-203** \\ **Vassar College, Spring 2013** \\ **Syllabus / Course Wiki** \\ ---- \\ Welcome to the course Wiki. It will be updated throughout the semester with important course information, so check here regularly.\\ ===== Contact Information ===== ^ Professor: | [[people:mlsmith:top|Marc Smith]] | ^ Office: | OLB 122 | ^ Office Hours: | Tue 1-3pm; Thu 10am-12pm (and by appointment) | ^ Phone: | 437 7497 | ^ Email: | mlsmith //(best way to contact me!)// | ===== Course Coordinates ===== ^ Time (when) | Mon/Wed/Fri 10:30--11:45am | ^ Space (where) | OLB 105 | ^ Cyberspace | http://www.cs.vassar.edu/courses/cs203-201301/top | \\ ---- \\ ===== Texts ===== * Barbara Liskov with John Guttag. //Program Development in Java: Abstraction, Specification, and Object-Oriented Design.// Copyright (c) 2001 Addison Wesley. ISBN-10: 0-201-65768-6. **Required**. * Peter Sestoft. //Java Precisely, Second Edition.// Copyright (c) 2005 MIT Press. ISBN-10: 0-262-69325-9. **Required.** * Joshua Bloch. //Effective Java, Second Edition.// Copyright (c) 2008 Addison Wesley. ISBN-10: 0-321-35668-3. **Required.** ===== Prerequisite ===== * CMPU-102: Data Structures and Algorithms ===== Course Summary ===== Develops techniques for design and implementation of complex software systems. Topics include object-oriented modeling, design patterns, component libraries, inheritance, parametric polymorphism, generic algorithms, containers, iterators, function objects and storage management. Development of a software system of significant complexity is required. A weekly laboratory period provides guided hands-on experience. ===== Implementation Language and Libraries ===== We will use Java as our implementation language this semester, and Netbeans as our IDE. We will use the Javalib tester and game world libraries for our implementation framework. ===== Coursework and Grades ===== To assess your understanding, there will be weekly labs, regular programming assignments, a midterm project and a final project. Information about the labs, assignments, and projects will be posted on the [[assigns/top|Assignments]] page of the course wiki as the semester progresses. The due dates of the weekly assignments will be determined as we progress. The midterm project is due before Spring break; the final project is due the last day of classes, and will include a class presentation. Your final grade for the course will be calculated according to the following: ^ ^^^^^ ^ | 5%^ |Participation ^ | ^ | 20%^ |Weekly Labs ^ | ^ | 25%^ |Weekly Assignments ^ | ^ | 25%^ |Midterm Project ^ | ^ | 25%^ |Final Project ^ | ^ ^^^^^ Based on the weighted average of your graded coursework, your letter grade will be determined according to the standard 90, 80, 70, 60 cutoffs. For example, 90% or above is an A; 80% or above, but below 90%, is a B; etc. Numbers often don't tell the whole story, however, and pluses or minuses may be added at the instructor's discretion. ===== Attendance ===== We are a community of learners, but you must be present to help one another. You provide a unique and valuable contribution to every class. The questions you ask help us all understand better the course material. Missing class deprives this community of your insights and understanding. So, please notify me before any classes or labs you know you will miss. I worry about you when you're not present. More practically, 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. ===== Classroom Etiquette ===== Lectures will begin on time. Students are expected to arrive on time. Mobile phones should be turned off during lectures. There are Linux workstations at each seat in the classroom. Please use them only for class work. It is very distracting to others when you visit other sites. ===== Academic Integrity ===== Don't cheat. Read [[http://deanofthecollege.vassar.edu/documents/originality/index.html|Originality and Attribution: A guide for student writers at Vassar College]]. While cooperation is encouraged, attribution must be given, and each student must hand in their own work. The guidelines that apply to writing in general, apply equally to programming assignments. Copying someone else's code without attribution amounts to plagiarism. For the same reason, using course bibles or other outside or online materials is not permitted. 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 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