Class— | Mondays and Wednesdays at 12:00-1:15 p.m. |
Lab— | Tuesdays at 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.
Mondays and Wednesdays 12:00-1:15 pm in New England NE-206
Tuesdays 6:00-8:00 pm in Sanders Physics SP-309
If you have a question that is not confidential or personal, post it on the Google Classroom. Rresponses tend to be quicker and have a wider audience. To contact me directly, I strongly encourage you to come to office hours. If that is not possible, you can also email (non-technical questions only) to the course mailing list, TBD. If you have a matter to be discussed privately, please come to office hours, or make an appointment with me. You can also send me message on Google Hangout. That is the fastest way to reach me. For grading questions, please talk to me after class or during office hours.
Announcements will be send to the class mailing list. Please read these messages.
If you do send me an email, I would appreciate if you address me as Prof. Pradhan
Since we occasionally reuse homeworks 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
Attendence is highly recommended in all classe. 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 assignments 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 to use on each programming assignment. Once late days are exhausted, the assignment will be penalized 2% per late day. I am likely to assign individual extensions based on extenuating circumstances as long as you communicate with me in advance.
This class has a significant amount of textbook reading. Most weeks have around 30-60 pages worth of content (as it varies by the type of book). The homeworks and exams will be based heavily on the readings.
We will be two exams and a final project. Details below.