Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS503: Tenth Lecture, Fall 2008 Review Michael Barnathan.

Similar presentations


Presentation on theme: "CS503: Tenth Lecture, Fall 2008 Review Michael Barnathan."— Presentation transcript:

1 CS503: Tenth Lecture, Fall 2008 Review Michael Barnathan

2 Grading Last chance for feedback. If none, here is the system we will use: 40% Assignments. 40% Project. 10% Labs. 10% Participation.

3 The Assignment Last week’s lab, creating a dictionary, has been turned into Assignment 3. It is due next week, Tuesday 10/14. – Like the other assignments, you should not require that much time, however. – I always implement the assignments before giving them to you. This one took me about an hour. – Don’t worry so much about the speed; focus on gaining skill and the speed will come with it. – 90% of the work in development isn’t figuring out how to tell the computer what to do; it’s how to frame the problem in terms the computer can understand. In other words, it’s a mental game. – The other 10% mostly involves looking up existing solutions, like TreeMap. – Another key to fast development: being completely comfortable with your development environment. Reminder: We do not have class on Thursday. – If you would like to go over it now, we can do that.

4 Mid-Semester Checkpoint We’ve covered a lot of structures so far: – Unsorted Arrays. – Sorted Arrays. – Linked Lists. – Stacks. – Queues. – Deques. – Priority Queues. – Binary Trees. – Binary Search Trees. And we’re not even halfway through the semester! Nice work! – You’re actually moving at about the pace of the original syllabus I had made for this course. – I was told that such a pace would be impossible, yet here we are, and unintentionally to boot. The most practical skill in the field of data structures is not implementing these (others have done it for you), but choosing which structure to use in which situation. – Making wise choices separates good from great. – When the input is small, the choice may be transparent to the user. – But the choices you make will determine how well your apps scale. We still have a few more to learn about that may sometimes be the best choice.

5 What’s left? Data Structures – Self-balancing Trees. Built on trees and balancing algorithms. – Heaps. Relate to trees and priority queues. – Hash Tables. Uses concepts from linear-time search. You will use these a lot. – Graphs. The most general data structure. Analysis – Amortized. – Average-case (maybe). – Solution of recurrences not covered by the Master Method. Theory – Some more recursion. Java – The complete set of collection classes. – Checked and unchecked exceptions. We’ll probably finish this all in about a month. These constitute the standard topics taught in a data structures and algorithms course. After we finish, I’m going to let you decide where you want to take your education. We can talk about some advanced techniques, go into more Java, review the current material, work on the project…

6 Some Philosophy: Your Goals and the Proper Role of Education I asked what your goals were in the beginning of the semester. Keep them in mind. Education is powerful… but it’s just a tool for reaching those goals. So once we finish the standard topics, think about where you want to take your education. – What topics would best serve what you want to do with it? – If your goals are unclear, these sorts of choices also force you to define them better. Don’t just think about your career goals, either. – We all have things we want to accomplish with our lives; definitions of success or failure that we evaluate them by. – These should be the primary goals, and all others only means towards achieving them.

7 On to the review… I’ll start by asking you some questions about the material we have covered and we’ll go from there.


Download ppt "CS503: Tenth Lecture, Fall 2008 Review Michael Barnathan."

Similar presentations


Ads by Google