CS 180 Problem Solving and Object Oriented Programming Fall 2011 Notes for the Final Lecture Dec 7, 2011 Aditya Mathur Department of Computer Science Purdue University West Lafayette, IN, USA This class: 12/7 1.Centipede game 2.Review 3.Final Exam 4.Best wishes
Programming and the “Nupe”d! Moments Oh! Moments Wow! Moments
Project 5 Black Screen does not show! Mushrooms do not show! Centipede does not move! Nuped! (Null pointer exception () Nuped!
Project 5: and more Centipede moving too fast!! Projectiles do not move! GameLogic loop does not execute! Oh S… Nuped!
Project 5: and more and more Ship not moving past the mushrooms Projectiles not colliding with the centipede! Nuped! And more…but then?
Project 5: The End! Finally!!! Aaaaah…It all works! Thanks CS 180!
Centipede Game: Advanced version Deep Space Remix By Denis Luchkin-Zhou
Java classes Used Graphics: Draw screen and game characters Point, Dimension, Rectangle: Positioning and collision Font, Font Metrics: Drawing text Robot: Locking the mouse Image: Ship, asteroids, centipede, background Use of texturing Animation: modified implementation of circular buffer
Additional Game Features Weapon upgrades Debugging mode Object pooling: efficiency of memory usage Mega laser Chained asteroid explosion: Asteroids around an exploding asteroids are damaged based on hit- points Game menu Overall design
Now-- Demo by Denis!
Course Review
Chapter 1 No questions from this chapter on the final exam Number systems (binary, hexadecimal, octal) Integers and floating point numbers Conversion across bases (e.g., int to binary) Errors in number representation Overflow and underflow
Chapters 2 and 3 Program structure Variables, constants, operations (+, -, %, /, etc.) Statements Strings Primitive types: int, long, double, boolean etc. Conversion across types Math library Classes and objects Scanner
Chapters 4 and 5 If-then and if-then-else statements Loops: – while and for statements
Chapter 7 Arrays: – Single dimension – Double dimension – Array creation – Array index bounds exception – Looping through arrays – Searching and sorting
Chapter 8 Methods: – Method signature – Parameters – Return type and void – Recursive methods – GCD and Fibonacci – Tree creation and traversal
Chapter 9 Classes and objects: – Constructors – Instance variables – Instance methods – Access modifiers (public, private) – Object creation and use – Arrays of objects
Chapters 10 and 11 Interfaces and inheritance – Implementation of interface – Interfaces in GUI construction – Access restriction
Chapter 12 Exceptions – Try-catch-finally
Chapter 14 Creating a thread The run() method Passing data to a thread Getting data from a thread Dividing work amongst thread start() and join()
Chapter 18 Trees Creation Searching Traversing
Chapter 19 File objects Opening and closing files Reading and writing into files
Final Exam: Friday 12/16: 1-3pm. LAMBF101
Part A Closed book/notes 10 Multiple choice questions Chapters 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 18, 19 You may ignore the chapters NOT listed above To prepare, review: – the quiz questions during in class quizzes – the conceptual problems at the end of the chapters mentioned above.
Final Exam: Part B Open book/notes; no laptop, etc; no internet connection Chapters 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 14, 18, 19 Two programming questions Q1: You will be asked to write several short methods. Q2: You will be asked to write one concurrent program.
Final Exam: Part B Recursion: Yes Threads: Yes GUI: No (no listeners) Binary numbers: No Synchronization (wait and notify): No
Thank you! For this most enjoyable class! Best wishes for success in the rest of your career at Purdue and beyond!