University of Saskatchewan Department of Computer Science

Welcome to the Department of Computer Science

Courses >
Printer

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.

Description

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. 


Prerequisites

  • CMPT 115 or 117, and a first year calculus course or STAT 245

Instructor

Office Hours

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.

 


Course Material

Textbooks
  • Big Java, 4rd edition, by Cay Horstmann, Wiley & Sons, 2010.
References
  • 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.
Course Files and Discussion


Marking

  • 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. 


Course Outline

  1. Introduction and Overview - 1/2 hr

  2. Modeling objects of the world in a program - 2 hrs
  3. 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
  4. Testing basics - 2 hrs
    • notation
    • special case testing
    • boundary value testing
    • drivers, regression testing
    • bottom-up and top-down testing
  5. Exception handling - 1/2 hr
  6. Procedural abstraction - 1 hr
    • preconditions, and postconditions
  7. 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
  8. More Java - 2 hrs
    • typing: conformance, static type checking, dynamic binding
    • packages and accessibility
    • static variables and methods
  9. 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
  10. JUnit testing - 1/2 hr
  11. Dialog boxes - 1/2 hr
  12. More Design - 1 hrs
    • abstractions
    • Liskov substitution principle
    • multiple inheritance
    • types of inheritance: subtype and implementation
  13. 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
  14. Graphics- 1 hrs
    • graphics basics: JPanel, paintComponent, Graphics2D
    • shapes, text, images
  15. Animation and threads - 2 hrs
    • animation via Timer class and events
    • animation via threads
    • race conditions, synchronization, deadlock
  16. model-view-controller architecture - 3 hrs
    • ball-and-socket UML
    • Observer pattern
    • model-view-controller architecture
    • space invaders game
  17. 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
  18. 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
  19. More design - 1/2 hr
    • data model, design manual, design reviews
  20. further courses - 1/2 hr

Honesty

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)

Missed Examinations

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."