This is an outline of the course SOFTENG 251, which is unlike before it the way that it is written directly in Wordpress's (distraction free) composition UI (which unfortunately is blatantly stupid in the way that it doesn't even have a keyboard shortcut for indenting items in a list!

  • familiarizing Java (e.g. Hello Java)
    • static, System etc
    • different uses of the .
    • Exceptions
      • "checked" / "unchecked"
      • trycatch blocks
    • !! "Primitive Types" vs. "Reference Types"
      • !! declaration vs. initialization
  • Intro to Object-Oriented Programing, with Java features
    • "good" Classes
    • CRC cards
    • Java Interface
    • how "Inheritance" works
      • (child class accessing base class's private fields? no.)
      • constructor of child class calls constructor of base class
    • visibility modifiers
    • the Java method look-up process & polymorphism
    • (the idea of) type safety & Liskov Substitution Principle
    • Java "generic types" (or, "parameterized type")
      • type relations, regarding generic type, in terms of substitutability
      • "wildcard generics"
    • abstract classes
    • the "Java Collections Framework" (sth. like java.utils.Collections)
    • parameterized methods
    • enumerated data types (enum)
  • OO Design, using Java-related tools
    • the idea of a "framework"
      • (your code gets called by the framework, not the way around)
    • how to use JUnit
    • brief into to UML
      • Class Diagram: Class, Interface, Inheritance, Aggregation, Composition, Association, Dependency, Realization, visibility modifiers
      • Interaction Diagram
      • State Diagram; etc.
    • how to use AWT & Swing
    • "design patterns"
      • Template Method, Strategy pattern, Singleton pattern, Composite pattern, Adapter pattern, Factory method, Observer pattern, Decorator pattern. etc.
    • "software design objectives", e.g.:
      • "correctness, robustness, flexibility, reusability, efficiency" etc.
    • MVC (Model - View - Controller), in the example of AWT & Swing, in macro & micro terms