everything.study
COMP SCI 300

PROGRAMMING II

3 credits.

Introduction to Object-Oriented Programming using classes and objects to solve more complex problems. Introduces array-based and linked data structures: including lists, stacks, and queues. Programming assignments require writing and developing multi-class (file) programs using interfaces, generics, and exception handling to solve challenging real world problems. Topics reviewed include reading/writing data and objects from/to files and exception handling, and command line arguments. Topics introduced: object-oriented design; class vs. object; create and define interfaces and iterators; searching and sorting; abstract data types (List,Stack,Queue,PriorityQueue(Heap),Binary Search Tree); generic interfaces (parametric polymorphism); how to design and write test methods and classes; array based vs. linked node implementations; introduction to complexity analysis; recursion.

Prerequisites & course information

Requisites: Satisfied QR-A and ( COMP SCI 200 , 220 , 310 , 301, or placement into COMP SCI 300 ) or ( E C E/COMP SCI 252 and E C E 203 ); graduate/professional standing; declared in Capstone Certificate in COMP SCI. Not open to students with credit for COMP SCI 367. Course Designation: Core GenEd - Mathematics & Quantitative Reasoning Comm QR - Quantitative Reasoning B Breadth - Natural Science Level - Intermediate L&S Credit - L&S Liberal Arts and Science Repeatable for Credit: No Last Taught: Fall 2026 Learning Outcomes: 1. List and describe common operations for List, Stack, Queue, Priority Queue, Tree. Audience: Undergraduate 2. Analyze the time-complexity and compare the Big-Oh O(n) worse case complexity of different ADT implementations, and the complexity for any data structures and algorithms used to implement those operations. Audience: Undergraduate 3. Identify and properly test all boundary conditions for comprehensive testing of their programs. Audience: Undergraduate 4. Interpret and create a variety of diagrams: Call Stack trace; Stack, Queue, and Tree Data Structures; Recursive call (list or tree), control flow charts, class diagrams, object diagrams, and use-case diagrams. Audience: Undergraduate 5. Implement Object-Oriented (multi-class) standalone programs that manage a variety of data storage and retrieval operations (Program development skills and experience). Audience: Undergraduate 6. Evaluate models and arguments using quantitative information. Audience: Undergraduate Learning Outcomes: 1. List and describe common operations for List, Stack, Queue, Priority Queue, Tree. Audience: Undergraduate 2. Analyze the time-complexity and compare the Big-Oh O(n) worse case complexity of different ADT implementations, and the complexity for any data structures and algorithms used to implement those operations. Audience: Undergraduate 3. Identify and properly test all boundary conditions for comprehensive testing of their programs. Audience: Undergraduate 4. Interpret and create a variety of diagrams: Call Stack trace; Stack, Queue, and Tree Data Structures; Recursive call (list or tree), control flow charts, class diagrams, object diagrams, and use-case diagrams. Audience: Undergraduate 5. Implement Object-Oriented (multi-class) standalone programs that manage a variety of data storage and retrieval operations (Program development skills and experience). Audience: Undergraduate 6. Evaluate models and arguments using quantitative information. Audience: Undergraduate

Sources