Pre-requisites
CSCI 1200 Data Structures and CSCI 2200 Foundations of Computer Science.
Course Themes
Software Development Tools. Reasoning about Code. Inheritance and Polymorphism. Design Patterns. GUI and Event-Driven Programming.
Learning Outcomes
When the students have successfully completed this course, they will be able to write correct and maintainable software in high-level languages. Concretely, students will be able to:
Date | Topic | Handouts | Grade |
---|---|---|---|
01/25 | Introduction to Principles of Software: syllabus, schedule, tools, Java. | syllabus eclipse/git ppt pdf | |
01/28 |
C++ vs Java, Eclipse, Git, Submitty--Homework 0 Due 02/05 | ppt pdf hw0 | 6.25% |
02/01 |
Reasoning about Code | DispatchTest.zip DynamicBinding.zip ExceptionTest.zip JavaVariables.zip StaticBindingDemo.zip TestEquals.zip | |
02/04 |
Hoare Logic, Loops--Quiz 1 | ParseNameDemo.zip TypeConstraintDemo.zip Reasoning.pdf Reasoning.pptx | |
02/08 |
Loops and Loop Invariants--Homework 1 Due 02/19 | hw1 | 6.25% |
02/11 | Loops and Loop Invariants |
Loops.pdf Loops.pptx | |
02/18 | Dafny--Quiz 2 | Dafny.pdf Dafny.pptx | |
02/22 | Specifications--Homework 2 Due 03/02 |
Specifications.pdf Specifications.pptx gcd_notes.pdf hw2 | 6.25% |
02/25 | Specification Strength |
UniquefyDemo.zip | |
03/01 | Abstract Data Types (ADT). | |
|
03/04 | Representation Invariants, Abstraction Functions--Homework 3 Due 03/16--Quiz 3 | |
6.25% |
03/08 | Reasoning about ADTs. | |
|
03/11 | Testing, Black Box Testing, White Box Testing--Exam 1 | |
12.5% |
03/15 | Exceptions--Quiz 4 | |
|
03/18 |
Identity, Equality--Homework 4 Due 03/26 | |
6.25% |
03/22 | Subtype Polymorphism, Liskov Substitution Principle (LSP) | |
|
03/25 | Subclassing in Java, Subtype Polymorphism |
|
|
03/29 | Subclassing in Java, Subtype Polymorphism--Homework 5 Due 04/09--Quiz 5 |
|
6.25% |
04/01 | Parametric Polymorphism--Exam 2. |
|
12.5% |
04/05 |
Design Patterns, Dependencies. |
|
|
04/08 |
Design Patterns--Quiz 6 | |
|
04/12 |
Design Patterns--Homework 6 Due 04/20 | |
6.25% |
04/15 |
Antipatterns, Refactoring | |
|
04/19 |
Refactoring--Quiz 7 |
|
|
04/22 |
Event-Driven, GUI Programming--Homework 7 Due 04/30 |
|
6.25% |
04/26 |
Software Process |
|
|
04/29 |
Usability--Quiz 8 | |
|
05/03 |
Review | |
|
TBA |
Final Exam | |
25% |
While none of the books is required, these are all highly recommended books worth having in your bookshelf.
There are 8 homework assignments to be completed individually. Do not show your code to any other student and do not look at any other student's code. Do not put your code in a public directory or otherwise make it public. You are encouraged to use the Submitty Discussion Forum to post questions so that other students can also answer/see the answers. Assignments are due at 11:59pm on the due date. You have 7 late days for the entire semester without penalty with a maximum of 2 late days per assignment.
Project requirements and instructions for submitting assignments will be made available for each assignment. Projects requiring programming must include the submission of well-commented source code. All programming assignments must execute successfully on the Linux operating system installed on the Submitty system. Documented source code and separate files containing answers to questions will be required for each assignment.
There are two partial exams and one final exam, to be completed individually. All answers must be your own.
There are 8 in-class quizzes, which are to be completed individually after a brief group discussion.
Homework Assignments | 50% |
Partial Exams | 25% |
Final Exam | 25% |
Final letter grades will be assigned as follows:
Letter | Grade Range |
---|---|
A | [93-100] |
A- | [90-93) |
B+ | [87-90) |
B | [83-87) |
B- | [80-83) |
C+ | [77-80) |
C | [73-77) |
C- | [70-73) |
D+ | [67-70) |
D | [60-67) |
F | [0-60) |
Student-teacher relationships are built on trust. For example, students must trust that teachers have made appropriate decisions about the structure and content of the courses they teach, and teachers must trust that the assignments that students turn in are their own. Acts that violate this trust undermine the educational process. The Rensselaer Handbook of Student Rights and Responsibilities and The Graduate Student Supplement define various forms of Academic Dishonesty and you should make yourself familiar with these. In this class, all assignments that are turned in for a grade must represent the student’s own work. In cases where help was received, or teamwork was allowed, a notation on the assignment should indicate your collaboration.
Violations of academic integrity may also be reported to the appropriate Dean (Dean of Students for undergraduate students or the Dean of Graduate Education for graduate students, respectively).
If you have any question concerning this policy before submitting an assignment, please ask for clarification. In addition, you can visit the following site for more information on our Academic Integrity Policy: Student Rights, Responsibilities, and Judicial Affairs..
Rensselaer Polytechnic Institute is committed to providing equal access to our educational programs and services for students with disabilities. If you anticipate or experience academic barriers due to a disability, please let me know immediately so that we can discuss your options. To establish reasonable accomodations, please register with THE Office of Disability Servicces for Students. After registration, make arrangements with the Director of Disability Services as soon as possible to discuss your accomodations so that they may be implmented in a timely fashion. DSS contact information: dss@rpi.edu; +1-518-276-8197; 4226 Academy Hall.
Disability Services for Students
RPInfo - contains various links for students, academic resources, support services, and safety & emergency preparedness.
Rensselaer IT Services and Support Center