CS 211 Fundamentals of Computer Science II • 5 Cr.
Continues CS 210, with data structures algorithm analysis and inheritance. Students learn to create collections, lists, binary trees, and sets. Other topics include sets, generic data types, sorting, recursion, run-time complexity, and graphical user interfaces. Prerequisite: CS 210 or entry code.
After completing this class, students should be able to:
- 1. Explain the benefits of abstraction, modularity and encapsulation for program design, reliability and testing.
- 2. Explain the differences between procedural and object-oriented programming.
- 3. Define inheritance and polymorphism, and explain the role they play in program design.
- 4. Create and use new classes through inheritance and virtual functions, and design object structure interfaces and inheritance hierarchies.
- 5. Explain the principles of recursion versus repetition, and write recursive methods for a variety of tasks.
- 6. Explain, implement use, and contrast data structures including arrays, sets, lists, collections, and trees.
- 7. Explain and use container classes, and create linked lists.
- 8. Measure and evaluate program performance through running time and the use of Big-O notation.
- 9. Use different approaches and algorithms to search for a value or item in a data structure, such as linear and binary search techniques.
- 10. Explain different sorting algorithms for various applications, and apply different algorithms, from both the API and user-defined.
- 11. Compose design elements that facilitate troubleshooting, using Exceptions with try-catch blocks.
- 12. Design programs using a Graphical User Interface (GUI) and event driven programming.