Lecture Schedule of Object Oriented Programming, 2016-17

Lec. No. Lecture Topics Lecture Materials Readings Optional Activities (no assessment)
1 Objects and Classes zip  Watch Myth of Genius Programmer On learning programming languages - Larry Wall, Bjarne Stroustrup
2-3 Understanding Class Definitions zip  Prof. Edgar Dijkstra - Why is Software So Expensive? Smarts Don't Guarantee Success - Brandon Adams
4-5 Object Interaction zip  Message Oriented Programming, Brian Knapp  Hiring Good Programmers by Jason Fried, 37Signals
6-7 Grouping Objects zip Martin Fowler - Collection Pipelines, Refactoring loops to collection pipelines  Interviews - Bjarne Stroustrup, Larry Wall
8-9 More Sophisticated Behavior zip  Collections Code Collections lecture @ MIT  More thorough review - Part-I, Part-II
10 UML Diagrams - Class, Object and Interaction Diagrams zip Read Collaboration between Objects, PlantUML Prof. Jennifer Widom - UML Data ModelingUML to Relations Data Modeling for MySQL
11 Designing Classes  zip  Workflows of Refactoring - Martin Fowler
12  Enumerated Types
13-14 Review class
15-17 Well-Behaved Objects zip Test Driven Development by JB Rainsberger
18-20  Testing zip  Brian W. Kernighan on Testing XP 20 Years Later by Kent Beck
21 Improving Structure with Inheritance  zip Quarks of Object Oriented Development, Why Inheritance is Bad
22-23 More About Inheritance  zip  Readings on Instanceof-Bill Venners, John O'Hanley  Chapters 1 - 6 of Introduction to OOP using C++
24-25 Further Abstraction Techniques  zip Implementing Equals  Designing with Interfaces, Bill Venners (advanced material)
 26-27 Handling Errors  zip Transitioning from BlueJ to Java Read Exception-Handling Best Practices and Patterns NIO and IO, NIO Tutorial by Jenkov, NIO2 Review
28 Inner and Anonymous Classes  zip Jenkov tutorial on Inner Classes
29-31 Generics zip  Generics in different languages
32-34 Concurrency  zip Joel Armstrong - How we program multicores  Carl Hewitt on Actor Model, Joel Armstrong on Computing: The first 100 Years
35 Extreme Programming Overview zip Ch3: The End of the Master Builder, Checklist Manifesto, Atul Gawande Checklist for Software Projects, courtesy MIT6.170 Software Studio, Spring 2013 XP in 21st Century - Rachael Davis Economics of the Software Design - JB Rainsberger
36-37 Principles of Object-Oriented Development zip OOP is Dead! Long Live OODD Smalltalk design principles, Solid Principles - Robert C. Martin, Sandi Metz
38 Persistence With CassandraDB  zip ObjectDB - PDF, tutorial NoSQL Distilled to an hour by Martin Fowler Cassandra Data Modeling
39-40 MVC Architecture + Servlets pdf  Expecting Professionalism in S/W Dev Microservices - Martin Fowler
Self-Study (Assessed)
1 Object Model Object Model chapter-OOAD  Alan Kay - OOP, Message Passing; Traits intro, wikipedia article on OOP Traits paper, Smalltalk - History, Design Principles Common Lisp Object SystemMeta Object Protocol
2 Packages and Classpath PDF
3 Cloning Objects PDF
4  Taxi Company case study zip
5 Designing Applications zip Read Modeling through CRC Cards and PPT of OOAD, BITS course Pair Programming a Facebook Messenger Bot - Mattias Petter Johansson
6 Design Patterns Pattern Index
Optional Topics (Not-assessed)
1  Building GUI zip  Java FX by Oracle
2 UML Diagrams - State and Activity Diagrams