Eman Samy Diyab

Lecturer
CS Department, Purdue University

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

Fall 2024 - CS15900

Lecture # Date Lecture Quiz Notes Recording Pages Lab HW Keywords
WEEK 1
1
Aug 20
---
Pdf
Video
Lab #0
---
Introduction, course policies and motivations
Watch Chapter 1 Recordings
  • Chapter 1 - Introduction
  • Chapter 1 - Part 1
  • Chapter 1 - Part 2
  • Chapter 1 - Part 3
  • 2
    Aug 22
    Demo
    Pdf
    Video
    31 - 34
    Chapter 2: Structure of a C program, Commenting, Identifiers.
    WEEK 2
    3
    Aug 27
    1
    Pdf
    Video
    34 - 37
    Lab #1
    HW #1
    Chapter 2: Identifiers, Data types, Variables, Literal Constants, Symbolic/Defined Constants
    4
    Aug 29
    2
    Pdf
    Video
    37 - 41
    Chapter 2 cont.: Formatted I/O, Width and precision modifiers
    WEEK 3
    5
    Sept 3
    3
    Pdf
    Video
    41 - 45
    Lab #2
    HW #2
    Chapter 2 cont.: Scanf, Errors and debugging with examples
    Chapter #3: Expressions(Operators and operands). Operator precedence. Assignment expressions. Simple & Compound assignments.
    6
    Sept 5
    4
    Pdf
    Video
    46 - 50
    Chapter #3 cont.:
  • Prefix and postfix (Undefined vs. Well-defined behavior example).
  • 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.
  • WEEK 4
    7
    Sept 10
    5
    Pdf
    Video
    50 - 53
    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.
  • 8
    Sept 12
    6
    Pdf
    Video
    53 - 58
    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 17
    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 - only local variable definitions, function calls and limited selection or repetition (to call functions).
    10
    Sept 19
    8
    Pdf
    Video
    64 - 68
    Chapter#4 cont. Parameter passing: 1- Pass by address.2- Pass by address. Pointer operations.
    WEEK 6
    11
    Sept 24
    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 introduction.
    12
    Sept 26
    10
    Pdf
    Video
    74 - 76
    Chapter #5 cont.: Short circuit method with example.
    Relational operators (<, <=, >, >=).
    Comparative operators (==, !=). Compound statements.
    Examples illustrating compound statements with short circuit method.
    Midterm Exam #1 - Date: Thursday, September 26 *** Time: 6:30pm - 7:30pm *** Location: ELLT 116
    WEEK 7
    13
    Oct 1
    11
    Pdf
    Video
    76 - 83
    Lab #6
    HW #4
    Complements:
    (1) Relational and comparative operators.
    (2) Logical operators. examples on Complements.
    Two way selection:
    (1) if-else with examples. Nested selection. Dangling else.
    14
    Oct 3
    12
    Pdf
    Video
    84 - 87
    Chapter #5 cont.:
    Two way selection:
    (2) Conditional expressions.
    Multiway selection:
    (1) if / else if / else with examples compared to if if structure.
    WEEK 8
    ---
    Oct 8
      🍁 FALL / OCTOBER BREAK 🍁
    15
    Oct 10
    13
    Pdf
    Video
    88 - 91
    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.
  • WEEK 9
    16
    Oct 15
    14
    Pdf
    Video
    92 - 97
    Lab #7
    HW #5
    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.
    17
    Oct 17
    15
    Pdf
    Video
    97 - 103
    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).
    The infinite loop.
    WEEK 10
    18
    Oct 22
    16
    Pdf
    Video
    104 - 107
    Lab #8
    Chapter #6 cont. : 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.
  • 19
    Oct 24
    17
    Pdf
    Video
    107 - 115
    Chapter #6 cont. : Rearranging digits in a number example explained with structure and flow charts.
    Recursion: concepts with examples (Restaurant waiting line & factorial examples).
  • Recursive cases and Base case. Loops vs. Recursion.
  • Midterm Exam #2 - Date: Monday, October 28 *** Time: 8:00pm - 9:30pm *** Location: ELLT 116
    WEEK 11
    20
    Oct 29
    18
    Pdf
    Video
    116 - 119
    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.
  • 21
    Oct 31
    19
    Pdf
    Video Pt1

    Video Pt2
    120 - 125
    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.
    WEEK 12
    22
    Nov 5
    20
    Pdf
    Video
    125 - 130
    Lab #10
    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.
    23
    Nov 7
    21
    Pdf
    Video
    130 - 131
    133 - 134
    Chapter 8 cont.: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).
    Example on selection sort demonstrating the 4 different configurations of sorting.
    WEEK 13
    24
    Nov 12
    22
    Pdf
    Video
    132
    135
    147 - 148
    Lab #11
    HW #7
    Chapter 8 cont.: Sorting algorithms: (3) Insertion sort with examples.Summary thoughts of sorting algorithms. Previous exam sorting algorithm questions.
    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).
    25
    Nov 14
    23
    Pdf
    Video
    149 - 151
    Chapters 9 & 10 cont.: Example on Pointers and Variables addresses. Arrays and Pointers with an example.
    WEEK 14
    26
    Nov 19
    24
    Pdf
    Video
    151 - 154
    Lab #12
    Chapters 9 & 10 cont.: 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.
    27
    Nov 21
    25
    Pdf
    Video
    Revision and previous exams questions.
    WEEK 15
    28
    Nov 26
    26
    1.Sequential Search
    2.Binary Search
    3.Multidimensional Arrays
    Open Lab
    Lecture is posted online only - No in-person meeting
    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.
    (3) Multidimensional Arrays: Declaration and Definition. 1D, 2D, 3D and 4D arrays. 2D arrays example.
    ---
    Nov 28
      THANKSGIVING
    WEEK 16
    ---
    Dec 3
      NO LECTURE - Lecture is canceled to compensate for evening midterm exam 1
    ---
    Dec 5
      NO LECTURE - Lecture is canceled to compensate for evening midterm exam 2
    Final Exam - Date: Thursday, December 12 *** Time: 7:00pm - 9:00pm *** 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