Eman Samy Diyab

Lecturer
CS Department, Purdue University

MSc, Purdue University, Computer Science (2021)
BS, Ain Shams University, Computer Science

Previous Semesters

Fall 2025 - CS15900

Lecture # Date Lecture Quiz Notes Recording Pages Lab HW Keywords
WEEK 1
1
Aug 26
---
Pdf
Video
Lab #0
---
Introduction, course policies and motivations
Watch Chapter #1 Recordings
  • Chapter #1 - Part 1
  • Chapter #1 - Part 2
  • Chapter #1 - Part 3
  • 2
    Aug 28
    Demo
    Pdf
    Video
    31 - 36
    Chapter #2: Structure of a C program, Commenting, Identifiers, Data types.
    WEEK 2
    3
    Sept 2
    1
    Pdf
    Video
    36 - 39
    Lab #1
    HW #1
    Chapter #2 cont.: Data types, Variables, Literal Constants, Symbolic/Defined Constants, Formatted I/O
    4
    Sept 4
    2
    Pdf
    Video
    39 - 43
    Chapter #2 cont.: Formatted I/O, Width and precision modifiers, Errors and debugging with examples
    WEEK 3
    5
    Sept 9
    3
    Pdf
    Video
    43 - 49
    Lab #2
    HW #2
    Chapter #3: Expressions(Operators and operands). Operator precedence. Assignment expressions. Simple & Compound assignments. Prefix and postfix (Undefined vs. Well-defined behavior example).
    Single and mixed data type expressions. implicit, explicit (type casting)
    6
    Sept 11
    4
    Pdf
    Video
    48 - 51
    Chapter #3 cont.: Single and mixed data type expressions. implicit, explicit (type casting), and assignment data type conversions. Rounding, truncation using floor(), type casting to int, truncation in printing using precision modifiers. A brief overview of Selection via calculation.
    WEEK 4
    7
    Sept 16
    5
    Pdf
    Video
    51 - 55
    Lab #3
    Chapter #3 cont.: Selection via calculation explained with 2 examples.
    Chapter#4: Purpose of functions. Motivation - why? Factor – smaller is easier. Reuse - by you or others. Remove redundancy. Protect data – using the variable doesn't change its value.
    8
    Sept 18
    6
    Pdf
    Video
    55 - 58
    Chapter #4: cont.
    Types of functions:
    1- No parameters - no return value: ex. welcome() , menu_options().
    2- No parameters - with return value: ex. get_input().
    WEEK 5
    9
    Sept 23
    7
    Pdf
    Video
    59 - 65
    Lab #4
    HW #3
    Chapter#4 cont. Types of functions.
    3- With parameters - with return value - Many math.h fx, sin().
    4- With parameters - no return value - printf(), display_results().
    What is permitted in main() Function - only local variable definitions, function calls and limited selection or repetition (to call functions).
    Parameter passing: 1- Pass by value.
    10
    Sept 25
    8
    Pdf
    Video
    65 - 68
    Chapter #4 cont. Parameter passing:
    1- Pass by value.
    2- Pass by address. Pointer operations.
    WEEK 6
    11
    Sept 30
    9
    Pdf
    Video
    68 - 74
    Lab #5
    Chapter #4 cont. Scope. Structure Charts. How to read a structure chart.
    Problem-solving method (specify, analyze, design, code, test and debug, refine).
    Chapter #5: Selection. Logical data. logical operators (NOT, AND, OR). Logical operators truth table.
    Logical expressions evaluation. Short circuit method with example.
    12
    Oct 2
    10
    Pdf
    Video
    75 - 78
    Chapter#5 cont. : Relational operators (<, <=, >, >=). equality operators (==, !=). Compound statements.
    Examples illustrating compound statements with short circuit method.
    Complements:
    (1) Relational and equality operators.
    (2) Logical operators. examples on Complements.
    WEEK 7
    13
    Oct 7
    11
    Pdf
    Video
    78 - 84
    Lab #6
    HW #4
    Chapter #5 cont.: Two way selection:
    (1) if-else with examples. Nested selection (if/if else). Dangling else.
    (2) Conditional expressions.
    Midterm Exam #1 - Date: Tuesday, October 7 *** Time: 8:00pm - 9:00pm *** Location: ELLT 116
    14
    Oct 9
    12
    Pdf
    Video
    84 - 91
    Chapter #5 cont.:
    Two way selection:
    (2) Conditional expressions.
    Multiway selection:
    (1) if / else if / else with examples compared to if if structure.
    (2) switch construct.
  • Fall through behavior.
  • testing floating points for equality challenges.
  • Switch construct rules.
  • When to use a switch and when not to use a switch.
  • if else vs. conditional expressions AND if else if vs. switch statements.
  • WEEK 8
    ---
    Oct 14
      🍁 FALL / OCTOBER BREAK 🍁
    15
    Oct 16
    13
    Pdf
    Video
    Chapter #6: Repetition using loops. looping basics and terminology.
    Repetition Flow chart example (calc avg, min and max of exam scores).
    Pretest and post-test loops. How to choose the right construct. Factorial example.
    WEEK 9
    16
    Oct 21
    14
    Pdf
    Video
    96 - 102
    Lab #7
    HW #5
    Chapter #6 cont.: Event-controlled vs. Counter-controlled processes. Input validation.
    Basic syntax of while and do while loops. Revisiting Factorial example to demonstrate another
    variation of the factorial example using while and do while loops.
    while vs do-while loops with example(factorial example).
    Nesting concept. Nested loops with example (range of factorials example).
    17
    Oct 23
    15
    Pdf
    Video
    102 - 107
    Chapter #6 cont.: The infinite loop. The for loop.
    Converting while loops to for loops examples.
    Rearranging digits in a number example.
  • Extract a specific digit from a number.
  • Determine the largest digit in the number( Maximum function).
  • Add the largest digit to correct location.
  • Keep finding the next numbers and when to stop.
  • Counting a certain digit value in a number.
  • WEEK 10
    18
    Oct 28
    16
    Pdf
    Video
    107 - 115
    Lab #8
    Chapter #6 cont.: Recursion: concepts with examples (Restaurant waiting line & factorial examples).
  • Recursive cases and Base case. Loops vs. Recursion.
  • Recursion example with tracing 4! in memory.
  • When to use Recursion. When to not use Recursion.
  • Review on repetition construct (while, do-while, for loops and recursion) and when to use each of them.
  • 19
    Oct 30
    17
    Pdf
    Video
    Chapter #6 cont.: Previous Exams Questions on Chapters 5 & 6
    WEEK 11
    20
    Nov 4
    18
    Pdf
    Video
    116 - 120
    Lab #9
    HW #6
    Chapter #8:
  • Arrays: Meaning, motivation and examples from reality.
  • Declaring and defining an array.
  • What is stored in a newly declared array and how to initialize it properly.
  • Accessing array elements. scanf() in an array element.
  • How to loop over all elements in the array.
  • 21
    Nov 6
    19
    Pdf
    Video
    Chapter #8
    WEEK 12
    Midterm Exam #2 - Date: Monday, November 10 *** Time: 8:00pm - 9:30pm *** Location: ELLT 116
    22
    Nov 11
    20
    Pdf
    Video
    Lab #10
    Chapter #8
    23
    Nov 13
    21
    Pdf
    Video
    Chapter #8
    WEEK 13
    24
    Nov 18
    22
    Pdf
    Video
    Lab #11
    HW #7
    Chapters #9 & #10
    25
    Nov 20
    23
    Pdf
    Video
    Chapters #9 & #10
    WEEK 14
    26
    Nov 25
    23
    Pdf
    Video
    Lecture will be recorded and NOT an in-person meeting
    ---
    Nov 27
      🦃 THANKSGIVING 🦃
    WEEK 15
    27
    Dec 2
    24
    Pdf
    Video
    Lab #12
    Chapter #8
    28
    Dec 4
    25
    Pdf
    Video
    Chapter #8
    WEEK 16
    ---
    Dec 9
      NO LECTURE - Lecture is canceled to compensate for evening midterm exam 1
    ---
    Dec 11
      NO LECTURE - Lecture is canceled to compensate for evening midterm exam 2
    Final Exam - Date: Wednesday, December 17 *** Time: 7:00pm - 9:00pm *** Location: ELLT 116

    I never lose.. Either I win or learn 😉
    Nelson Mandela

    Powered by DaysPedia.com
    Current Time in West Lafayette
    103255am
    Tue, November 15
    7:33am 09:57 5:30pm