Eman Samy Diyab

Lecturer
CS Department, Purdue University

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

Previous Semesters

Spring 2025 - CS15900

-->
Lecture # Date Lecture Quiz Notes Recording Pages Lab HW Keywords
WEEK 1
1
Jan 14
---
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
    Jan 16
    Demo
    Pdf
    Video
    31 - 36
    Chapter 2: Structure of a C program, Commenting, Identifiers, Data types.
    WEEK 2
    3
    Jan 21
    1
    Pdf
    Video
    36 - 39
    Lab #1
    HW #1
    Chapter 2: Variables, Literal Constants, Symbolic/Defined Constants, Formatted I/O
    4
    Jan 23
    2
    Pdf
    Video
    39 - 43
    Chapter 2 cont.: Formatted I/O, Width and precision modifiers, Scanf, Errors and debugging with examples
    WEEK 3
    5
    Jan 28
    3
    Pdf
    Video
    43 - 48
    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).
  • 6
    Jan 30
    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.
  • Selection via calculation
  • WEEK 4
    7
    Feb 4
    5
    Pdf
    Video
    51 - 54
    Lab #3
    Chapter #3 cont.: Selection via calculation explained with 2 examples.
    Chapter#4: Purpose of functions. Motivation:
  • Factor: smaller is easier.
  • Reuse: by you or others. Remove redundancy.
  • Protect data: using the variable doesn't change its value.

  • Top-Down design.
    Factoring: Each function does a single task (functionally cohesive).
    Functions terminology: Call / calling / called / Return / Parameter passing.
    8
    Feb 6
    6
    Pdf
    Video
    55 - 59
    Chapter# 4:
    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
    Feb 11
    7
    Pdf
    Video
    59 - 64
    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
    * Local variable definitions,
    * Function calls
    * Limited selection or repetition (to call functions).
    10
    Feb 13
    8
    Pdf
    Video
    64 - 67
    Chapter#4 cont. Parameter passing: 1- Pass by address.2- Pass by address. Pointer operations.
    WEEK 6
    11
    Feb 18
    9
    Pdf
    Video
    67 - 73
    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.
    Midterm Exam #1 - Date: Thursday, February 18 *** Time: 8:00pm - 9:00pm *** Location: ELLT 116
    12
    Feb 20
    10
    Pdf
    Video
    72 - 76
    Chapter #5 cont.: logical operators (NOT, AND, OR).
    Logical operators truth table.
    Logical expressions evaluation.
    Short circuit method with example.
    Relational operators (<, <=, >, >=).
    Equality operators (==, !=). Compound statements.
    Examples illustrating compound statements with short circuit method.
    WEEK 7
    13
    Feb 25
    11
    Pdf
    Video
    76 - 81
    Lab #6
    HW #4
    Chapter #5 cont.: Complements:
    (1) Relational and Equality operators.
    (2) Logical operators. examples on Complements.
    Two way selection:
    (1) if-else with examples.
    14
    Feb 26
    12
    Pdf
    Video
    80 - 87
    Chapter #5 cont.:
    Two way selection:
    (1) if-else with examples.
    Nested selection. Dangling else.
    Two way selection:
    (2) Conditional expressions.
    Multiway selection:
    (1) if / else if / else with examples compared to if if structure.
    WEEK 8
    15
    Mar 4
    13
    Pdf
    Video
    87 - 91
    Lab #7
    Chapter #5 cont.: 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 vs. switch statements.
  • 16
    Mar 6
    14
    Pdf
    Video
    92 - 96
    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.
    Event-controlled vs. Counter-controlled processes.
    WEEK 9
    17
    Mar 11
    15
    Pdf
    Video
    92 - 100
    Lab #8
    HW #5
    Chapter #6 cont.: 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.
    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).
    18
    Mar 13
    16
    Pdf
    Video
    100 - 107
    Chapter #6 cont. :
    Nesting concept. Nested loops with example (range of factorials example).
    The infinite loop.
    The for loop.
    Converting while loops to for loops examples.
    WEEK 10
    ---
    Mar 17
      🌸 SPRING BREAK 🌸 enjoy some well-deserved rest! 🛏️ 🎮 🏖️ 🌊
    WEEK 11
    19
    Mar 25
    17
    Pdf
    Video
    107 - 116
    Lab #9
    Chapter #6 cont. :
    Rearranging digits in a number example explained with structure and flow charts.
  • 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.
  • Recursion: concepts with examples (Restaurant waiting line & factorial examples).
  • Recursive cases and Base case. Loops vs. Recursion.
  • 20
    Mar 27
    18
    Pdf
    Video
    116 - 120
    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.
  • Midterm Exam #2 - Date: Thursday, March 27 *** Time: 8:00pm - 9:30pm *** Location: ELLT 116
    WEEK 12
    21
    Apr 1
    19
    Pdf
    Video
    120 - 126
    Lab #10
    HW #6
    Chapter 8 cont.:
  • How to loop over all elements in the array.
  • Index range checking.
  • Arrays and Functions:
  • Pass a single element.
  • Pass multiple elements individually.
  • Pass one or more elements by address.
  • Pass the whole array (can be done only By address).
  • 22
    Apr 3
    20
    Pdf
    Video
    126 - 130
    Chapter 8 cont.:
  • Pass the whole array (can be done only By address).
  • Objects learned till now (Variables, Array elements, Whole Arrays).
    Arrays and Measures of Efficiency with examples. Exchanging values appropriately.
    Sorting terminology (list, pass and swap). The 4 possible ways to sort a list.
    Selection Sort:
  • Animated.
  • Solved step by step.
  • Min & Max number of swaps per pass.
  • How many swaps needed to fully sort a list.
  • WEEK 13
    23
    Apr 8
    21
    Pdf
    Video
    130 - 135
    Lab #11
    Chapter 8 cont.:Bubble Sort:
  • Animated.
  • Solved step by step.
  • Min & Max number of swaps per pass.
  • How many swaps needed to fully sort a list.
  • Implementation of Bubble sort (Whole array vs. part of the array).
    Sorting algorithms: (3) Insertion sort with examples.Summary thoughts of sorting algorithms. Previous exams' questions. Previous exam sorting algorithm questions.
    24
    Apr 10
    22
    Pdf
    Video
    147 - 149
    Chapters 9 & 10: Pointers and pointer applications. What is a pointer?
    How to store an address in a pointer? and how to print the address stored in a pointer?
    Declaration of a pointer. Pointer initialization (Between functions & within the same function).
    Example on Pointers and Variables addresses.
    WEEK 14
    25
    Apr 15
    23
    Pdf
    Video
    Lab #12
    HW #7
    Chapters 9 & 10 cont.: Arrays and Pointers with an example.
    Pointer Arithmetic and Arrays example.
    (1) Values stored in the array and (2) The addresses of each single element of the array.
    Memory Allocation Function - malloc
    How to use this relationship to get a dynamic memory allocation during the runtime (malloc).
    Example on an array defined using malloc function.
    26
    Apr 17
    24
    Pdf
    Video
    Chapter 8 cont.:
    Searching:
    (1) Sequential search: Assumptions. How it works. Implementation of a sequential search. Best and worst case scenario with Examples
    (2) Binary search: Assumptions. How it works. Implementation of a sequential search. Best and worst case scenario.
    Examples Binary search examples: (1) Target is found in the list. (2) Target is not found. Implementation of Binary search.
    WEEK 15
    27
    Apr 22
    25
    Pdf
    Video
    No Lab
    Chapters 8
    28
    Apr 24
    26
    Pdf
    Video
    The vibes are there 🌀 The actual content? Soon 😏📚
    WEEK 16
    ---
    Apr 29
      NO LECTURE - Lecture is canceled to compensate for evening midterm exam 1
    ---
    May 1
      NO LECTURE - Lecture is canceled to compensate for evening midterm exam 2
    Final Exam - Date: Wednesday, May 7 *** Time: 8:00am - 10:00am *** Location: ELLT 116

    We must accept finite disappointment, but never lose infinite hope.
    Martin Luther King Jr.

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