16.216: ECE Application Programming

Instructor: Dr. Michael Geiger

Fall 2014

 

Course Schedule

This schedule contains a tentative schedule of topics we will cover throughout the term; this schedule is subject to change. As the semester progresses, I will update the schedule to show the actual dates on which we cover material, as well as provide links to the lecture slides and programming assignments. Note that most lectures are associated with some section(s) of the textbook, which I suggest you read prior to class.
 

Please note that the exam dates are fixed—the first exam will be held on Wednesday, October 1 in class, the second exam will be held on Wednesday, November 5 in class, and the third exam will be held on Wednesday, December 17, from 8:00 AM to 11:00 AM.

 

Week Date (Mon.) Lecture Topics Handouts

Echo360 Recordings

Reading Assignments

1

9/1

 No Monday lecture--Labor Day

 1. Course introduction/overview; basic C program structure

 2. Basic program structure (cont.); data in C: data types, constants

 Syllabus

 Program grading guidelines

 Lec. 1 questions

 Lec. 2 questions

 Lecture 1

 Lecture 2

 W: 2.1-2.4, 2.8

 F: 2.6-2.7, 7.1-7.3

 Program 1

 (due 9/8)

2

9/8

 3. Variables

 4. Operators; output with printf()

 5. Input with scanf(); PE1 (Flowcharts, debugging)

 Lec. 3 questions

 Lec. 4 questions

 Lec. 5 questions

 Lecture 3

 Lecture 4

 Lecture 5

 M: 2.4

 W: 4.1-4.2, 3.1

 F: 2.5, 3.2

 Program 2

 (due 9/17)

 Prog. 2 deductions

3 9/15

 6. printf() formatting

 7. Conditional statements: if

 8. Switch statements

 Lec. 6 questions

 Lec. 7 questions

 Lec. 8 questions

 Lecture 6

 Lecture 7

 Lecture 8

 M: 3.1, 22.3

 W: 5.1-5.2

 F: 5.3, 6.1-6.2

 Program 3

 (due 9/25)

4 9/22

 9. While loops

 10. PE2 (Conditionals; while loops)

 11. Loops: for (+ finish PE2)

 Lec. 9 questions

 Lec. 10 questions

 Solution to PE2

 Lec. 11 questions

 Lecture 9

 Lecture 10

 Lecture 11

 M: 6.1-6.2

 W: None

 F: 6.3-6.4

 Program 4

 (due 10/6)

5 9/29

 12. Exam 1 Preview

 Wednesday, 10/1: EXAM 1

 13. Functions

 Lec. 13 questions

 Lecture 12

 Lecture 13

 M, W: No reading

 F: 9.1-9.4

 
6 10/6

 No lecture--in-class office hours

 14. Function examples; Exam 1 Review

 15. More function examples

 Lec. 14 questions

 Lec. 15 questions

 Lecture 14

 Lecture 15

 M: None

 W: 11.1-11.5

 F: None

 Program 5

 (due 10/20)

7 10/13

 No Monday lecture--Columbus Day

 16. Pointers; pointer arguments

 17. PE3 (Functions)

 Lec. 16 questions

 Lec. 17 questions

 Code from PE3

 Lecture 16

 Lecture 17

 W: 8.1

 F: 8.2, 12.1-12.4

 
8 10/20

 18. Arrays

 19. 2-D arrays; arrays and functions

 20. Arrays and functions

 Lec. 18 questions

 Lec. 19 questions

 Lec. 20 questions

 Lecture 18

 Lecture 19

 Lecture 20

 M: 13.1-13.6

 W: 13.1-13.6

 F: None

 Program 6

 (due 10/30)

9 10/27

 21. Character arrays and strings

 22. More string examples

 23. File I/O

 Lec. 21 questions

 Lec. 22 questions

 Lec. 23 questions

 Code from Lec. 23

 Lecture 21

 Lecture 22

 Lecture 23

 M: None

 W: None

 F: 22.1-22.3

 Program 7

 (due 11/10)

 Program 7 starter file

10 11/3

 24. Exam 2 Preview

 Wednesday, 11/5: EXAM 2

 25. Character & line I/O

 Lec. 25 questions

 Lecture 24

 Lecture 25

 No new reading

 
11 11/10

 26. Exam 2 Review

 Wednesday, 11/12: Last day to withdraw

 27. PE4 (File I/O)

 28. Binary and hexadecimal values

 Lec. 27 questions

 Code from PE4

 Lec. 28 questions

 Lecture 26 (no slides)

 Lecture 27

 Lecture 28

 M: None

 W: None

 F: 22.4-22.5

 Program 8

 (due 11/20)

 Program 8 files

12 11/17

 29. Bitwise operators

 30. Structures

 31. Structures (continued)

 Lec. 29 questions

 Lec. 30 questions

 Lec. 31 questions

 Lecture 29

 Lecture 30

 Lecture 31

 M: 20.1

 W: 16.1-16.3

 F: 16.1-16.3

 Program 9 

(due 12/1)

 Program 9 files

13 11/24

 32. Dynamic memory allocation

 No Wednesday, Friday lecture--Thanksgiving Break

 Lec. 32 questions  Lecture 32

 M: 17.1-17.4

 
14 12/1

 33. Dynamic memory allocation (continued)

 34. Dynamically allocated data structures

 35. Dynamically allocated data structures (continued)

 Lec. 33 questions

 Lec. 34/35 questions

 Code from Lec. 34 & 35:

 Main program

 LLnode.h

 LLnode.c (soln)

 Lecture 33

 Lecture 34

 Lecture 35

 M: 17.5-17.6

 W: None

 F: None

 Program 10

 (due 5:00 PM, 12/18)

 Program 10 files

15 12/8

 36. Dynamically allocated data structures (continued)

 37. Exam 3 Preview

 Classes end Wednesday, 12/10

 Lec. 36 questions

 Lecture 36

 Lecture 37

 M: None

 W: None

 
  12/17

 EXAM 3: Wednesday, December 17, 8:00-11:00 AM

 Course evaluation form--must be completed before exam