Data Structures & Algorithm Development - C
Sheridan College Logo
  I: Administrative Information   II: Course Details   III: Topical Outline(s)  Printable Version
Section I: Administrative Information
  Total hours: 84.0
Credit Value: 6.0
Credit Value Notes: N/A
Effective: Spring/Summer 2016
Prerequisites: PROG32758
Corequisites: N/A
Equivalents: N/A

Pre/Co/Equiv Notes: N/A

Program(s): Computer Systems Technician, Computer Systems Technology Ne
Program Coordinator(s): Simon Hood, Satyendra Narayan
Course Leader or Contact: Denis Nikitenko
Status: Approved (APPR)

Section I Notes: N/A

Section II: Course Details

Detailed Description
Students develop skills and knowledge of classic computer science data structures and algorithms. They are introduced to various data structures: stacks, queues, linked lists, recursion, trees, hashing, and graphs. In addition, they explore topics such as sorting and searching algorithms, algorithm complexity analysis, and the Big O notation. Students also learn the fundamentals of the C programming language. They gain hands-on experience with these concepts through a series of programming assignments and examples.

Program Context

Computer Systems Technician Program Coordinator(s): Satyendra Narayan
This course is meant to introduce students to working with data structures and manually managing memory in their programs using the C programming language.

Computer Systems Technology Ne Program Coordinator(s): Simon Hood
This course is meant to introduce students to working with data structures and manually managing memory in their programs using the C programming language.

Course Critical Performance and Learning Outcomes

  Critical Performance:
By the end of this course, students will have demonstrated the ability to develop efficient algorithms utilizing a variety of data structures using the C programming language.
Learning Outcomes:

To achieve the critical performance, students will have demonstrated the ability to:

  1. Apply C dynamic memory management techniques to create and destroy data structures.
  2. Describe the Big O notation for the analysis of algorithms.
  3. Determine the efficiency of algorithms based on code presentation.
  4. Use C to implement data structures and abstract data types.
  5. Identify data structures for solving specific problems based on problem requirements.
  6. Analyze complexity of sorting and searching algorithms.
  7. Implement sorting and searching algorithms in C.

Evaluation Plan
Students demonstrate their learning in the following ways:

 Evaluation Plan: IN-CLASS
 Assignments - 4 @ 5%20.0%
 Quizzes - 5 @ 1%5.0%
 Project - 115.0%
 Final Exam30.0%

Evaluation Notes and Academic Missed Work Procedure:
To pass the course, students must achieve a 50% weighted average across the tests and the exams and at least 50% overall in the course.

Provincial Context
The course meets the following Ministry of Training, Colleges and Universities requirements:


Essential Employability Skills
Essential Employability Skills emphasized in the course:

  • Communication Skills - Communicate clearly, concisely and correctly in the written, spoken, visual form that fulfills the purpose and meets the needs of the audience.
  • Communication Skills - Respond to written, spoken, or visual messages in a manner that ensures effective communication.
  • Critical Thinking & Problem Solving Skills - Use a variety of thinking skills to anticipate and solve problems.
  • Critical Thinking & Problem Solving - Apply a systematic approach to solve problems.
  • Information Management Skills - Analyze, evaluate, and apply relevant information from a variety of sources.
  • Interpersonal Skills - Show respect for the diverse opinions, values, belief systems, and contributions of others.
  • Information Management - Locate, select, organize and document information using appropriate technology and information systems.
  • Interpersonal Skills - Interact with others in groups or teams in ways that contribute to effective working relationships and the achievement of goals.
  • Numeracy - Execute mathematical operations accurately.
  • Personal Skills - Take responsibility for one's own actions, decisions, and consequences.
  • Personal Skills - Manage the use of time and other resources to complete projects.

Prior Learning Assessment and Recognition
PLAR Contact (if course is PLAR-eligible) - Office of the Registrar

Students may apply to receive credit by demonstrating achievement of the course learning outcomes through previous relevant work/life experience, service, self-study and training on the job. This course is eligible for challenge through the following method(s):

  • Challenge Exam

Section III: Topical Outline
Some details of this outline may change as a result of circumstances such as weather cancellations, College and student activities, and class timetabling.
Instruction Mode: In-Class
Professor: Multiple Professors
OptionalTextbookData Structures in C, Kalicharan, N., CreateSpace, ISBN 1438253273, 2015, Available in the library. To purchase, create an account on to order.

Applicable student group(s): Computer Systems Technician - Software Engineering, Computer Systems Technology - Software Development and Network Engineering
Course Details:

Module 1. Introduction to C, data structures, and the course
     - Fundamentals of data structures
     - C fundamentals and compiler setup
     - Arrays and strings
     - User-defined types
     Learning outcomes: 1
     Evaluation: Assignment 1, Quiz 1

Module 2.  Pointers and dynamic memory management
     - Introduction to pointers
     - More pointers
     - Pointers and dynamic memory management
     - Dynamic arrays
     Learning outcomes: 1
     Evaluation: Quiz 2

Module 3.  Linked lists
     - Operations
     - Implementations
     - Applications
     Learning outcomes: 1, 4, 5
     Evaluation: Assignment 2

Midterm (Modules 1 - 3)

Module 4.  Stacks and queues
     - Array-based implementations
     - List-based implementations
     Learning outcomes: 1, 4, 5
     Evaluation: Quiz 3

Module 5.  Searching and sorting
    - Complexity analysis
    - The Big O notation
    - Searching and data structures
    - Sorting algorithms
    Learning outcomes: 2, 3, 6, 7
    Evaluation: Assignment 3

Module 6.  Trees
     - Binary trees
     - Searching and sorting
     - Balancing
     Learning outcomes: 1, 2, 4, 5, 7
     Evaluation: Assignment 4, Quiz 4

Module 7.  Hashtables
     - Implementation
     - Complexity analysis
     Learning outcomes: 1, 2, 4, 5, 7
     Evaluation: project

Module 8.  Graphs
     - Implementation
     - Searching algorithms
     Learning outcomes: 1, 2, 4, 5, 7
     Evaluation: Quiz 5

Final exam (Modules 4 - 8)

Sheridan Policies

All Sheridan policies can be viewed on the Sheridan policy website.

Academic Integrity: The principle of academic integrity requires that all work submitted for evaluation and course credit be the original, unassisted work of the student. Cheating or plagiarism including borrowing, copying, purchasing or collaborating on work, except for group projects arranged and approved by the professor, or otherwise submitting work that is not the student's own, violates this principle and will not be tolerated. Students who have any questions regarding whether or not specific circumstances involve a breach of academic integrity are advised to review the Academic Integrity Policy and procedure and/or discuss them with the professor.

Copyright: A majority of the course lectures and materials provided in class and posted in SLATE are protected by copyright. Use of these materials must comply with the Acceptable Use Policy, Use of Copyright Protected Work Policy and Student Code of Conduct. Students may use, copy and share these materials for learning and/or research purposes provided that the use complies with fair dealing or an exception in the Copyright Act. Permission from the rights holder would be necessary otherwise. Please note that it is prohibited to reproduce and/or post a work that is not your own on third-party commercial websites including but not limited to Course Hero or OneNote. It is also prohibited to reproduce and/or post a work that is not your own or your own work with the intent to assist others in cheating on third-party commercial websites including but not limited to Course Hero or OneNote.

Intellectual Property: Sheridan's Intellectual Property Policy generally applies such that students own their own work. Please be advised that students working with external research and/or industry collaborators may be asked to sign agreements that waive or modify their IP rights. Please refer to Sheridan's IP Policy and Procedure.

Respectful Behaviour: Sheridan is committed to provide a learning environment that supports academic achievement by respecting the dignity, self-esteem and fair treatment of every person engaged in the learning process. Behaviour which is inconsistent with this principle will not be tolerated. Details of Sheridan's policy on Harassment and Discrimination, Academic Integrity and other academic policies are available on the Sheridan policy website.

Accessible Learning: Accessible Learning coordinates academic accommodations for students with disabilities. For more information or to register, please see the Accessible Learning website (Statement added September 2016)

Course Outline Changes: The information contained in this Course Outline including but not limited to faculty and program information and course description is subject to change without notice. Any changes to course curriculum and/or assessment shall adhere to approved Sheridan protocol. Nothing in this Course Outline should be viewed as a representation, offer and/or warranty. Students are responsible for reading the Important Notice and Disclaimer which applies to Programs and Courses.

[ Printable Version ]

Copyright © Sheridan College. All rights reserved.