Lecture Activities

11 Dec

Exam Review, plus a bit on Asynchronous Callback in Java.

9 Dec

The Observer pattern and Java's Observer Interface. Related Java topics: Anonymous Classes and Lambdas.

4 Dec

Covering Template method pattern, Delegation pattern, also a little about Decorator pattern. Introducing Model View Whatever too.

2 Dec

Team assignments for Sixth Project Assignment.

21 Nov
Quiz in Discussion Section.
20 Nov

Introduction to Patterns and Anti-Patterns.

18 Nov

Interface Segregation Principle. Yet More Object-Oriented Design Principles.

14 Nov

No discussion section. Use the time to work on the Fifth Project Assignment.

13 Nov

Looking at examples of Java, for Code smell and violations of SOLID (object-oriented design) principles.

11 Nov

Discussion of progress in Fifth Project Assignment (see new questions and answers), plus finishing Dependency Inversion Principle.

7 Nov
Quiz in Discussion Section.
6 Nov

Starting Dependency Inversion Principle.

4 Nov

Progress on Fifth Project Assignment? Lecture on Liskov Substitution Principle.

31 Oct

No discussion sections -- teams should use this time to meet and start work! The TA will hold office hours during discussion section.

30 Oct

Continue discussion of Fifth Project Assignment; brief look at Pert chart and the timing of team member activities. Remember to use GitHub for team collaboration! Start coverage of Liskov substitution principle, the example in the textbook: rectangle vs square "is a" relationship and dealing with Method overriding. Key points from chapter:

  • Example in textbook uses C++. See this article for a Java example.

  • The Robustness principle (not called that in the textbook, but very well known idea).

  • The use of Precondition and Postcondition to characterize method behavior. Java does not have precondition and postcondition facilities, but some packages like Guava have tools to express preconditions.

28 Oct

Start second iteration of the Search Engine Project, forming new teams and with new goals for developing the project further. As a base for development, clone Search Engine V1. For lecture material, some coverage of Java Interfaces and Enums. FYI, Github Student Developer Pack.

23 Oct

Using git-gui and its bash shell to work with Github (demo video). Maybe even using the git commands with a shell or the GitHub App and other tools for collaboration, which have already been used by some teams. Also, Class Methods and Class Hierarchies for sake of review (quiz on Friday over open/closed principle).

21 Oct

Discussion of Fourth Project Assignment. Start coverage of Open/closed principle (Chapter 9 of the Martin textbook). Explanation of UML Arrows. Example of Shapes and Inheritance.

16 Oct

Continuing Object Design and CRC card exercises. The Search Engine Project begins. No recording. Discussion sections Friday introduce Git, for sharing content during team development.

14 Oct

Basics of Object Design, with small exercise on Class-responsibility-collaboration card. No recording (in-class exercises with CRC cards).

9 Oct

Second lecture on Testing. Recording (demo not working properly near end).

7 Oct

First lecture on Testing. Recording.

25 Sep

Second lecture on Third Project Assignment, diving into to one Java file, showing how to collect all the names of classes and methods, which can be used to make a structural diagram of how the things defined within a Java file call each other (like a call graph), and then extending this diagram with names of classes and methods defined within Lucene, but outside that Java file. The practice of doing this laborious process is eventually helpful to learning more about the big picture. Time permitting, you should go beyond one Java file, to perhaps several files within the same project, hoping to connect more with the high-level goals of Lucene (indexing, queries, parsing, facets, and so on). Recording

23 Sep

Lecture devoted to Understanding Large Software and Third Project Assignment. Recording

18 Sep

A bit more on user stories and BDD. A demonstration of Java Unit Testing and how it relates to acceptance testing. Recording

16 Sep

Entire lecture devoted to Second Project Assignment by working through the "teacher" story of 12Sep notes. Recording

12 Sep

Discussion section exercises in elementary Cucumber -- see 12Sep.

11 Sep

Drilling down on User Stories with in-class exercises. Possibly of interest is this sample chapter from a book on Cucumber. Most of the lecture time was turned over to in-class exercises resulting in user story cards, though here is the first few minutes recording.

9 Sep

Responding to questions on current assignment. Initial coverage of User story. Notes in UserStories.pdf. Then moving to Acceptance testing, which is a design validation tool in Behavior-driven development (BDD). Chapter 7 from the SaaS text uses Cucumber, which has been adapted to several programming languages: see the Cucumber page for installation tips. Recording of lecture.

4 Sep

The meeting is devoted to in-class experiments with use case diagrams and sequence diagrams. A starting point is the description of use case diagrams, which has more detail than the Use Cases page. In-class exercise.

2 Sep

The main emphasis of the lecture meeting is how Java can be used for Service-oriented architecture (SOA). The lecture shows more about how the Java environment works, including Maven. Describe REST and Java, and then a bit about Annotations and Decorators, which are used by the most popular API supporting REST-style communication. Maven is integrated with Eclipse (though not yet in the CLAS computer labs), which automatically manages many complex library dependencies. Later in course projects, these things will be quite useful. Lecture recording.

28 Aug

Go into more detail about history of Software as a Service (mentioning RPC, CORBA, SOA, ESB, SOAP, REST, WSDL, BPL). The only sections of Chapter 1 not assigned are 1.4 and 1.10--1.14. This lecture covers what 1.4 describes, SOA. The second part of the lecture is (hopefully) an in-class demonstration of installing Java, Eclipse, Ant/Ivy, and Maven -- see InstallEnvironment. Lecture recording (unfortunately, the laptop demo is missing).

26 Aug

First Day: go over Syllabus, firstday.pdf, and CoursePlan. Lecture recording (hawkid login and must be enrolled in course to view).

Lectures (last edited 2014-12-10 20:27:11 by Ted Herman)