Eman Samy Diyab

Lecturer
CS Department, Purdue University

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

  • Email: E then my lastname AT Purdue DOT edu, OR my firstname AT Purdue DOT edu
  • Office: HAAS - G022

  • Finals Week Office hours:
  • Thursday, December 7th from 11:30 am to 3:00 pm
  • Friday, December 8th from 11:00 am to 12:30 pm
  • Monday December 11th from noon to 2:00 pm

  • Fall 2023 - CS15900

    Lecture # Date Lecture Quiz Notes Recording Pages Lab HW Keywords
    WEEK 1
    1
    Aug 22
    ---
    Pdf
    Video
    1 - 8
    Lab #0
    ---
    Introduction, course policies and motivations
    2
    Aug 24
    Demo
    Pdf
    Video
    31 - 35
    Chapter 2: Structure of a C program, Commenting, Identifiers, Data types.
    WEEK 2
    3
    Aug 29
    1
    Pdf
    Video
    35 - 39
    Lab #1
    HW #1
    Chapter 2: Data types, Variables, Literal Constants, Symbolic/Defined Constants, Formatted I/O
    4
    Aug 31
    2
    Pdf
    Video
    39 - 43
    Chapter 2 cont.: Formatted I/O, Width and precision modifiers, Errors and debugging with examples
    WEEK 3
    5
    Sept 5
    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
    Sept 7
    4
    Pdf
    Video
    48 - 50
    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 12
    5
    Pdf
    Video
    51 - 53
    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 14
    6
    Pdf
    Video
    53 - 57
    Chapter# 4: cont. Top-Down design. Factoring: Each function does a single task (functionally cohesive). Functions terminology. Call / calling / called / Return. Parameter passing. 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 19
    7
    Pdf
    Video
    57 - 64
    Lab #4
    HW #3
    Chapter#4 cont. Types of functions. 1- No parameters - no return value - welcome() , menu_options() 2- No parameters - with return value - get_input(). 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).
    10
    Sept 21
    8
    Pdf
    Video
    64 - 67
    Chapter#4 cont. Parameter passing: 1- Pass by address.2- Pass by address. Pointer operations.
    WEEK 6
    11
    Sept 26
    9
    Pdf
    Video
    67 - 69
    Lab #5
    Chapter#4 cont. Parameter passing: Pass by address. Pointer operations. Scope. Structure Charts. How to read a structure chart.
    12
    Sept 28
    10
    Pdf
    Video
    70 - 74
    Chapter #4 cont. 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.
    WEEK 7
    13
    Oct 3
    11
    Pdf
    Video
    75 - 76
    Lab #6
    HW #4
    Chapter#5 cont. : Relational operators (<, <=, >, >=). Comparative operators (==, !=). Compound statements.
    Examples illustrating compound statements with short circuit method.
    14
    Oct 5
    12
    Pdf
    Video
    75 - 82
    Chapter #5 cont.: Compound statements revisited with examples.
    Complements:
    (1) Relational and comparative operators.
    (2) Logical operators. examples on Complements.
    Two way selection:
    (1) if-else with examples. Nested selection. Dangling else.
    WEEK 8
    ---
    Oct 10
      🍁 FALL / OCTOBER BREAK 🍁
    15
    Oct 12
    13
    Pdf
    Video
    82 - 87
    Lab #7
    Chapter #5 cont.:
    Two way selection:
    (1) if-else. Nested selection (if/if else) . Dangling else.
    (2) Conditional expressions.
    Multiway selection:
    (1) if / else if / else with examples compared to if if structure.
    Midterm Exam #1 - Date: Thursday, October 12 *** Time: 8:00pm - 9:00pm *** Location: ELLT 116
    WEEK 9
    16
    Oct 17
    14
    Pdf
    Video
    88 - 92
    Lab #8
    HW #5
    Chapter #5 cont.: Multiway selection (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.
  • Chapter #6: Repetition using loops. looping basics and terminology.
    17
    Oct 19
    15
    Pdf
    Video
    93 - 99
    Chapter #6 cont.: 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.
    WEEK 10
    18
    Oct 24
    16
    Pdf
    Video
    99 - 106
    Lab #9
    Chapter #6 cont. : while vs do-while loops with example(factorial example).
    Nesting concept. Nested loops with example (range of factorials example).
    The infinite loop. The for loop.
    19
    Oct 26
    17
    Pdf
    Video
    106 - 114
    Chapter #6 cont. :
    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.
  • Recursion: concepts with examples (Restaurant waiting line & factorial examples).
  • Recursive cases and Base case. Loops vs. Recursion.
  • WEEK 11
    20
    Oct 31
    18
    Pdf
    Video
    114 - 118
    Lab #10
    HW #6
    Chapter #6 cont.:
  • 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.
  • 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.
  • 21
    Nov 2
    19
    Pdf
    Video
    118 - 127
    Chapter 8 cont.:
  • How to loop over all elements in the array.
  • Index range checking.
  • Arrays and Functions:
    1. Pass a single element.
    2. Pass multiple elements individually.
    3. Pass one or more elements by address.
    4. Pass the whole array (can be done only By address).
    WEEK 12
    22
    Nov 7
    20
    Pdf
    Video
    128 - 131
    133 - 134
    Lab #11
    Chapter 8 cont.: 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.
    Bubble & Selection 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).
    23
    Nov 9
    21
    Pdf
    Video
    132 & 135
    Chapter 8 cont.: Sorting algorithms: (3) Insertion sort with examples.Summary thoughts of sorting algorithms. Previous exams' questions. Previous exam sorting algorithm questions.
    WEEK 13
    Midterm Exam #2 - Date: Monday, November 13 *** Time: 8:00pm - 9:30pm *** Location: ELLT 116
    24
    Nov 14
    22
    Pdf
    Video
    147 - 149
    Lab #12
    HW #7
    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.
    25
    Nov 16
    23
    Pdf
    Video
    150 - 154
    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.
    WEEK 14
    ---
    Nov 21
      NO LECTURE - Lecture is canceled to compensate for evening midterm exam 1
    ---
    Nov 23
      THANKSGIVING
    WEEK 15
    26
    Nov 28
    24
    Pdf
    Video
    Chapter 8 cont.: Multidimensional Arrays: Declaration and Definition. 1D, 2D, 3D and 4D arrays. 2D arrays example.
    Searching: (1) Sequential search: Assumptions. How it works. Implementation of a sequential search. Best and worst case scenario. Examples
    27
    Nov 30
    25
    Pdf
    Video
    Chapter 8 cont. (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 16
    28
    Dec 5
    26
    Pdf
    Video
    Open Lab
    Revision and previous exams questions.
    ---
    Dec 7
      NO LECTURE - Lecture is canceled to compensate for evening midterm exam 2
    Final Exam - Date: Tuesday, December 12 *** Time: 3:30 - 5:30 pm *** Location: ELLT 116


    ❤ I will miss you All ❤


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