| |
Oct 23, 2026
|
|
|
|
|
CSCI 1107 - Fundamentals of Computer Science II Credits: 4
Catalog Description This course is a continuation of CSCI 1106 . Object-oriented problem solving and programming techniques, and basic algorithmic analysis techniques are introduced. Elementary data structures such as lists, stacks, queues, trees, and graphs are introduced. Software engineering principles are explored using an object-oriented language.
Prerequisite(s) (must have a grade of C or better): CSCI 1106 Additional fee to student: No
Learner Outcomes
- Implement recursive and iterative algorithms over appropriate data structures (e.g., tree traversal, pre-order, and post-order).
- Analyze recursive and iterative algorithms for space-time complexity.
- Identify appropriate use of and implement statically allocated data structures.
- Identify appropriate use of and implement dynamically allocated data structures.
- Develop and implement a dictionary data type incorporating hashing algorithms and collision avoidance.
- Write programs that use each of the following data structures: arrays, records/structs, strings, linked lists, stacks, and queues.
- Implement algorithms and underlying data structures utilizing standard object-oriented design principles.
Major Areas of Course Content
- Object-oriented programming: encapsulation, polymorphism (including dynamic binding), inheritance
- Abstract data types
- Static allocation vs. dynamic allocation of memory
- Linked lists: static implementation, dynamic implementations, and doubly linked
- Stacks: static and dynamic implementation
- Queues: static and dynamic implementation, circular, and priority
- Generic Objects
- Recursion
- Algorithm analysis
- Sorting: quick sort, merge sort, heap sort, shell sort, and radix sort
- Hashing with collision strategies
- Trees
- Graph theory
- Traversals
- Heaps
Credit for Prior Learning Options Course-Specific Exam
Credit for Prior Learning Option Procedure(s) This is a 2-step process: a. A comprehensive examination will be administered; b. A programming project will be assigned that is commensurate with the level of expertise of an average student who has completed the course.
Add to Portfolio (opens a new window)
|
|