Lectures, labs, and self-directed learning (programming assignments)
- Object-oriented design principles (polymorphism, encapsulation, and inheritance)
- Arrays and dynamic memory management
- Lists, stacks, and queues
- Recursion
- Sort algorithms
- Search algorithms
- Algorithm efficiency
- Data structures such as hash tables, trees, graphs and sets
Upon completion of this course, students will be able to:
- Identify fundamental data structures and algorithms
- Implement dynamic memory management in C++
- Apply object-oriented design principles with focus on data abstraction and information hiding
- Design and develop object-oriented software
- Implement basic data structures in C++
- Analyze the complexity of algorithms
- Choose appropriate data structures and algorithms for specified applications
- Convert recursive solutions to iterative solutions, and vice versa
- Demonstrate skills in tracing and designing recursive algorithms
- Select appropriate abstract data types for a small but realistic problem
- Write programs using linked lists
- Implement different types of sorting algorithms
- Write programs for different types of searching algorithms
- Write programs using array-based lists and linked lists
- Develop programs using data structures such as stacks, queues, hash tables, heaps, trees, and graphs
Evaluation will be carried out in accordance with Douglas College policies. The instructor will present a written course outline with specific evaluation criteria at the beginning of semester. Evaluation will be based on the following:
Labs 10% - 25%
Assignments 10% - 20%
Quizzes 0% - 10%
Midterm exam 20% - 35%
Final examination 25% - 40%
Class participation 0% - 5%
Consult the Douglas College Bookstore for the latest required textbooks and materials.
Sample text may include:
Data Abstraction & Problem Solving with C++: Walls and Mirrors (7th Edition), Frank M. Carrano and Timothy Henry, Pearson, 2017, ISBN: 978-0134463971
None