Introduction to Program Design and Concepts

CSCE-121-{509,510,511,512}
Texas A&M University, Spring 2018

Instructor

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

Teaching Assistant

Xien Thomas
Email: xien.thomas[at]tamu.edu
Office: RDMC-021
Office Hours: M/T 12:00p-1:30p

Senior Grader

Murat Russell
Email: mrussell[at]tamu.edu

Homework

  • Temperature Queries
    • Design Due: Sunday, April 15, 2018
    • Code Due: Friday, April 27, 2018
  • Store Backend (Part 2)
    • Design Due: Sunday, April 8, 2018
    • Code Due: Friday, April 13, 2018
  • Store Backend (Part 1)
    • Design Due: Sunday, March 25, 2018
    • Code Due: Friday, March 30, 2018
  • Palindromes
    • Design Due: Sunday, March 18, 2018
    • Code Due: Friday, March 23, 2018
  • Mountain Paths (Part 2)
    • Design Due: Sunday, March 4, 2018
    • Code Due: Friday, March 9, 2018
  • Mountain Paths (Part 1)
    • Design Due: Sunday, February 25, 2018
    • Code Due: Friday, March 2, 2018
  • Bulls & Cows (Part 2)
    • Design Due: Sunday, February 11, 2018
    • Code Due: Friday, February 16, 2018
  • Bulls & Cows (Part 1)
    • Design Due: Sunday, February 4, 2018
    • Code Due: Friday, February 9, 2018
  • Quadratic Equation Solver
    • Design Due: Sunday, January 28, 2018
    • Code Due: Friday, February 2, 2018
  • Annual Growth
    • Code Due: Friday, January 26, 2018

Schedule

Week Date Lecture Lab Reading Notes
1 Jan-17
  1. Course introduction
  1. Claim your computer science and engineering (cse) accounts
  2. Connecting to the departmental servers in lab
  3. Navigating the command line interface
  4. Flowcharts and pseudocode
Syllabus -
1 Jan-19
  1. The classic first program: Hello, World!
  2. Software development process (S)
  3. Quadratic equation solver design and analysis (S)
Zybooks: Chpts. 1-2
Stroustrup: Chpt. 1 (skim), Sections 4.1-4.2, 6.1-6.2
Please make sure you have all challenge and participation activities for Zybook chpts. 1-2 completed by noon this day.
2 Jan-22
  1. Data representation (S)
  1. Working on the RDMC lab computers
  2. Writing and compiling your first program
  3. Working on compute.cse.tamu.edu from home
  4. Working offline on your personal computer at home (optional)
Zybooks: Chpts. 3
Please make sure you have all challenge and participation activities for Zybook chpt. 3 completed by noon this day.
2 Jan-24
  1. Finish-up data representation
  2. Objects, types, and values (S)
  1. Submitting to Vocareum for autograding
  2. Data representation
Zybooks: Chpts. 4-5
Stroustrup: Sections 3.1-3.8
Please make sure you have all challenge and participation activities for Zybook chpt. 4-5 completed by noon this day.
2 Jan-26
  1. Finish up objects, types, and values
Zybooks: Chpts. 6-7
Stroustrup: Sections 4.3-4.4
Please make sure you have all challenge and participation activities for Zybook chpt. 6-7 completed by noon this day.
3 Jan-29
  1. Expressions and statements (S)
  1. Collaborative editor
  2. Coin machine
Zybooks: Chpts. 8-9
Stroustrup: Section 3.9
Please make sure you have all challenge and participation activities for Zybook chpt. 8-9 completed by noon this day.
3 Jan-31
  1. Compound types, compound data (S)
  1. Operators
  2. STL vector
  3. STL random number generators
Zybooks: Chpts. 10-11
Stroustrup: Sections 4.6, 5.9
Please make sure you have all challenge and participation activities for Zybook chpt. 10-11 completed by noon this day.
3 Feb-02
  1. Finish-up compound types, compound data
  2. Type conversions (S)
Zybooks: Chpt. 12 Please make sure you have all challenge and participation activities for Zybook chpt. 12 completed by noon this day.
4 Feb-05
  1. Sorting (S)
  2. Searching (S)
  1. Decimal to base-b conversion
Stroustrup: Sections 2.1-2.4, 5.6.2, 5.6.3, 5.6.4, 5.7
4 Feb-07
  1. Finish-up searching and sorting
  2. Software and errors (S)
  1. Debugging (S)
  2. Finish-up decimal to base-b conversion
  3. Collaborative Editor
4 Feb-09
  1. Finish-up software and errors
  2. Type safety (S)
Zybooks: Chpt. 13 Please make sure you have all challenge and participation activities for Zybook chpt. 13 completed by noon this day.
5 Feb-12
  1. I/O Streams (S)
  1. Debug-it
Stroustrup: Chpt. 10
5 Feb-14
  1. Customizing I/O (S)
  1. Coordinate-points, parallel vectors, and iostreams - oh my
Stroustrup: Chpt. 11
5 Feb-16
  1. Finish-up customizing I/O
6 Feb-19 Review
  1. Maximum number of characters per line
6 Feb-21
  1. Exam 1
Lab Holiday (no labs)
6 Feb-23
  1. Function basics (S)
Zybooks: Chpt. 14
Stroustrup: 8.1-8.4
Please make sure you have all challenge and participation activities for Zybook chpt. 14 completed by noon this day.
7 Feb-26
  1. Function argument passing (S)
  1. Pass-by-value
  2. Pass-by-reference
  3. Pass-by-const-reference
Zybooks: Chpt. 15 Please make sure you have all challenge and participation activities for Zybook chpt. 15 completed by noon this day.
7 Feb-28
  1. Function overloading (ad hoc polymorphism) (S)
  2. Functions and the call stack (S)
  1. Utility functions
Zybooks: Chpt. 16
Stroustrup: 8.5-8.7 (skip 8.5.8)
Please make sure you have all challenge and participation activities for Zybook chpt. 16 completed by noon this day.
7 Mar-2
  1. Recursive functions (S)
Zybooks: Chpt. 17
Watch: Default arguments
Please make sure you have all challenge and participation activities for Zybook chpt. 17 completed by noon this day.
8 Mar-5
  1. Functions and exceptions (S)
  1. Recursive function calls
Zybooks: Chpts. 18-19
Watch: default arguments, recursive maze solver - analysis, recursive maze solver - design, recursive maze solver - design2, recursive maze solver - design3, recursive maze solver - implementation1, recursive maze solver - implementation2
Please make sure you have all challenge and participation activities for Zybook chpts. 18-19 completed by noon this day.
8 Mar-7
  1. Exceptions with functions example
  1. Exceptions with functions
Zybooks: Chpt. 20
Watch: Functions and exceptions example
Please make sure you have all challenge and participation activities for Zybook chpt. 20 completed by noon this day.
functions and exceptions code1, functions and exceptions code2, functions and exceptions code3
8 Mar-9
  1. Dynamic memory introduction and motivation
Zybooks: Chpt. 21 Please make sure you have all challenge and participation activities for Zybook chpt. 21 completed by noon this day.
9 Mar-19
  1. Dynamic memory (S)
  1. Reference and pointer review
  2. Dynamically allocated objects
9 Mar-21
  1. Finish-up dynamic memory
  2. User-defined types, classes and structs (S)
  1. Hadamard matrix
Zybooks: Chpt. 22 Please make sure you have all challenge and participation activities for Zybook chpt. 22 completed by noon this day.
9 Mar-23
  1. Finish-up user-defined types, classes and structs
Zybooks: Chpt. 23
Watch: Multiple constructor example, Return by reference example
Please make sure you have all challenge and participation activities for Zybook chpt. 23 completed by noon this day.
Return by reference example - skeleton code, return by reference example - final code, multiple constructor example - skeleton code, multiple constructor example - final code
10 Mar-26
  1. Operator overloading and user-defined types (S)
  1. Class attributes, methods, getters & setters
  2. Class attributes: set-once
  3. Class constructors
Zybooks: Chpt. 24 Please make sure you have all challenge and participation activities for Zybook chpt. 24 completed by noon this day.
10 Mar-28
  1. Dynamic memory and user-defined types (S)
  1. operator== overloading
  2. operator+= overloading
  3. operator<< overloading
Zybooks: Chpt. 25 Please make sure you have all challenge and participation activities for Zybook chpt. 25 completed by noon this day.
10 Mar-30 No Lecture: Reading Day
11 Apr-2 CANCELED
  1. Dynamic array-backed stack
11 Apr-4
  1. Exam 2
  1. Memory leaks
11 Apr-6
  1. Finish-up dynamic memory and user-defined types
12 Apr-9
  1. Dynamic structures, singly linked lists (S)
  1. Doubly linked list pt1
12 Apr-11
  1. Singly linked list example
  1. Doubly linked list pt2
12 Apr-13
  1. Finish-up singly linked list example
13 Apr-16
  1. Inheritance (S)
  1. Binary search trees
Zybooks: Chpt. 26 Please make sure you have all challenge and participation activities for Zybook chpt. 26 completed by noon this day.
13 Apr-18
  1. Finish-up inheritance
  1. Finish-up binary search trees
Zybooks: Chpt. 27
Watch: Inheritance example pt1
Inheritance example pt2
Please make sure you have all challenge and participation activities for Zybook chpt. 27 completed by noon this day.
Inheritance example pt1 code, inheritance example pt2 code
13 Apr-20
  1. Inclusion polymorphism (S)
Zybooks: Chpt. 28
Watch: Inclusion polymorphism example
Please make sure you have all challenge and participation activities for Zybook chpt. 28 completed by noon this day.
Inclusion polymorphism example skeleton code, inclusion polymorphism example final code
14 Apr-23
  1. Inclusion polymorphism example
  1. Employee inheritance scheme
14 Apr-25
  1. Parametric polymorphism (S)
  1. Inclusion polymorphism
Zybooks: Chpt. 29 Please make sure you have all challenge and participation activities for Zybook chpt. 29 completed by noon this day.
14 Apr-27
  1. Finish-up parametric polymorphism
Zybooks: Chpt. 30 Please make sure you have all challenge and participation activities for Zybook chpt. 30 completed by noon this day.
15 Apr-30
  1. Standard template library intro and model (S)
No labs Zybooks: Chpt. 31 Please make sure you have all challenge and participation activities for Zybook chpt. 31 completed by noon this day.
15 May-1
  1. Review
No Labs
15 May-3
  1. Final Exam (10:00-12:00 in HRBB-124)

Syllabus

Please click here to access the syllabus pdf file.