| Course Information | Syllabus | Lectures | Assignments | Exams | 
| Lecture 23 - Decemeber 6 |  Review before final   Slides: [Lecture23.zip]  | 
| Lecture 22 - Decemeber 1 |  More on inheritance in C++   Slides: [Lecture22.zip]  | 
| Lecture 21 - November 29 |  Introduction to C++   - Passing arguments by reference   - Copy constructors   - Operators in C++   - Generic types   - C++ Standard Template Library (STL)   Singleton   Slides: [Lecture21.zip]  | 
| Tutorial 10 - November 24 |  C++   - Clases   - constructors/destructors   - new/delete   Notes: [lab10.zip]   Solution: [lab10-sol.zip]  | 
| Lecture 20 - November 24 |  Introduction to C++   - Object Oriented Programming   - Inheritance, virtual methods   - Passing arguments by reference   - Copy constructors   - Operators in C++   Singleton   Slides: [Lecture20.zip]  | 
| Lecture 19 - November 22 |  void*   Introduction to C++   - Clases   - constructors/destructors   - new/delete   Slides: [Lecture19.zip]  | 
| Lab Exam - November 17 |  Lab exam for 09:30-10:20 [lab-exam-0930.zip]   Lab exam for 10:30-11:20 [lab-exam-1030.zip]   Lab exam for 15:30-16:20 [lab-exam-1530.zip]   Lab exam for 16:30-17:20 [lab-exam-1630.zip]  | 
| No Lecture - November 17 | |
| Lecture 18 - November 15 |  Binary Search Trees   Slides: [Lecture18.zip]  | 
| Tutorial 9 - November 10 |  Binary Trees   Notes: [lab09.zip]   Solution: [lab09-sol.zip]  | 
| Lecture 17 - November 10 |  Breadth First Search   Binary Search Trees   Slides: [Lecture17.zip]  | 
| Lecture 16 - November 8 |  Introduction to Graphs   Introduction to Trees   Binary Trees   Tree Traversals   Slides: [Lecture16.zip]  | 
| Tutorial 8 - November 3 |  Linked Lists   Notes: [lab08.zip]   Solution: [lab08-sol.zip]  | 
| Lecture 15 - November 3 |  Comments on recursion   Slides: [Lecture15.zip]  | 
| Lecture 14 - November 1 |  Stack   Queue   Linked List   - Implementing a stack using linked list   - Implementing a queue using linked list   - Variants: Doubly Linked List   Remarks on recursion   Slides: [Lecture14.zip]  | 
| Tutorial 7 - October 27 |  A data structure of a python style list    Notes: [lab07.zip]  | 
| Lecture 13 - October 27 |  Introduction to data structures   - Stacks   Slides: [Lecture13.zip]  | 
| Midterm - October 25 | |
| Tutorial 6 - October 20 |  Sorting algorithms   Measuring performance of a sorting algorithms   Notes: [lab06.zip]  | 
| Lecture 12 - October 20 |  Sorting algorithms   Quick sort   qsort()   Slides: [Lecture12.zip]  | 
| Lecture 11 - October 18 |  More on Big-O notation   Search algorithms   Sorting algorithms   Slides: [Lecture11.zip]  | 
| Tutorial 5 - October 13 |  Dynamic memory allocation   Measuring performance of a program   Notes: [lab05.zip]  | 
| Lecture 10 - October 13 |  Big-O notation   Search algorithms   Slides: [Lecture10.zip]  | 
| Tutorial 4 - October 6 |  Binary representation of integers and floats   Bitwise operations on numbers   Notes: [lab04.zip]  | 
| Lecture 9 - October 6 |  Measuring performance of algorithms   Big-O notation   Some simple examples   Slides: [Lecture09.zip]  | 
| Lecture 8 - October 4 |  Quine program   Pseudo-code   Recursion   - Fibonacci sequence   - Merge sort   - Flood fill algorithm   Measuring performance of algorithms   Big-O notation   Slides: [Lecture08.zip]  | 
| Tutorial 3 - September 29 |  Passing arguments to main()   Redirecting stdin and stdout   reading from file   Notes: [lab03.pdf]  | 
| Lecture 7 - September 29 |  Execution stack   Returning structs   Pointers to functions   Slides: [Lecture07.zip]  | 
| Lecture 6 - September 27 |  Return values and conditions   Global variables   Static variables   Macros   Type casting   Memory allocation   Execution stack   Slides: [Lecture06.zip]  | 
| Tutorial 2 - September 22 |  Compiling and homework assignment   Makefile   using .h files   Some practice problems    Notes: [lab02.pdf]   Ex5: [ex5.zip]   Ex5 solution: [ex5_answer.zip]  | 
| Lecture 5 - September 22 |  enum/typedef/struct   Slides: [Lecture05.zip]  | 
| Lecture 4 - September 20 |  Strings   scanf()   2-d arrays   Slides: [Lecture04.zip]  | 
| Tutorial 1 - September 15 |  Basic commands in Linux   Configuring Visual Studio Code   Writing hello_world.c   Running/Debugging using Visual Studio Code   Compile in terminal using gcc   Notes: [lab01.pdf]  | 
| Lecture 3 - September 15 |  Arrays   Constant variables   Strings   Slides: [Lecture03.zip]  | 
| Lecture 2 - September 13 |  Data vs address   Pointers and references   Arrays   Slides: [Lecture02.zip]  | 
| Lecture 1 - September 8 |  Introduction to C   Variables and strong typing   Slides: [Lecture01.zip]  |