Courses >
CMPT 270 Developing Object-Oriented Systems
Note that the information presented here does not necessarily reflect the most up to date syllabus or course information. Rather this information is intended to provide a general overview of course content from previous offerings.
Object-oriented programming. The use of modeling, abstractions, patterns, and GUIs to design and build a good OO system. Unit testing to ensure that it works. Applications of the techniques to interactive systems.
- CMPT 115 or 117, and a first year calculus course or STAT 245
If you want an explanation of something or to discuss some topic with me, the best time to access me is immediately after class, in the class room or hallway outside the classroom. If you are unable to stay long enough for your discussion or it needs to be a private discussion, then after class make an appointment to meet with me at another time. An appointment can also be made via email. If you have a question or questions, the best way to obtain a quick answer is via moodle (http://moodle.cs.usask.ca/). Moodle is also a good place for a public discussion of some topic.
Textbooks
- Big Java, 4rd edition, by Cay Horstmann, Wiley & Sons, 2010.
- Program Development in Java: Abstraction, Specification,
and Object-Oriented Design by Barbara Liskov with John Guttag,
Addison-Wesley, 2001.
- Excerpts from Data Structures and Software Development in an Object-Orientated
Domain : Java Edition by Jean-Paul Tremblay and Grant Cheston,
Prentice-Hall, 2003. These will be posted in pdf format at the 270 moodle site.
- Assignments - 25% in total
- 6 or 7 assignments, most involving programming in Java
- Examinations - 75% in total
- 1 midterm exam - 20%
- final exam - 55%
Note that to pass the course, students are required to achieve an aggregate mark of at least 40% on examinations in the course.
IMPORTANT! Please read:
1) All students must be properly registered in order to attend lectures and receive credit for this course.
2) Failure to write the final exam will result in failure of the course.
3) Failure to complete required course work will result in failure of the course.
-
Introduction and Overview - 1/2 hr
- Modeling objects of the world in a program - 2 hrs
- Java Basics and UML Introduction- 4 1/2 hrs
- simple program, types, objects, creation, statements, parameter passing - 2 hrs
- this, String comparison, basic array features, inheritance, UML inheritance, Object class - 1 hr
- casting for primitive types - 1/4 hr
- Java style - 1/4 hr
- activation records, memory types, trace runtime stack - 1/2 hr
- UML aggregation and uses relationships, UML package/subsystem representation - 1/2 hr
- Testing basics - 2 hrs
- notation
- special case testing
- boundary value testing
- drivers, regression testing
- bottom-up and top-down testing
- Exception handling - 1/2 hr
- Procedural abstraction - 1 hr
- preconditions, and postconditions
- Review Linear Data Structures - 4 hrs
- interfaces, Comparable interface, generic types
- Java Set and Map
- simple list interface: arrayed and linked implementations
- iteration, ordered linked list
- Java Collections
- More Java - 2 hrs
- typing: conformance, static type checking, dynamic binding
- packages and accessibility
- static variables and methods
- Design basics - 2 hrs
- decomposition, abstraction
- locality, cohesion, coupling, info hiding
- specification, Java @, design by contract, invariants
- classification of classes
- decomposition applied to the bank case study
- two-layer architecture, command pattern
- overview of the bank case study
- JUnit testing - 1/2 hr
- Dialog boxes - 1/2 hr
- More Design - 1 hrs
- abstractions
- Liskov substitution principle
- multiple inheritance
- types of inheritance: subtype and implementation
- GUIs - 4 hrs
- frames, event and listener concepts, and associated objects
- panels, buttons, labels, text fields
- inner classes, event dispatch thread
- AWT, Swing
- component layout: flow, border, grid, box
- ActionListener, KeyListener, MouseListener
- code layout for GUI classes
- Graphics- 1 hrs
- graphics basics: JPanel, paintComponent, Graphics2D
- shapes, text, images
- Animation and threads - 2 hrs
- animation via Timer class and events
- animation via threads
- race conditions, synchronization, deadlock
- model-view-controller architecture - 3 hrs
- ball-and-socket UML
- Observer pattern
- model-view-controller architecture
- space invaders game
- More testing - 1 1/2 hrs
- equivalence-class testing
- white box testing (statement, branch, condition, path coverage)
- loops and recursion
- concepts of gray-box and Object-oriented testing
- Files and streams in Java - 1 1/2 hrs
- text input: Scanner, and Readers
- binary input: DataInputStream, ObjectInputStream, serialization
- output: PrintStream, DataOutputStream, ObjectOutputStream, PrintWriter
- random access files
- More design - 1/2 hr
- data model, design manual, design reviews
- further courses - 1/2 hr
Students are expected to be academically honest in all of their
scholarly work, including course assignments and examinations.
Academic honesty is defined
and described in the Department of Computer Science Statement on
Academic Honesty at the site
http://www.cs.usask.ca/content/academichonesty/
The Student Academic Affairs Committee treats all cases according to
the University Policy and has the right to apply strict academic
penalties (see
http://www.usask.ca/university_secretary/council/reports_forms/reports/09-27-99.php)
1) "Students who have missed an exam or assignment must contact
their instructor as soon as possible. Arrangements to make up the
exam may be arranged with the instructor. Missed exams throughout
the year are left up to the discretion of the instructor if a
student may make up the exam or write at a different time. If a
student knows prior to the exam that she/he will not be able to
attend, they should let the instructor know before the exam."
2) "Final exams of a student who is absent from a final examination
through no fault of his or her own, for medical or other valid
reasons, may apply to the College of Arts and Science Dean's office.
The application must be made within three days of the missed
examination along with supporting documentary evidence. Deferred
exams are written during the February mid-term break for Term 1
courses and in early June for Term 2 and full year courses."