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 Modeling, UML 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 System, Meta 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 |
|
|
|