====== Week 5: Classes, Packages, and Advanced Topics ====== ===== Objectives ===== * Techniques for taking students the next step in object-oriented design and programming. ===== Readings for Class Discussion ===== Required Readings * Holland, et al (1997). [[http://dx.doi.org.login.ezproxy.lib.purdue.edu/10.1145/268085.268132|Avoiding Object Misconceptions]] * Lieberman, et al (2011). [[http://dx.doi.org.login.ezproxy.lib.purdue.edu/1921607.1921611|Difficulties in Learning Inheritance and Polymorphism]] Optional Readings * [[http://dl.acm.org.login.ezproxy.lib.purdue.edu/citation.cfm?id=216922.216928|The top 10 reasons why OOP can't be taught in CS1]] * [[http://dl.acm.org.login.ezproxy.lib.purdue.edu/citation.cfm?id=782941.782993|Teaching programming in the OOP era]] * [[http://dl.acm.org.login.ezproxy.lib.purdue.edu/citation.cfm?id=1709424.1709458|An Evaluation of Object Oriented Example Programs in Introductory Programming Textbooks]] ===== Topics ===== * Discuss misconceptions surrounding object-oriented programming. * Examples of problems students have when learning inheritance and polymorphism. ===== Lab ====== * AP CS: Fundamental Data Types