Courses of Study 2024-2025 
    
    Jul 01, 2024  
Courses of Study 2024-2025
Add to Favorites (opens a new window)

CS 2110 - Object-Oriented Programming and Data Structures

(crosslisted) ENGRD 2110  
(SMR-AS)      
Fall, Spring, Summer. 4 credits. Student option grading (no audit).

Prerequisite: CS 1110  or CS 1112  or equivalent course on programming in a procedural language.

Staff.

Intermediate programming in a high-level language and introduction to software engineering. Topics include object-oriented programming (objects, classes, subtypes, encapsulation, polymorphism), program correctness (specifications, invariants, testing), algorithm analysis (asymptotic complexity, big “O” notation), recursion, data structures (lists, trees, stacks, queues, heaps, hash tables, graphs), iteration and searching/sorting, graph algorithms, and concurrent and event-driven programming (graphical user interfaces, synchronization). Java is the principal programming language.

Outcome 1: Employ recursion and object-oriented programming concepts (e.g., classes, interfaces, polymorphism, inheritance) to solve computational problems.

Outcome 2: Design, implement, and verify nontrivial Java programs (roughly 1000 lines of code), starting from an English language specification, leveraging features like encapsulation and unit tests to improve maintainability.

Outcome 3: Build and modify event-driven graphical user interfaces (GUIs) expressed in Java.

Outcome 4: Analyze the asymptotic complexity of algorithms and programs to evaluate their running times and memory requirements.

Outcome 5: Implement basic data structures taught in the course (linked lists, binary search trees, heaps, hash tables, adjacency lists) and be able to use them in programs.



Add to Favorites (opens a new window)