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.