Course Information | Syllabus | Lectures | Assignments | Exams |
Lecture 24 - Aptil 11 |
Review before final
Slides: [Lecture24.zip]
|
Lecture 23 - April 6 |
More on C++
unique_ptr
Slides: [Lecture23.zip]
|
Lecture 22 - April 4 |
Singleton
More on inheritance in C++
Slides: [Lecture22.zip]
|
Lecture 21 - March 30 |
Introduction to C++
- Operators in C++
- Generic types
- STL
Singleton
Slides: [Lecture21.zip]
|
Tutorial 9 - March 29 |
C++
- Clases
- constructors/destructors
- new/delete
Notes: [lab09.zip]
Solution: [lab09-sol.zip]
|
Lecture 20 - March 28 |
Introduction to C++
- constructors/destructors
- new/delete
- Object Oriented Programming
- Inheritance, virtual methods
- Passing arguments by reference
- Copy constructors
- Operators in C++
Slides: [Lecture20.zip]
|
Lecture 19 - March 23 |
Introduction to C++
- Clases
- constructors/destructors
Slides: [Lecture19.zip]
|
Tutorial 8 - March 22 |
Binary Trees
Notes: [lab08.zip]
Solution: [lab08-sol.zip]
|
Lecture 18 - March 21 |
Binary Search Trees
Slides: [Lecture18.zip]
|
Lecture 17 - March 16 |
Practice problems on Binary Trees
Binary Search Trees
Slides: [Lecture17.zip]
|
Lab Exam - March 15 | |
Lecture 16 - March 14 |
Introduction to Graphs
Introduction to Trees
Binary Trees
Tree Traversals
Slides: [Lecture16.zip]
|
Lecture 15 - March 9 |
Comments on recursion
Slides: [Lecture15.zip]
|
Tutorial 7 - March 8 |
A data structure of a python style list
Linked Lists
Notes: [lab07.zip]
Solution: [lab07-sol.zip]
|
Lecture 14 - March 7 |
Stack
Queue
- Implementation stack/queue using an array
Linked List
- Implementing stack/queue using a linked list
- Variants: Doubly Linked List
Remarks on recursion
Slides: [Lecture14.zip]
|
Lecture 13 - March 2 |
Introduction to data structures
- Stacks
Slides: [Lecture13.zip]
|
Tutorial 6 - March 1 |
Sorting algorithms
Measuring performance of a sorting algorithms
Notes: [lab06.zip]
|
Midterm - February 28 | |
Lecture 12 - February 16 |
Quick sort
qsort()
void*
Slides: [Lecture12.zip]
|
Tutorial 5 - February 15 |
Dynamic memory allocation
Measuring performance of a program
Notes: [lab05.zip]
|
Lecture 11 - February 14 |
More on Big-O notation
Sorting algorithms
Slides: [Lecture11.zip]
|
Lecture 10 - February 9 |
Search algorithms - writing code
Big-O notation
More examples
Slides: [Lecture10.zip]
|
Tutorial 4 - February 8 |
Binary representation on integers and floats
Notes: [lab04.zip]
|
Lecture 9 - February 7 |
Measuring performance of algorithms
Big-O notation
Some examples
Search algorithms
Slides: [Lecture09.zip]
|
Lecture 8 - February 2 |
Pseudo-code
Recursion
- Merge sort
- Flood fill algorithm
Measuring performance of algorithms
Slides: [Lecture08.zip]
|
Tutorial 3 - February 1 |
file I/O
Notes: [lab03.zip]
|
Lecture 7 - January 31 |
2-d arrays
Returning structs Pointers to functions |
Lecture 6 - January 26 |
enum/typedef/struct
Slides: [Lecture06.zip]
|
Tutorial 2 - January 25 |
Passing arguments to main()
Redirecting stdin and stdout
Reading letters from input and calculating the frequencies
Notes: [lab02.zip]
|
Lecture 5 - January 24 |
Return values and conditions
Global variables
Static variables Macros Type casting Memory allocation Execution stack Slides: [Lecture05.zip]
|
Lecture 4 - January 19 |
Strings
Initializing arrays and strings
scanf()
Slides: [Lecture04.zip]
|
Tutorial 1 - January 18 |
Accessing CSIL
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.zip]
|
Lecture 3 - January 17 |
Arrays
Constant variables
Strings
Slides: [Lecture03.zip]
|
Lecture 2 - January 12 |
Arrays
More on pointers
Slides: [Lecture02.zip]
|
Lecture 1 - January 10 |
Introduction to C
Variables and strong typing
Data vs address
Pointers and references
Slides: [Lecture01.zip]
|