Email: first initial + C + last initial AT purdue DOT edu
Office: HAAS G24
My lectures: view lecture schedule in the table below
My office hours: check Brightspace announcements for cancellations
Chapter 1 lectures by William Crum:
Week 1 | ||||||||
Mon 08 Jan | Tue 09 Jan | Wed 10 Jan | Thu 11 Jan | Fri 12 Jan | Sat 13 Jan | Sun 14 Jan | ||
Lecture 1 (46:57) | Lecture 2 (48:29) | |||||||
No Lecture Quiz | Lecture Quiz Demo | |||||||
Slides | No notes | Slides | p. 31 – 35 | |||||
Overview of the class; course policies; motivations. | Chapter 2. C program structure and syntax; comments; identifiers; data types: integer family (including short , int , long , and long long ), character data type (char ) and ASCII table. |
|||||||
Complete Lab 0 + take Lab Quiz 0 | ||||||||
Week 2 | ||||||||
Mon 15 Jan | Tue 16 Jan | Wed 17 Jan | Thu 18 Jan | Fri 19 Jan | Sat 20 Jan | Sun 21 Jan | ||
No classes or office hours (MLK Jr. Day) |
Lecture 3 (47:56) | Lecture 4 (47:27) | ||||||
Lecture Quiz 1 | Lecture Quiz 2 | |||||||
Slides | p. 35 – 40 | Slides | p. 40 – 42 | |||||
Chapter 2 continued. Data types: boolean data type (bool ); floating-point data types (float , double , long double ); variables: declaration, definition, and initialization; uninitialized variables and undefined behavior; constants: literal constants, symbolic/defined constants, memory constants; formatted input/output: printf format string and data list; format string placeholders: conversion codes and size modifiers. |
Chapter 2 continued. Placeholders continued: precision, (minimum) width, and flags; variations of the minimum width modifier for printf() placeholders; usage of scanf() for user input. |
|||||||
Start Homework 1 | ||||||||
Start Lab 1 (overview) + take Lab Quiz 1 | ||||||||
Week 3 | ||||||||
Mon 22 Jan | Tue 23 Jan | Wed 24 Jan | Thu 25 Jan | Fri 26 Jan | Sat 27 Jan | Sun 28 Jan | ||
Lecture 5 (50:38) | Lecture 6 (48:19) | |||||||
Lecture Quiz 3 | Lecture Quiz 4 | |||||||
Slides | p. 42 – 46 | Slides | p. 46 – 49 | |||||
Chapter 2 continued. Types of errors: compile-time errors (including syntax errors and the difference between gcc 's "errors" and "warnings"), and run-time errors (including crashes such as segmentation faults and floating point exceptions, and logical errors); debugging with diagnostic printf() statements.Chapter 3. Expressions; operators; operands; operator precedence; simple and compound assignments. Take the Lecture Quiz 3 makeup on Brightspace if you missed the lecture or are unsure of your attendance status. See this Ed post for the unanswered Zoom questions. |
Chapter 3 continued. Prefix and postfix increment and decrement; side effects and sequence points; undefined behavior; single data type and mixed data type expressions; implicit data type conversions (safe) and hierarchy of data types by relative size; explicit data type conversions (can be unsafe) using "type casting" operators; rounding versus truncation with regards to floor() , (int) casts, and printf() precision modifiers.Discuss on Ed |
|||||||
Homework 1 due 11:00 PM | Start Homework 2 | |||||||
Lab 1 due 30 minutes before lab period | ||||||||
Start Lab 2 (overview) + take Lab Quiz 2 | ||||||||
Week 4 | ||||||||
Mon 29 Jan | Tue 30 Jan | Wed 31 Jan | Thu 01 Feb | Fri 02 Feb | Sat 03 Feb | Sun 04 Feb | ||
Lecture 7 (48:22) | Lecture 8 (49:23) | |||||||
Lecture Quiz 5 | Lecture Quiz 6 | |||||||
Slides | p. 50 – 52 | Slides | p. 53 – 56 | |||||
Chapter 3 continued. Assignment data type conversions (can be unsafe); immutability of object data types; what causes the value of a variable to change (simple or compound assignment operators, scanf() , or prefix/postfix increment/decrement operators); selection by calculation with examples, including the "scaling to zero or one" formula.Discuss on Ed |
Chapter 4. Purpose of functions; function factoring; functional cohesion; calling function and called function; parameters; return values; function declarations, calls, and definitions; void functions; functions with no parameters and no return value (static output).Discuss on Ed |
|||||||
Lab 2 due 30 minutes before lab period | ||||||||
Start Lab 3 (overview) + take Lab Quiz 3 | ||||||||
Week 5 | ||||||||
Mon 05 Feb | Tue 06 Feb | Wed 07 Feb | Thu 08 Feb | Fri 09 Feb | Sat 10 Feb | Sun 11 Feb | ||
Lecture 9 (47:43) | Lecture 10 (45:59) | |||||||
Lecture Quiz 7 | Lecture Quiz 8 | |||||||
Slides | p. 57 – 64 | Slides | p. 64 – 68 | |||||
Chapter 4 continued. Functions with no parameters that return a value (input); functions with parameters that return a value (calculation); functions with parameters and no return value (dynamic output); differences between function declarations, calls, and definitions; acceptable main() functions.Discuss on Ed |
Chapter 4 continued. Parameter passing: pass-by-value and pass-by-address; address operator & and dereferencing operator * ; pointers and pointer types; swapping the value of two variables; scope (local and global, for variables and functions respectively).Discuss on Ed |
|||||||
Homework 2 due 11:00 PM | Start Homework 3 | |||||||
Lab 3 due 30 minutes before lab period | ||||||||
Start Lab 4 (overview) + take Lab Quiz 4 | ||||||||
Week 6 | ||||||||
Mon 12 Feb | Tue 13 Feb | Wed 14 Feb | Thu 15 Feb | Fri 16 Feb | Sat 17 Feb | Sun 18 Feb | ||
Lecture 11 (46:29) | Lecture 12 (46:21) | |||||||
Lecture Quiz 9 | Lecture Quiz 10 | |||||||
Slides | p. 68 – 72 | Slides | p. 72 – 76 | |||||
Chapter 4 continued. Structure charts: format, rules, good and bad examples; recommended problem-solving method (specify, analyze, design, code, test and debug, refine); overview of the current position in the class's content: just finished sequence with chapter 4; next is selection in chapter 5; then repetition in chapter 6. Discuss on Ed |
Chapter 5. Logical data (true or false); logical expressions; C convention for true and false values ("truthiness"); logical operators: NOT (! ), AND (&& ), OR (|| ); truth tables; short-circuiting; simple examples of logical NOT, AND, and OR; examples of short-circuiting with side effects; relational operators (< <= > >= ) and equality operators (== != ); compound statements.Discuss on Ed |
|||||||
Lab 4 due 30 minutes before lab period | ||||||||
Start Lab 5 (overview) + take Lab Quiz 5 | ||||||||
Week 7 | ||||||||
Mon 19 Feb | Tue 20 Feb | Wed 21 Feb | Thu 22 Feb | Fri 23 Feb | Sat 24 Feb | Sun 25 Feb | ||
Lecture 13 (48:27) | Lecture 14 (48:55) | |||||||
Lecture Quiz 11 | Lecture Quiz 12 | |||||||
Slides | p. 76 – 78, 80 – 82 | Slides | p. 82 – 87 | |||||
Chapter 5 continued. Logical complements and examples thereof; two-way selection using the if /else construct; nested selection with if /else .Discuss on Ed |
Chapter 5 continued. "Dangling else " logical error; two-way selection using the conditional expression (also known as the ternary conditional operator); multi-way selection using if /else if /else .Discuss on Ed |
|||||||
Homework 3 due 11:00 PM | Start Homework 4 | |||||||
Lab 5 due 30 minutes before lab period | ||||||||
Start Lab 6 (overview) + take Lab Quiz 6 | ||||||||
Midterm 1: 08:00 – 09:00 PM, Hall of Music | ||||||||
Week 8 | ||||||||
Mon 26 Feb | Tue 27 Feb | Wed 28 Feb | Thu 29 Feb | Fri 01 Mar | Sat 02 Mar | Sun 03 Mar | ||
Lecture 15 (48:41) | Lecture 16 (49:17) | |||||||
Lecture Quiz 13 | Lecture Quiz 14 | |||||||
Slides | p. 88 – 91 | Slides | p. 92, 95 – 96, 98, 97 | |||||
Chapter 5 continued. switch construct: case labels and break statements; "fall-through" behavior of switch ; comparing floating-point values for equality; C language rules for switch ; when and how to use switch .Discuss on Ed SI leader application |
Chapter 6. Repetition using loops: loop control expression (LCE), loop control variable (LCV), loop initialization and loop update, loop iterations; pre-test versus post-test looping constructs: the minimum number of iterations and when to use each; tabular strategy for analyzing looping code; while and do -while loops; event-controlled versus counter-controlled processes; input validation as a event-controlled process using a post-test looping construct.Discuss on Ed |
|||||||
Lab 6 due 30 minutes before lab period | ||||||||
Start Lab 7 (overview) + take Lab Quiz 7 | ||||||||
Week 9 | ||||||||
Mon 04 Mar | Tue 05 Mar | Wed 06 Mar | Thu 07 Mar | Fri 08 Mar | Sat 09 Mar | Sun 10 Mar | ||
Lecture 17 (49:12) | ||||||||
Lecture Quiz 15 | No lecture | Last day for office hours | ||||||
Slides | p. 99 – 103 | |||||||
Chapter 6 continued. Implementation of the factorial example; nested looping; infinite loops and forcing programs to exit using Ctrl -C .Discuss on Ed |
||||||||
Homework 4 due 11:00 PM | Start Homework 5 | |||||||
Lab 7 due 30 minutes before lab period | ||||||||
Start Lab 8 (overview) + take Lab Quiz 8 | ||||||||
Spring break | ||||||||
Mon 11 Mar | Tue 12 Mar | Wed 13 Mar | Thu 14 Mar | Fri 15 Mar | Sat 16 Mar | Sun 17 Mar | ||
No classes or office hours | ||||||||
Week 10 | ||||||||
Notes p. 93 – 94: minimum, maximum, and average for an arbitrary number of exam scores. Only a single loop is necessary: the input loop, which updates the current minimum, maximum, sum, and count of scores. When the user enters Notes p. 107 – 112: sorting digits in a number from largest to smallest, creating as a result the largest possible number from those digits. Repetitive processes:
|
||||||||
Mon 18 Mar | Tue 19 Mar | Wed 20 Mar | Thu 21 Mar | Fri 22 Mar | Sat 23 Mar | Sun 24 Mar | ||
Lecture 18 (48:31) | Lecture 19 (48:29) | |||||||
Office hours resume | Lecture Quiz 16 | Lecture Quiz 17 | ||||||
Slides | p. 103 – 106 | Slides | p. 116 – 120 | |||||
Chapter 6 continued. Infinite loop examples; introduction to the C for loop and when to use it; examples of rewriting while loops into for loops.Discuss on Ed |
Chapter 8. Introduction to arrays: motivation, concept, declaration and definition, initialization and assignment; iterating over arrays with loops. Discuss on Ed |
|||||||
Lab 8 due 30 minutes before lab period | ||||||||
Start Lab 9 (overview) + take Lab Quiz 9 | ||||||||
Week 11 | ||||||||
Mon 25 Mar | Tue 26 Mar | Wed 27 Mar | Thu 28 Mar | Fri 29 Mar | Sat 30 Mar | Sun 31 Mar | ||
Lecture 20 (51:27) | ||||||||
Lecture Quiz 18 | No lecture | |||||||
Slides | p. 121 – 127 | |||||||
Chapter 8 continued. Going beyond the limits of an array; arrays across function boundaries: syntax and semantics of passing individual array elements by value and by address, and of passing entire arrays by address; handling of the array name as an address and the index as an offset with respect to that address (hence zero-based indexing); summary of passing various objects (variables, array elements, and arrays) by value, by address, and using the return keyword; printing or scanning entire arrays.Discuss on Ed |
||||||||
Homework 5 due 11:00 PM | Start Homework 6 | |||||||
Lab 9 due 30 minutes before lab period | ||||||||
Start Lab 10 (overview) + take Lab Quiz 10 | ||||||||
Week 12 | ||||||||
Mon 01 Apr | Tue 02 Apr | Wed 03 Apr | Thu 04 Apr | Fri 05 Apr | Sat 06 Apr | Sun 07 Apr | ||
Lecture 21 | Lecture 22 | |||||||
Lecture Quiz 19 | Lecture Quiz 20 | |||||||
p. 147 | ||||||||
Chapters 9 & 10. | Chapters 9 & 10 continued. | |||||||
Midterm 2: 08:00 – 09:30 PM, Hall of Music | Lab 10 due 30 minutes before lab period | |||||||
Start Lab 11 + take Lab Quiz 11 | ||||||||
Week 13 | ||||||||
Mon 08 Apr | Tue 09 Apr | Wed 10 Apr | Thu 11 Apr | Fri 12 Apr | Sat 13 Apr | Sun 14 Apr | ||
Lecture 23 | Lecture 24 | |||||||
Lecture Quiz 21 | Lecture Quiz 22 | |||||||
Chapter 8 continued. | Chapter 8 continued. | |||||||
Homework 6 due 11:00 PM | Start Homework 7 | |||||||
Lab 11 due 30 minutes before lab period | ||||||||
Start Lab 12 + take Lab Quiz 12 | ||||||||
Week 14 | ||||||||
Mon 15 Apr | Tue 16 Apr | Wed 17 Apr | Thu 18 Apr | Fri 19 Apr | Sat 20 Apr | Sun 21 Apr | ||
Lecture 25 | Lecture 26 | |||||||
Lecture Quiz 23 | Lecture Quiz 24 | |||||||
Chapter 8 continued. | Chapter 8 continued. | |||||||
Homework 7 due 11:00 PM | ||||||||
Lab 12 due 30 minutes before lab period | ||||||||
Attend Lab 13 | ||||||||
Lab Quiz 13 due 11:00 PM | ||||||||
Quiet period (week 15) | ||||||||
Mon 22 Apr | Tue 23 Apr | Wed 24 Apr | Thu 25 Apr | Fri 26 Apr | Sat 27 Apr | Sun 28 Apr | ||
Lecture 27 | Lecture 28 | |||||||
Lecture Quiz 25 | Lecture Quiz 26 | |||||||
Chapter 8 continued. | Chapter 6 continued. | |||||||
No labs | ||||||||
TA office hours end | ||||||||
Finals week (16) | ||||||||
Mon 29 Apr | Tue 30 Apr | Wed 01 May | Thu 02 May | Fri 03 May | Sat 04 May | Sun 05 May | ||
No classes or TA office hours | ||||||||
Final Exam: 03:30 – 5:30 PM, Hall of Music |
Last modified on Tue 26 Mar 2024 02:10 PM EDT.
Name | Last modified | Description | |
---|---|---|---|
Parent Directory | |||
202210CS15900.html | 2021-12-16 22:26 | Fall 2021 - CS 15900 | |
202220CS15900.html | 2022-05-07 11:57 | Spring 2022 - CS 15900 | |
202310CS15900.html | 2022-12-16 18:08 | Fall 2022 - CS 15900 | |
202320CS15900.html | 2023-05-09 09:06 | Spring 2023 - CS 15900 | |
202410CS15900.html | 2023-12-14 09:49 | Fall 2023 - CS 15900 | |
c.shtml | 2024-02-25 14:23 | Interesting articles on the C programming language | |
counters.shtml | 2024-01-15 14:19 | Countdowns | |
links.shtml | 2024-01-19 09:49 | Useful Purdue links | |