CSCI 1200 Data Structures and CSCI 2200 Foundations of Computer Science.
Software Development Tools. Reasoning about Code. Inheritance and Polymorphism. Design Patterns. GUI and Event-Driven Programming.
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:
|01/25||Introduction to Principles of Software: syllabus, schedule, tools, Java.||syllabus eclipse/git ppt pdf|
||C++ vs Java, Eclipse, Git, Submitty--Homework 0 Due 02/05||ppt pdf hw0||6.25%|
||Reasoning about Code||DispatchTest.zip DynamicBinding.zip ExceptionTest.zip JavaVariables.zip StaticBindingDemo.zip TestEquals.zip|
||Hoare Logic, Loops--Quiz 1||ParseNameDemo.zip TypeConstraintDemo.zip Reasoning.pdf Reasoning.pptx|
||Loops and Loop Invariants--Homework 1 Due 02/19||hw1||6.25%
|02/11||Loops and Loop Invariants
|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%|
|03/01||Abstract Data Types (ADT).||Specifications2.pdf Specifications2.pptx BinarySearch.dfy BinarySearchJavaAlt.dfy BinarySearchJava.dfy|
|03/04||Representation Invariants, Abstraction Functions--Homework 3 Due 03/16--Quiz 3||ADTs.pdf ADTs.pptx hw3||6.25%|
|03/08||Reasoning about ADTs.||ADTsRepInvariants.pdf ADTsRepInvariants.pptx PointSet.zip IntSet.zip Representation exposure.pdf|
|03/11||Testing, Black Box Testing, White Box Testing--Exam 1||Exam1Review.pdf Exam1Review.ppt||12.5%
|03/15||Exceptions--Quiz 4||ADTReasoning.pdf ADTReasoning.pptx IntEq.zip IOExcDemo.zip|
||Identity, Equality--Homework 4 Due 03/26||hw4||6.25%|
|03/22||Subtype Polymorphism, Liskov Substitution Principle (LSP)||Testing.pdf Testing.pptx|
|03/25||Subclassing in Java, Subtype Polymorphism
||Identity_equality.pdf Identity_equality.pptx BrokenSet.zip Duration.zip|
|03/29||Subclassing in Java, Subtype Polymorphism--Homework 5 Due 04/13--Quiz 5
||SubtypePolymorphism.pdf SubtypePolymorphism.pptx hw5 marvel.csv||6.25%|
|04/01||Parametric Polymorphism--Exam 2.
||Design Patterns, Dependencies.
||Design Patterns||Covariant.zip Contravariance.zip OverloadVsOverride.zip|
||Design Patterns--Quiz 6||Generics.pdf Generics.pptx Super.zip GenericMethodDemo.zip GenericMax.zip GenericEquals.zip ListCopyTest.zip ArraySubtypeTest.zip WildCardContravariant.zip WildCardCovariant.zip WildCardTest2.zip WildCardTest.zip||6.25%|
||Antipatterns, Refactoring--Homework 6 Due 04/23||DesignPatterns.pdf DesignPatterns.pptx SingletonPatternDemo.zip Bicycle3Demo.zip Bicycle2Demo.zip FactoryPattern.zip PrototypeDemo.zip Bicycle1Demo.zip MazeGameDemo1.zip Injection.zip Bicycle4Demo.zip PrototypeDemo2.zip hw6|
||Event-Driven, GUI Programming--Quiz 7
||Software Process--Homework 7 Due 05/04
||DesignPatterns3.pdf DesignPatterns3.pptx BooleanDemo.zip ObserverDemo.zip CharConverter.zip StrategyDemo.zip CommandDemo.zip FlyweightDemo.zip FunCharConverter.zip SandwichDemo.zip FlyWeightDemo3.zip FlyWeightDemo2.zip FacadeDemo.zip ProxyDemo.zip BoolDemo2.zip AdapterDemo.zip CommandDemo2.zip CompositeDemo.zip hw7|
||Usability--Quiz 8||Refactoring.pdf Refactoring.pptx FunBicycleFactory.zip FunStrategyDemo.zip FunTwitterDemo.zip LambdaDemo.zip ObjStrategyDemo.zip|
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.
Final letter grades will be assigned as follows:
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: firstname.lastname@example.org; +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