Introduction to Program Design and Concepts

CSCE-121-{521, 522, 523, 524}
Texas A&M University, Fall 2018

Instructor

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

Teaching Assistant

Seth Polsley
Email: spolsley[at]tamu.edu
Office: Teague-326
Office Hours: W 14:00-16:00; F 12:30-14:30

Homework

  • 8 Temperature Queries Pt. 2
    • Code Due: Tue, 04 Dec 2018 by 08:00
  • 7 Temperature Queries Pt. 1
    • Code Due: Fri, 16 Nov 2018 by 17:30
  • 6 Store Backend
    • Code Due: Fri, 9 Nov 2018 by 17:30
  • 5 Palindromes
    • Code Due: Fri, 26 Oct 2018 by 17:30
  • 4 Mountain Paths Part 2
    • Code Due: Fri, 19 Oct 2018 by 17:30
  • 3 Mountain Paths Part 1
    • Code Due: Fri, 5 Oct 2018 by 17:30
  • 2 Bulls and Cows
    • Code Due: Fri, 28 Sep 2018 by 17:30
  • 1 Quadratic Equation Solver
    • Code Due: Fri, 14 Sep 2018 by 17:30
  • 0 Annual Growth
    • Code Due: Fri, 7 Sep 2018 by 17:30

Schedule

Week Date Lecture Lab Reading Notes
1 Aug-28
  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 Aug-30
  1. Computer architecture and compilation process (S)
  2. Software development process (S)
  3. Analysis and design (S)
  1. Working on the RDMC lab computers
  2. Writing and compiling the classic first program: Hello, World!
  3. Working on compute.cse.tamu.edu from home
  4. Working offline on your personal computer at home (optional)
Zybooks: Chpts. 1, 2, 3
2 Sep-04
  1. Data representation (S)
  1. Submitting to Mimir
Zybooks: Chpt. 4
2 Sep-06
  1. Objects, types, and values (S)
  2. Memory diagrams
  1. Data representation
Zybooks: Chpts. 5, 6
3 Sep-11
  1. Expressions and statements (S)
  2. Debugging (S)
  1. Coin machine
Zybooks: Chpts. 7, 8, 9, 10
3 Sep-13
  1. Compound types, compound data (S)
  1. Operators
  2. STL vector
  3. STL random number generators
Zybooks: Chpts. 11, 12, 13
4 Sep-18
  1. Type conversions (S)
  2. Errors (S)
  1. Decimal to base-b conversion
Zybooks: Chpt. 14
Watch: I/O stair pattern example and Input validation example
4 Sep-20
  1. I/O streams (S)
  1. Coordinate-points, parallel vectors, and iostreams - oh my
Zybooks: Chpt. 15
5 Sep-25
  1. Function basics (S)
  2. Function argument passing (S)
  1. Pass-by-value
  2. Pass-by-reference
  3. Pass-by-const-reference
Zybooks: Chpts. 16, 17
Skim: Customizing I/O (S)
5 Sep-27
  1. Review function basics and argument passing
  2. Functions and the stack (S)
  1. Utility functions
Zybooks: Chpts. 18, 19
Watch: Default arguments
6 Oct-02
  1. Recursive functions (S)
  1. Draw recursive function call trees
Zybooks: Chpt. 20
6 Oct-04
  1. Functions and exceptions (S)
  1. Exceptions with functions
Zybooks: Chpt. 21
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, functions and exceptions example
7 Oct-09
  1. Exam 1
  1. Debug-it
7 Oct-11
  1. Function overloading (S)
  2. Dynamic memory (S)
  1. Reference and pointer review
  2. Dynamically allocated objects
Zybooks: Chpt. 22-23
8 Oct-16
  1. User-defined types, classes and structs (S)
  1. Class attributes, methods, getters & setters
  2. Class attributes: set-once
  3. Class constructors
Zybooks: Chpt. 24-25
8 Oct-18
  1. Operator overloading and user-defined types (S)
  1. Overloading '==' Operator
  2. operator+= overloading
  3. operator<< overloading
Zybooks: Chpt. 26
9 Oct-23
  1. Dynamic memory and user-defined types (S)
  1. Dynamic array-backed stack
  2. Memory leaks
-
9 Oct-25
  1. Dynamic structures, singly linked lists (S)
  1. Doubly linked list pt1
Zybooks: Chpt. 27
10 Oct-30
  1. Finish-up dynamic structures, singly linked lists
  1. Doubly linked list pt2
-
10 Nov-01
  1. Singly linked list example
  1. Start binary search trees
-
11 Nov-06
  1. Finish-up singly linked list example; review for exam
  1. Finish binary search trees
-
11 Nov-08
  1. Exam 2
  1. Hadamard matrix
12 Nov-13
  1. Inheritance (S)
  1. Employee inheritance scheme
Zybooks: Chapts. 28-29
Watch: Inheritance Pt. 1 example, Inheritance Pt. 2 example
12 Nov-15
  1. Inclusion polymorphism (S)
  1. Adding polymorphic functions to our employee inheritance scheme
Zybooks: Chapt. 30
Watch: Inclusion polymorphism example
13 Nov-20 No Lecture/Labs
13 Nov-22 No Lecture/Labs
14 Nov-27
  1. Parametric polymorphism (S)
  1. Labs canceled
Zybooks: Chapts. 31, 32
14 Nov-29
  1. Sorting (S)
  2. Searching (S)
  1. Generic linked list
Zybooks: Chapts. 33, 34
15 Dec-04
  1. Review
  1. Smart Pointer
Dec-10 Final Exam (13:00 – 15:00 in ZACH-350)

Syllabus

Please click here to access the syllabus pdf file.