Basics.- The industry of pure ideas.- Dealing with objects.- Program structure basics.- The interface of a class.- Just Enough Logic.- Creating objects and executing systems.- Control structures.- Routines, functional abstraction and information hiding.- Variables, assignment and references.- How things work.- Just enough hardware.- Describing syntax.- Programming languages and tools.- Algorithms and data structures.- Fundamental data structures, genericity, and algorithm complexity.- Recursion and trees.- Devising and engineering an Topological Sort.- Object-Oriented Techniques.- Inheritance.- Operations as agents and lambda calculus.- Event-driven design.- Towards software engineering.- to software engineering.
Introduction to Programming in such a good way. Explaining how things how at microscale leads to macro understanding later. Eiffel is such a good language to learn: one can learn a lot out of it.