Introduction to Program Design and Concepts

CSCE-121-{521, 522, 523, 524}
Texas A&M University, Spring 2019

Instructor

Michael R. Nowak
Graduate Teaching Fellow
Email: mnowak1[at]illinois[dot]edu
Office hours: Schedule an appointment

Teaching Assistant

Hang Li
Email: hangli[at]tamu.edu
Office: ETB-2016
Office Hours: W 08:55-11:25; F 08:55-10:25

Individual Homework

Note: weekly group homework is assigned during the lab sessions; see the lab column in the schedule below for postings of the group homework.
  • 8 Temperature Queries Pt. 2
    • Code Due: Fri, 19 Apr 2019 by 05:30
  • 7 Temperature Queries Pt. 1
    • Code Due: Fri, 12 Apr 2019 by 05:30
  • 6 Store Backend
    • Code Due: Fri, 29 Mar 2019 by 05:30
  • 5 Palindromes
    • Code Due: Fri, 15 Mar 2019 by 05:30
  • 4 Mountain Paths Pt. 2
    • Code Due: Fri, 22 Feb 2019 by 05:30
  • 3 Mountain Paths Pt. 1
    • Code Due: Fri, 15 Feb 2019 by 05:30
  • 2 Bulls and Cows
    • Code Due: Fri, 08 Feb 2019 by 05:30
  • 1 Quadratic Equation Solver
    • Code Due: Fri, 01 Feb 2019 by 05:30
  • 0 Annual Growth
    • Code Due: Fri, 25 Jan 2019 by 05:30

Schedule

Week Date Lecture Lab Reading Notes
1 Jan-14 No 8 am lecture in Zach-310 today; go to your assigned lab period (depending on your schedule, that's either today or tomorrow).
  1. Working on compute.cse.tamu.edu from own device
  2. Navigating the command line interface
  3. Working offline on your personal computer at home
-
1 Jan-16
  1. Course introduction
  2. The classic first program: Hello, World!
  1. Writing and compiling the classic first program: Hello, World!
  2. Flowcharts and pseudocode
Zybook: chpts. 1-3 -
1 Jan-18
  1. Software development process (S)
  2. Data representation (S)
Zybook: chpt. 4 -
2 Jan-21 No Lecture/Labs
2 Jan-23
  1. Finish-up: Data representation (S)
  1. Submitting to Mimir
  2. Data representation
Zybook: chpts. 5-6 -
2 Jan-25
  1. Objects, types, and values (S)
-
3 Jan-28
  1. Finish-up: Objects, types, and values (S)
  2. Expressions and statements (S)
  1. Coin machine
Zybooks: chpts. 7-10 -
3 Jan-30
  1. Finish-up: Expressions and statements (S)
  1. Operators
  2. STL vector
  3. STL random number generators
Zybooks: chpts. 11-13 -
3 Feb-01
  1. Compound types, compound data (S)
-
4 Feb-04
  1. Vector example
  1. Debug-it
Zybooks: chpt. 14 -
4 Feb-06
  1. Type conversions (S)
  2. Debugging (S)
  1. Decimal to base-b conversion
Zybooks: chpt. 15 -
4 Feb-08
  1. I/O streams (S)
Watch: I/O stair pattern example and Input validation example -
5 Feb-11
  1. Finish-up: I/O streams (S)
  1. Coordinate-points, parallel vectors, and iostreams - oh my
Skim: Customizing I/O
Zybooks: chpts. 16-17
-
5 Feb-13
  1. Function basics (S)
  1. Pass-by-value
  2. Pass-by-reference
  3. Pass-by-const-reference
Zybooks: chpts. 18-19
-
5 Feb-15
  1. Function argument passing (S)
Watch: Default arguments for function parameters example -
6 Feb-18
  1. Finish-up: Function argument passing (S)
  2. Functions and the stack (S)
  1. Utility functions
-
6 Feb-20
  1. Recursive functions (S)
  1. Draw recursive function call trees
Zybooks: chpts. 20-21 -
6 Feb-22
  1. Function overloading (S)
-
7 Feb-25
  1. Functions and exceptions (S)
  1. Hadamard Matrix
Watch: Recursive maze solver - analysis, recursive maze solver - design, recursive maze solver - design2, recursive maze solver - design3, recursive maze solver - implementation1, recursive maze solver - implementation2 -
7 Feb-27
  1. Default arguments for function parameters
  2. Finish-up: Function basics: Why functions (S)
  3. Review
  1. Exceptions with functions
Watch: Functions and exceptions example -
7 Mar-01 Exam 1 -
8 Mar-04
  1. Dynamic memory (S)
  1. Maximum number of characters per line
Zybooks: chpts. 22-23 -
8 Mar-06
  1. Dynamic memory cont.
  1. Reference and pointer review
  2. Dynamically allocated objects
Zybooks: chpts. 24-25 -
8 Mar-08
  1. User-defined types, classes and structs (S)
Zybooks: chpt. 26 -
9 Mar-18
  1. User-defined types, classes and structs cont.
  1. Class attributes: methods, getters & setters
  2. Class constructors
  3. Class attributes: set-once
-
9 Mar-20
  1. Operator overloading and user-defined types (S)
  1. operator== overloading
  2. operator+= overloading
  3. operator<< overloading
-
9 Mar-22
  1. Finish-up: Operator overloading and user-defined types (S)
  2. Review user-defined types
-
10 Mar-25
  1. Dynamic memory and user-defined types (S)
  1. Memory leaks
Zybooks: chpt. 27 -
10 Mar-27
  1. Finish-up: Dynamic memory and user-defined types (S)
  1. Dynamic array-backed stack
-
10 Mar-29
  1. Dynamic structures, singly linked lists (S)
-
11 Apr-01
  1. Finish-up: Dynamic structures, singly linked lists (S)
  1. Doubly linked list pt1
-
11 Apr-03
  1. TBD
  1. Doubly linked list pt2
-
11 Apr-05 Exam 2 -
12 Apr-08
  1. Inheritance (S)
  1. Binary search trees
Zybooks: chpt. 28 -
12 Apr-10
  1. Finish-up: Inheritance (S)
  1. Employee inheritance scheme
Zybooks: chpt. 29
Watch: Inheritance Pt. 1 example, Inheritance Pt. 2 example
-
12 Apr-12
  1. Inheritance example
-
13 Apr-15
  1. Inclusion polymorphism (S)
  1. Employee polymorphism
Zybooks: chpt. 30 -
13 Apr-17
  1. Inclusion polymorphism example
  1. Bank account polymorphism
Watch: Polymorphism example -
13 Apr-19 Reading Day -- No Lecture/Labs
14 Apr-22
  1. Templates (S)
  1. Generic linked list
Zybooks: chpt. 31 -
14 Apr-24
  1. Generic programming and iterator model
  1. Smart pointer
Zybooks: chpt. 32 -
14 Apr-26
  1. auto type deduction (S)
Zybooks: chpt. 33 -
15 Apr-29
  1. Review
  • No labs
Zybooks: chpt. 34 -
15 Apr-30
  1. Review
  • No labs
-
15 May-02 Final Exam (10:00 – 12:00 in ZACH-310)

Syllabus

Please click here to access the syllabus pdf file.