Data Structures (SBE201) - Spring 2020
Teaching Staff
Instructor: Prof. Ahmed H. Kandil
Demonstrator:  Eng. Asem Alaa
Lecture Hours
Tuesday, 2nd slot (+1st slot each two weeks).
Section Hours
| Section | Day | Time Slot | Place | 
|---|---|---|---|
| 1 | Wednesday | 1st | Computer Lab 1 | 
| 2 | Wednesday | 3rd | Computer Lab 1 | 
| 3 | Wednesday | 4th | Computer Lab 1 | 
| All | Monday | 1st | Hall 3102 | 
Office Hours
| Day | Time | 
|---|---|
| Tuesday | from 12pm to 4pm | 
| Wednesday | from 2pm to 6pm | 
Feel free to request for additional office hours by sending me an email (asem.a.abdelaziz@eng1.cu.edu.eg)
Communication
- Important announcements will be sent to sbme2022@googlegroups.com.
- We will also use Campuswire to try something new and different to facilitate announcements and technical discussions.
Course Outline
| Week | Data Structures & C++ | Tooling | 
|---|---|---|
| 1 | Brief intro to the course; C++ Basics; Categorize your logic with C++ namespace | QtCreator, Linux, compilation, git, GitHub; Basic Unix commands; Markdown | 
| 2 | C++ Memory Model, C++ Pointers and References | Processing command line arguments ( argc&argv); Compilation of multiple files | 
| 3 | Static and Dynamic Arrays; Recursion; C++ Functions Overloading; | |
| 4 | Complexity analysis (big O notation); Bubble sort; Selection sort; Naming conventions; Const correctness | |
| 5 | Linked Lists | 
Sections
- Section 1:
    - Section slides
- Section handouts: [Part A: C++ Basics][Part B: Basics of Git and GitHub]
- Assignments: [Part A: C++ Revision] [Part B: Markdown Resume]
- Lab: [Slides ] [Exercises]
 
- Section 2:
    - Section slides
- Section handouts: [Memory, pointers, and references]
- Assignment
- Lab: [Slides ] [Exercises]
 
- Section 3:
    - Section slides
- Section handouts: [Static Arrays and Dynamic Arrays]
- Assignment
- Lab: [Slides ] [Exercises]
 
- Section 4:
    - Section slides
- Section handouts: [Time Complexity (Big O notation) & Sorting Algorithms (1)]
 
- Section 5:
- Section 6:
    - Section slides: [Part 2: Abstract Data Types (Stack & Queue) ]
- Section handouts: [Part 1: C++ Classes and Templates] [Part 2: Abstract Data Types (Stack & Queue)]
 
- Section 7:
    - Section slides
- Section handouts: [Heap & Priority Queue (ADT)]
 
- Section 8:
Resources & Useful Links
A) Data Structures and Algorithms
B) C++ Programming
C) Tooling
- 
    Qt Creator for SBE201- Tutorial: Installing and running Qt Creator IDE
 
- 
      
Report Errata
Help improving the content by reporting and fixing the typos and syntax errors.
Acknowledgements
We are happy to receive a generous gift from GitHub to the class of SBME 2022!
@GitHubEducation gives us the opportunity to have access to a lot of useful materials which is helping greatly with our courses #ThanksGitHub for sending us the swag package ♥️
— Amira Omar (@Its_Amira_Omar) February 18, 2020
-From all systems and biomedical engineering students class 2022 at cairo university. pic.twitter.com/WSG1DK9Qng





