| Course |
CSE260 |
| Title |
Computer Science B: Honors |
| Credits |
3 |
| Course Coordinator |
Eugene W. Stark |
| Current Catalog Description |
Second part of a two-semester sequence, CSE 160 and CSE 260. Further development of the object-oriented design strategies presented in CSE 160. Continues with introductions to event-driven programming, graphical user interfaces, and design patterns. Includes an extended design and programming project.
|
| Prerequisite |
CSE 160
|
| Course Outcomes |
- An ability to apply techniques of object-oriented programming in the context of large-scale programs.
- An understanding of the importance of time and memory efficiency in algorithm and data structure design.
- An ability to use recursion to solve programming problems.
- An ability to use programming tools such as syntax-directed editors, debuggers, execution profilers, documentation generators, and revision-control systems.
|
| Textbook |
- Horstmann, Object-Oriented Design and Patterns, Wiley, 2006 (ISBN 0-471-74487-5).
- Budd, Classic Data Structures in Java, Addison Wesley, 2000 (ISBN 0-201-70002-6).
|
| Major Topics Covered in Course |
- Software development process, specifications and requirements, object-oriented design, version management.
- Event-driven programming, applets.
- Graphical user interfaces.
- Design Patterns, Threads and synchronization.
- Abstract data types, collection types, mapping types.
- Linked lists, iterators.
- Stacks and applications.
- Queues and applications.
- Recursion.
- Trees, binary search trees, heaps and balanced trees.
- Searching, binary search, hash tables, complexity, big-O notation, using profiling tools to assess program performance.
- Sorting, mergesort, heapsort, quicksort.
|
| Laboratory Projects |
- Software development process, specifications and requirements, object-oriented design, version management.
- Event-driven programming, applets.
- Graphical user interfaces.
- Design Patterns, Threads and synchronization.
- Abstract data types, collection types, mapping types.
- Linked lists, iterators.
- Stacks and applications.
- Queues and applications.
- Recursion.
- Trees, binary search trees, heaps and balanced trees.
- Searching, binary search, hash tables, complexity, big-O notation, using profiling tools to assess program performance.
- Sorting, mergesort, heapsort, quicksort.
|
| Course Webpage |
/~cse260 |