CSTP 1305: Algorithms Analysis and Data Structures
Effective date
September 2022
Department
Computer Systems Tech Diploma
School
Trades, Technology and Design
Description
Students learn the fundamentals of algorithm design and analysis through hands-on practice with various popular algorithms and data structures used in software development. Students learn how to analyze the time and space complexity of an algorithm and learn how to test and choose the right solution for a non-trivial programming problem.
The emphasis is on developing practical skills as well as the conceptual mastery of efficient algorithm selection. Important data structures covered in this course include: arrays and vectors, and trees and graphs. Popular algorithms and design strategies covered include: Recursion vs Iteration, Divide and Conquer, Greedy Techniques and basic sorting algorithms. This language of choice for this course is modern C++ or Java.
Year of study
1st Year Post-secondary
Course Learning Outcomes
Upon successful completion of this course, students will be able to:
- Explain the usage and applications of common data structures like vectors, lists, and trees
- Explain the concept of recursive algorithms and how it differs from iterative algorithms
- Apply proper algorithms and choose the right data structure to solve practical problems
- Identify algorithmic bottlenecks in an application code and suggest solutions
- Deduce time and space complexity of common algorithms
- Select proper sorting algorithms for sorting a data collection
- Implement generic data structures such as linked list and binary trees
- Implement common traversal algorithms for traversing a tree
Prior Learning Assessment & Recognition (PLAR)
None
Hours
Lecture, Online, Seminar, Tutorial: 30
Clinical, Lab, Rehearsal, Shop, Kitchen, Simulation, Studio: 30
Total Hours: 60
Instructional Strategies
Instructional strategies include classroom lectures, demonstrations, group discussions, computer lab and hands-on practical work.
Grading System
Letter Grade (A-F)
Evaluation Plan
Type
|
Percentage
|
Assessment activity
|
Assignments
|
60
|
|
Midterm Exam
|
20
|
|
Final Exam
|
20
|
|
Course topics
- The fundamentals of algorithm analysis
- Vectors and Arrays
- Iteration vs Recursion
- Common Sorting algorithms
- Time and space lower bound complexity
- Divide and Conquer vs greedy algorithms
- Binary Trees, Balanced Trees
- Tree traversal algorithms
Notes:
- Course contents and descriptions, offerings and schedules are subject to change without notice.
- Students are required to follow all College policies including ones that govern their educational experience at VCC. Policies are available on the VCC website at:
https://www.vcc.ca/about/governance--policies/policies/.
- To find out if there are existing transfer agreements for this course, visit the BC Transfer Guide at https://www.bctransferguide.ca.