Lecture Schedule of Object Oriented Programming, 2017-18

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, Test Infected XP 20 Years Later by Kent Beck
21 Improving Structure with Inheritance  zip Quarks of Object Oriented Development, Why Inheritance is Bad Goodbye OOP
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-39 Introduction to DevOps  Class Notes
40 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
Self-Study (Assessed)
1 Packages and Classpath PDF
2 Cloning Objects PDF
3  Taxi Company case study zip
4 Designing Applications zip Read Modeling through CRC Cards and PPT of OOAD, BITS course Pair Programming a Facebook Messenger Bot - Mattias Petter Johansson
Optional Topics (Not-assessed)
1  Building GUI zip  Java FX by Oracle