CS 201 Final Exam Topic List Major Topics since Test 2 (2/3 of the test)- Agile and Extreme Programming: Know what makes XP different than Waterfall. Know what aspects of a project would make it more conducive to an agile process (experience, criticality, time frame, # of people, volatility) Polar Chart: http://www.cs.virginia.edu/~cs201/docs/chart.JPG Swing and Event-Driven Programming: Know the basics of Swing. Know why anonymous classes are important in Swing. Know what Event-Driven Programming is and how that relates to the various types of listeners in Swing. JavaDoc: Know what JavaDoc is, why it's useful, and the basic ways of using it Maintenance: Know the four types of maintenance and how we address them. Know 67%. Be able to related your experience with HW4 to the topics in this section. Trees and XML: Know what XML is, why it's a tree structure, and the basics of parsing. Trees and Grammars: Know why we consider grammars a tree structure and the general idea as to how a compiler knows if code is syntactically correct or not. UML: Know Class Diagrams, Use Cases, and Sequence Diagrams. Be prepared to draw any of these or to interpret any of these. Internet Security: Know how SQL and XSS attacks happen by injecting code where it shouldn't go. Be able to hypothesize ways to address these issues. Previous Major Topics (1/3 of the test, major points only)- Java coding: Be prepared to answer coding questions. Probably 2 or 3. Software Engineering: Know the phases of development and what happens during each. Inheritance: You should still know what superclasses, subclasses, interfaces, and abstract classes are. Testing: Know the different types of testing. You will NOT have to write JUnit code, but know the purpose of having JUnit. Java Collections Framework: Know the basics of the framework and what makes it a framework. You do NOT have to memorize API for this test, but I would expect you to know the common functions by now (add, get, compare, equals, etc.) ADT: Know what ADT stands for and why they are important. Be able to explain the ADTs of Sets, Maps, and Trees. Complexity: Know what it means for something to be Big Oh of something else. Know what a critical section is and how to identify it. Know why it is more important to count operations instead of seconds. Recursion: Know what a base case is. Know how to write a recursive function (and the three parts of a recursive function).