- 11 Dec
Exam Review, plus a bit on Asynchronous Callback in Java.
- 9 Dec
- 4 Dec
- 2 Dec
Team assignments for Sixth Project Assignment.
- 21 Nov
- Quiz in Discussion Section.
- 20 Nov
Introduction to Patterns and Anti-Patterns.
- 18 Nov
- 14 Nov
No discussion section. Use the time to work on the Fifth Project Assignment.
- 13 Nov
- 11 Nov
- 7 Nov
- Quiz in Discussion Section.
- 6 Nov
Starting Dependency Inversion Principle.
- 4 Nov
- 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
- 16 Oct
- 14 Oct
- 9 Oct
- 7 Oct
- 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
- 18 Sep
- 16 Sep
- 12 Sep
- 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