Home Syllabus Lecture lesson Assignment Lab Example Reference MyLS

WLU logo

Course Syllabus
CP264 Data Structures II 2026 Winter (Session B) 12-week course
Department of Physics and Computer Science, Faculty of Science, Waterloo Campus

I acknowledge that in Kitchener, Waterloo, Cambridge and Brantford we are on the traditional territory of the Neutral, Anishnawbe, and Haudenosaunee peoples.

Instructor Information

Instructor: Dr. Hongbing Fan (HBF)
Office: Science Building N2081
Email: hfan@wlu.ca
Weekly Office Hours: Friday 2:30 pm -3:30 pm or by appointment

Course Information

Calendar Description: A continuation of the study of data structures and their applications using C. Linked lists, binary search trees, balanced search trees. Hashing, collision-avoidance strategies. A continuation of basic algorithm analysis.

Credit: 0.50

Pre-requisite: CP164, exclusion CP114

Mode of Delivery: In person

Lecture Time: MWF 09:30 am - 10:20 am

Class Room: Bricker Academic Building BA201

Course Overview and Approach

Overview: Data structures are essential to algorithms and play a crucial role in determining their efficiency and resource usage. In this course, you will learn how to design, analyze, and implement data structures at a low memory level using the C programming language. The curriculum covers arrays, linked lists, queues, stacks, trees, heaps, hash tables, and graphs, with a focus on their practical applications in solving computational problems.

The following topics will be covered:

  1. Fundamentals of C programming language
  2. Primary data types, variables, and memory allocation
  3. Secondary data types: pointers, arrays, structures, unions, enumerations
  4. Linear data structures: linked lists, queues, stacks
  5. Trees: binary search tree, AVL tree, red black tree
  6. Heaps: binary heap, binomial heap, Fibonacci heap
  7. Hash tables: hash functions, collisions, chained hash tables
  8. Graph data structures: adjacency matrix, edge list, adjacency lists
  9. Time and space complexity analysis of algorithms and data structures

Approach: This course will be taught through Class lectures, reading lessons, program examples, assignments, labs, midterm, and final exam. All lessons, lecture notes, assignments are posted on MyLearningSpace (MyLS). All assignment and lab submissions are made through MyLS.

Class email will be used for important and urgent matters. The discussion board will be used for general public questions. If your questions are personal, you may email the instructor. Due to time constraints, the instructor may not always respond immediately.

Goals and Learning Outcomes

The primary goal of this course is to teach students the concepts, principles, and skills needed to design, analyze, and implement data structures for algorithmic programming. By the end of this course students should be able to

  • Design and write C programs to solve general computing problems.
  • Understand and apply the principles of data structures in data representation, organization, storage, and operations, as well as in algorithm design and implementation.
  • Implement and use fundamental data structures including arrays, linked lists, trees, hash tables, heaps, and graphs.
  • Design, analyze, and implement application-specific data structures for algorithms.

Course Textbooks and Learning Materials

There is no required textbook for this course. Weekly lessons are provided by the instructor and serve as textbook.

Learning materials include weekly lessons, lecture notes, examples, and references.

Software tools include GNU C compilers and programming IDEs. For Windows OS, mingw64 compiler and the make build tool will be used and supported for assignments. VS Code is used as default IDE for programming tasks of this course.

Course Strategies and Supports

Success in this course requires consistent effort, curiosity, and willingness to learn by doing. The strategies include: a. actively attending classes, asking and discussing questions with instructors and classmates, b. reading lessons and lecture notes before and after classes, c. doing and submitting assignment and lab tasks earlier before deadline.

When encountering difficulties, you can get in-person helps or supports from the instructor. You can directly talk to the instructor after class, during office hours, or by appointment. You can also get hand-on supports from lab instructors and IAs during lab sessions.

Student Evaluation

The learning outcomes will be assessed by the graded tasks with weights given in the following table.

Assessment category Weight
10 labs 5%
10 assignments 30%
midterm 15%
final exam 50%
Total 100%

You must achieve a minimum grade of 50% on the final exam and an overall grade of at least 50% to pass the course.

Final letter grades are obtained by converting the numerical percentage grades by the following table. The instructor reserves a right to adjust the cut-off for final letter grade up or down by 2.0%.

A+ A A- B+ B B- C+ C C- D+ D D- F
90-10085-8980-8477-7973-7770-7267-6963-6760-6257-5953-5750-520-49

Learning Activities, Assignments, and Examinations

Every grade item counts, no drops, no weight transfers.

Class participation is mandatory. Reading the weekly lessons is required. All contents covered in lectures and lessons are tested in midterm and final exam.

Assignment and lab tasks will be posted one week before their due date. All tasks are programming questions and must be completed individually. You must not view or share assignment solutions with others. Using AI-generated solutions is not permitted. You are responsible for and must be able to rewrite any assignment work you submit.

Assignments and labs must be submitted to the MyLS dropbox before the due date at 11:59 pm. Late or missed submissions will not be accepted. Every submission will be tested, marked, and graded. Programs that fail marking test compiling will receive a mark of zero.

The midterm exam will be held in person, is paper-based, is closed book. It will be conducted in class at the scheduled time as shown in the Lecture Schedule table.

The final exam will be held in person, is paper-based, and is closed book. The final exam will be scheduled by the Examinations Office of the University. I will provide you with the date, time, and location as soon as they become available.

Addenting lab sessions are optional. Lab task submissions are required and graded as part of the overall evaluation.

Lecture Schedule

Week Day Date Class Topic Reading
1 Mon Jan.05 1 Course introduction, C concepts, compiling, execution Lesson 1
Wed Jan.07 2 C program structure, syntax, data types, variables
Fri Jan.09 3 Operator, expressions, flow controls
2 Mon Jan.12 4 Functions Lesson 2
Wed Jan.14 5 Pointers
Fri Jan.16 6 Array
3 Mon Jan.19 7 Multi-dimensional arrays Lesson 3
Wed Jan.21 8 String
Fri Jan.23 9 User defined types: structure
4 Mon Jan.26 10 User defined types: unions, enumerations Lesson 4
Wed Jan.28 11 File I/O
Fri Jan.30 12 C summary, principles of data structures
5 Mon Feb.02 13 Linked lists - I Lesson 5
Wed Feb.04 14 Linked lists - II
Fri Feb.06 15 Queues
6 Mon Feb.09 16 midterm, covering contents from week 1 to week 4 and A1-A4 Lesson 6
Wed Feb.11 17 Stacks
Fri Feb.13 18 Stack applications
Next general calendar week is reading break, no classes
7 Mon Feb.23 19 Concepts of trees, binary trees Lesson 7
Wed Feb.25 20 Tree operations and applications
Fri Feb.27 21 Binary search trees
8 Mon Mar.02 22 AVL trees Lesson 8
Wed Mar.04 23 Red black trees
Fri Mar.06 24 Splay trees, m-way search trees, B-trees
9 Mon Mar.09 25 Hash tables, hash functions, collisions Lesson 9
Wed Mar.11 26 Advanced hash functions, problings
Fri Mar.13 27 Heaps, binary heaps
10 Mon Mar.16 28 Binomial heaps Lesson 10
Wed Mar.18 29 Fibonacci heaps
Fri Mar.20 30 Concepts of graphs, graph data structures
11 Mon Mar.23 31 Graph operations Lesson 11
Wed Mar.25 32 Minimum spanning tree problem and algorithms
Fri Mar.27 33 Shortest path problems and Dijkstra algorithm
12 Mon Mar.30 34 Case study on graph data structures Lesson 12
Wed Apr.01 35 Advanced application of graphs
Fri Apr.03 36 Final exam review
Coverage: contents from weeks 4-12 and A4-A10, time is to be scheduled.

Lecture schedule is subject to change according to the progress of class.

Course Work Schedule

Job Topic Work Type Weight Due week Due date
a1 C basics individual 3 2 Friday, January 16
a2 Pointers, arrays individual 3 3 Friday, January 23
a3 Strings, word processing, structures, file I/O individual 3 4 Friday, January 30
a4 Sorting algorithms, record data processing individual 3 5 Friday, February 06
a5 Linked lists individual 3 6 Friday, February 13
a6 Queues, stacks individual 3 7 Friday, February 27
a7 Tree, BST individual 3 8 Friday, March 06
a8 AVL, sets individual 3 9 Friday, March 13
a9 Hash tables, heaps individual 3 10 Friday, March 20
a10 Graphs and algorithms individual 3 12 Monday, March 30

University Course Policies

Laurier has several senate approved policy statements it requires instructors to include in their syllabus. Those with specific wording approved by senate are indicated specifically below.

  1. Academic Calendars: Students are encouraged to review the Academic Calendar for information regarding all services available on campus.
  2. Accessibility: Students with disabilities or special needs are advised to contact Laurier's Accessible Learning Centre for information regarding its services and resources. Review the Registration page for information about intake and documentation requirements. Deadlines: Students are responsible for meeting posted deadlines for registering with Accessible Learning and booking accommodated exams. Accessible Learning cannot guarantee accommodations for requests received after posted deadlines
  3. Plagiarism: the University has approved the following wording for inclusion on all course syllabi about the use of the institutionally supported plagiarism software tool. “Wilfrid Laurier University uses software that can check for plagiarism. If requested to do so by the instructor, students are required to submit their written work in electronic form and have it checked for plagiarism.” (Approved by Senate May 14, 2002)
  4. Academic Integrity: Laurier is committed to a culture of integrity within and beyond the classroom. This culture values trustworthiness (i.e., honesty, integrity, reliability), fairness, caring, respect, responsibility and citizenship. Together, we have a shared responsibility to uphold this culture in our academic and nonacademic behaviour. The University has a defined policy with respect to academic misconduct. As a Laurier student you are responsible for familiarizing yourself with this policy and the accompanying penalty guidelines, some of which may appear on your transcript if there is a finding of misconduct. The relevant policy can be found at Laurier's academic integrity website along with resources to educate and support you in upholding a culture of integrity. Ignorance is not a defense.
  5. Late Assignment Policy: Late submissions won't be accepted and marked except under extreme situations. Refer to the Handbook on Undergraduate Course Management.
  6. Final Examinations: Students are strongly urged not to make any commitments (e.g., vacation) during the examination period. Students are required to be available for examinations during the examination periods of all terms in which they register. Refer to the Handbook on Undergraduate Course Management for more information. Refer to the Handbook on Undergraduate Course Management.

Intellectual Property

The educational materials developed for this course, including, but not limited to, lecture notes and slides, assignments and helps, examinations, and any materials posted to MyLearningSpace (exclude reference materials), are the intellectual property of the course instructor. These materials have been developed for student use only and they are not intended for wider dissemination and/or communication outside of a given course.

Posting or providing unauthorized audio, video, or textual material of lecture content to third-party websites violates an instructor’s intellectual property rights, and the Canadian Copyright Act.

Recording lectures in any way is prohibited in this course unless specific permission has been granted by the instructor. Failure to follow these instructions may be in contravention of the university’s Student Non-Academic Code of Conduct and/or Code of Academic Conduct, and will result in appropriate penalties. Participation in this course constitutes an agreement by all parties to abide by the relevant University Policies, and to respect the intellectual property of others during and after their association with Wilfrid Laurier University.

As a registered student of this course, you are allowed to download and hold all posted teaching materials of this course for your own reference. You are not allowed to disclose the course materials and information (including your solutions) of assignments, labs, examinations to others.

Kitchener/Waterloo campus resources

The University approved the inclusion of information about select wellness and safety services and supports on campus in the course information provided to students. (Approved by Senate November 28, 2011). Specific language (by campus) is provided below.

  1. Waterloo Student Food Bank-All students are eligible to use this service to ensure they’re eating healthy when overwhelmed, stressed or financially strained. Anonymously request a package online 24-7. All dietary restrictions accommodated.
  2. Waterloo Foot Patrol-519.886.FOOT (3668)- A volunteer operated safe-walk program, available Fall and Winter daily from 6:30 pm to 3 am. Teams of two are assigned to escort students to and from campus by foot or by van.
  3. Waterloo Student Wellness Centre519-884-0710, x3146 - The Centre supports the physical, emotional, and mental health needs of students. Located on the 2nd floor of the Student Services Building, booked and same-day appointments are available Mondays and Wednesdays from 8:30am to 7:30 pm, and Tuesdays, Thursdays and Fridays from 8:30 am to 4:15 pm. Contact the Centre at x3146, wellness@wlu.ca or @LaurierWellness. After hours crisis support available 24/7. Call 1-844-437-3247 (HERE247).