Using the Java language students will learn the properties and implementation details of the fundamental data structures (arrays, lists, queues, stacks, dictionaries, hashtables, trees, graphs) that often are at the heart of any program. Students will also learn basic problem solving methods, such as divide and conquer, separate and conquer, dynamic programming, greedy algorithms, tree and search algorithms as well as some useful applications. As part of the coding assigments, students will be expected to analyse their code and follow good object-oriented design.
There will be approximately 8 programming assignments two quizzes and a final. The coding assignments will be in Java. Your lowest homework score will be dropped. Roughly, the exams and homeworks will count equally. The final exam will be based on the text, lecture notes, and homeworks. Each chapter ends with a summary. Be sure that you know every concept discussed in the summary. The fastest way to get questions answered is to email either the TA or me. Answers of general interest will be posted on the bulletin board (ics.H23). You may also use the bulletin board to ask classmates for appropriate help. Any form of inappropriate help will result in an F grade in the class and a letter in your file.
Text Data Structures and Problem Solving using Java by Mark Allen Weiss
Recommended: UP to speed in Swing by Steven Gutz
Lecture notes for the Java Language are available on-line Java Notes . Please tell me if you find any errors or misrepresentations.
Quiz: April 23
Quiz: May 21 12:00- 1:00
Final: June 11 10:30am-12:30, same room as lecture
Homework Details http://www.ics.uci.edu/~kibler/H23Homeworks.htm