Overview This module introduces you to the course organization, policies, and mechanics. We review the structure of the course website. We take a brief look at the major themes and areas of emphasis that we will cover this semester. | Activities
|
Overview This module covers the notion of ADTs from the a design perspective. We motivate the notion of ADTs as a design principle, and move towards ADTs as a contract. | Activities
|
Overview This module discusses the implementation of ADTs using C++ classes. This includes mechanics (e.g., Constructors and Destructors) and best practices (in the form of a checklist). Everything in this module is review from CS250. If it seems unfamiliar, or if you find yourself struggling unduly with the assignment at the end of this module, you may need to go back and do some serious reviewing. | Activities
|
Overview In this course we will be using two of the most widely used OOPLs (Object-Oriented Programming Languages) – C++ and Java. Everyone enrolled in this course should be quite familiar with C++ already (although if it has been a while since your last C++ course or if your grades in that course were marginal (below B), now would be a good time to go back and review. Most students in this course will be unfamiliar with Java, however, so we will take a little time to build up familiarity with it. There’s a lot of hands-on work (“labs”) in this section because the issue is really not so much “learning” Java as “getting comfortable” with it. | Activities
|
Overview This module discusses workflows and overall process of OOA, with a focus on class discovery and documentation. | Activities
|
Overview This module discusses the intermediate stages of analyzing an Object Oriented System. UML class diagrams are introduced , combining classes and the relationships among them. The first Design Assignment is assigned during this section. You (and optionally your group) when follow the design process for an instructor selected domain. | Activities
|
Overview This module continues the discussion of design and UML. This includes modeling scenarios (partially and fully) through use cases, interaction diagrams, and sequence diagrams. The second design assignment is assigned during this module. You (and your group) will extend your Early Elaboration Assignment solution in this exercise. | Activities
|
Overview A programming language is considered object-oriented if it supports inheritance, subtyping, and dynamic binding. This module discusses these three ideas as they manifest in C++ and Java, setting us up to do actual object-oriented programming. | Activities
|
Overview This module continues our discussion of inheritance by exploring the idea of abstract classes and “pure” inheritance. | Activities
|
Overview SOLID is an acronym for a collection of principles considered to contribute to effective Object-Oriented Design:
| Activities
|
Overview In this module we discuss GUIs and how
| Activities
|
Overview In this module we discuss the use of Java threads. We briefly cover the principles of multi-threading (parallelism). We conclude the discussion in the context of the running SpreadSheet example. | Activities
|
All times in this schedule are given in Eastern Time.
Symbol Key | |
---|---|
Lecture: | |
Slides : | |
Event or important date | |
Reading | |
Do lab: | |
Assignment: | |
Exam | |
Java lesson | |
Under construction: |