Class— | Tuesdays and Thursdays from noon-1:15 p.m. |
Lab— | Wednesdays from 6:00-8:00 p.m. |
This course will help you develop techniques for design and implementation of complex software systems.
We will cover advanced techniques in object-oriented modeling, design patterns, inheritance, parametric polymorphism, generic algorithms, containers, iterators, function objects and storage management, with a focus on collaborative software development.
The course uses Java
programming language and make extensive use of git
for version control via GitHub, and maven
for automated build, dependency management and versioning.
Development of a software system of significant complexity is required.
A weekly laboratory period provides guided hands-on experience.
Wednesdays from 6:00 p.m.-8:00 p.m. in Sanders Physics SP-309
If you have a question that is not confidential or personal, please post it on the Google Classroom. Feel free to respond to other student's questions. That way responses tend to be quicker and have a wider audience. I will be monitoring the discussion threads, so in case there is any misunderstanding, I can intervene. I would strongly encourage you to come to office hours to talk about any questions or issues you might have or feedback you might want to provide. If meeting in person is not possible, please schedule a Google Hangout session with me over email. If it is a time-sensitive matter, the best way to get hold of me is to send me a Google Hangout message at my Vassar email.
Announcements will be periodically posted to the Google Classroom. Please make sure that you receive the notification emails from Google Classroom and that you read those messages.
Since we occasionally reuse assignments that were previously assigned, and the fact that one can search for similar problems online, we expect students not to copy, refer to, or look at the solutions in preparing their answers. It is an honor code violation to intentionally refer to a previous year's solutions. This applies both to the official solutions and to solutions that you or someone else may have written up in a previous year. It is also an honor code violation to find some way to look at the test set or interfere in any way with programming assignment scoring or tampering with the submit script.
Since quizzes are a form of assessment, students are not allowed to collaborate on completing quizzes. It is an honor code violation to discuss quiz questions with other students.
In signing the matriculation pledge at Vassar, you have assumed the responsibility for the integrity of your academic work. Please follow the pamphlet "Originality and Attribution: A Guide for Student Writers at Vassar College." which contains detailed discussions of the requirements of academic honesty.
CMPU 102
Attendance is highly recommended in all classes. Although a significant portion of what I will cover in class is available in textbooks, the number of potential texts that cover is far more than the ones listed in the syllabus. Also, depending on student participation and interests, we might cover topics and have discussions which could have a bearing on the questions in the exams.
Extra credits would be given for students participation in the classroom. Students can also participate by providing helpful answers on the class forum, helping out other students in office hours, etc.
There will be roughly 5—10 assignments (depending on the scope of each assignment) throughout the semester.
Programming Assignment Collaboration: You may talk to anybody you want about the assignments and bounce ideas off each other. But you must write the actual programs yourself.
You have 3 free late (calendar) days for the entire semester.
Once you have exhausted the quota of free late days, the maximum points you can receive for an assignment will be decreased by 10% for each late day.
I am willing to consider individual extensions based on extenuating circumstances—as long as you communicate with me in advance.
Example points workout: If you have used up your three late weekdays, and are 2 days late, then you will receive a maximum of 80 points for a 100 point assignment. That is, if you score a 90 on the original 100 point assignment, then with the late penalty you will receive 72 points out of a maximum of 80 points for that assignment. Just to clarify some more—the 72 points will be out of a total of 100 points for that assignment in the final weighted semester point calculations.
This class has a significant amount of reading and coding. Most weeks have around 30-60 pages worth of content (as it varies by the type of book). Depending on your coding proficiency and previous knowledge, you should plan to spend somewhere between 10 to 20 hours per week on this course.
We will be three exams and a final project. Details below.