Calendar/Timetable |
Date | Event or Assignment (Entries are subject to change.) | ||
Key |
How to interpret these calendar entries. If it says:
| ||
Jan 19 |
Reference:
Sammet 1969 Programming Languages
Reference: TIOBE Programming Community Index Reference: RedMonk Programming Language Rankings - June 2021 Read: Preface Lecture use: DNA Read: On Control Structures Reference: Go To Statement Considered Harmful - A Case against the GO TO Statement by Edsger W. Dijkstra (1968) View VideoNotes: Flowcharting (SOWC video 3:22) and Pseudocode (SOWC video 1:35) Reference: Program Flowchart Symbols & Wikipedia article on Flowcharts Reference: Leonardo Fibonacci . Reference: Hindu-Arabic Numerals and Who invented the Zero? Read: Binary Numbers (Handout 914) Humor: There are 10 types of people in the world Reference: ASCII Code Chart NOTE: Wait until your scheduled closed lab to perform these tasks. CLA1: (CLA stands for Closed Lab Assignment)
| ||
Jan 24 |
Reference:
Compilation Phase Diagram
Lecture use: CSCI 1170/2170 Topics Lecture use: Unix Refresher Lecture Use: Unit 1 - Introduction to C++ View VideoNotes: Hello World and Using cout (SOWC video 5:17) Variable Definitions (SOWC video 5:30) C++11 Fixed Width Integer Types (AC6 video 4:23) Assignment Statements and Simple Math Expressions (SOWC video 6:54) Reading Input With cin (SOWC video 8:48) Read: Indenting and Spacing for C++. Never mix indentation conventions! In C++, indent using tabs. (In Python, indent using spaces.) Review: Chapter 1 (Introduction to Computers and Programming) [ Chapter 1 Slides ] Read: Chapter 2 (Introduction to C++) [ Chapter 2 Slides ] CLA2: NOTE: Wait until your scheduled closed lab to perform these tasks.
Should you want additional vi instruction, try this interactive vi tutorial. Reference: vi made less difficult document - short and useful | ||
Jan 26 | Bjarne Stroustrup's foray into humor
.
versus Guido
Lecture use: Programming Errors and Maintenance Example: $PUB/area.cpp View: Unit 2 & Unit 3 - Introduction to C++ Reference: Python's pass statement View VideoNotes: The if Statement (SOWC video 7:20) The if-else Statement (SOWC video 3:19) The if-else-if Statment (SOWC video 7:39) The while Loop (SOWC video 4:11) The for Loop (SOWC video 8:25) Read: Chapter 3 (Expressions and Interactivity) [ Chapter 3 Slides ] Read: Chapter 4 (Making Decisions) [ Chapter 4 Slides ]
Reference: Python and C++ (Partial) Syntax Comparison Optional: Review/Skim Sections 1 through 6 of A Transition Guide from Python 2.x to C++ This guide compares and contrasts C++ to Python and might prove to be a concise reference aid.
CLA3: NOTE: Wait until your scheduled closed lab to perform this task. Do Lab 3 - C++ Program Construction, Simple Data Types, and Strings For this closed lab, you will be submitting an AnswerSheet3.pdf file via the Gus Web interface and the lab3ex11.log log file via the handin command. Once you have made those two submissions, you have completed the lab. | ||
Jan 31 |
Lecture prologue:
An exercise in ratiocination
(What is ratiocination?)
Lecture viewing: Formatting Numbers with setprecision (SOWC video 3:12) View VideoNote: Format Console Output (YDL video 15:55) - start watching at timestamp 01:02 Study: $PUB/p2-8.cpp Lecture viewing: Figure the "Check" Example Skim: Chapter 5.1 through 5.10 (Loops) [ Chapter 5 Slides ] Read: Boolean Algebra - a 2 page handout that includes a review of DeMorgan's Laws (.pdf) View VideoNote: Solving the Time Calculator Problem (SOWC video 8:34) (Optional) Reference: Roles of Variables & Roles Summary fibonacci.cpp (side-by-side) (G List) (7 36) Skim: C++ Programming Standards - some stylistic conventions for your OLA assignments Skim/Reference: C++ Readability Guidelines - more detailed guidelines for your assignments Reference: C++ Operator Precedence table and C++ Operator Summary Optional: Self-test on Selections (Try this after reading Chapter 2 to check your understanding of selection. This self-test is from another textbook and has a few questions that either ask about topics we have not yet studied or will use terminology somewhat different than we have used; don't be alarmed if that happens---just skip those questions. In particular, skip questions 38 and 39.) Lecture epilogue: Check if you can access CLA4: NOTE: Wait until your scheduled closed lab to perform this task. Do Lab 4 - C++ Input and Using Functions For this closed lab, you will be submitting an AnswerSheet4.pdf file via the Gus Web interface and several script log files via the handin command. Once you have made those two submissions, you have completed the lab. | ||
Jan 31
(Census Date) |
University calendar:
Last day to drop without a grade
Lottery scholarship recipients cannot change enrollment status after this date and retain scholarships. | ||
Feb 2 |
Lecture viewing: Using Strings (YDL video 8:56) - start watching at timestamp 00:40 Lecture viewing: Reading Data From a File (SOWC video 11:11) Reference: A program to print integers from stdin and integers from an ifstream file View VideoNote: Using cin and getline with the string class (WJS video 8:21) - includes a presentation of .ignore() View VideoNote: Nested Loop Review Example (WJS video 9:26) View VideoNote: Sort Three Integers (YDL video 4:43) Read: Chapter 5.11 (Using Files for Data Storage) Read: Chapter 5.12 (break and continue)
Reference: Program Input (Dale/Weems Chapter 4) Slides (.pdf) Optional: C++ Loops Self-test CLA5: NOTE: Wait until your scheduled closed lab to perform this task. Do Lab 5 - File Operations For this closed lab, you will be submitting an AnswerSheet5.pdf file via the Gus Web interface and several script log files via the handin command. Once you have made those two submissions, you have completed the lab. | ||
Feb 7 |
Study:
$PUB/conflate.cpp
Lecture viewing: Functions and Arguments (SOWC video 7:32) Value-Returning Functions (SOWC video 6:37) View VideoNotes: Defining and Calling Functions (SOWCeo video 10:16) - start watching at timestamp 08:40 to learn about Function Prototypes Void Functions vs. Value-Returning Functions (YDL video 6:33) Solving the Markup Problem from Chapter 6 (SOWC video 8:32) Optional VideoNote: Project 3.9 solution, page 142 (WJS video 15:10) - introduces C++ "random" number functions Read: Chapter 3.9 (More Mathematical Library Functions) [ see also Savitch Chapter 3.1 Slides ] Read: Chapter 6 (Functions) (skip 6.6) [ Chapter 6 Slides ] Read: The Three Types of Software Maintenance CLA6: Do Lab 6 - Looping concepts and the While statement For this closed lab, you will be submitting an AnswerSheet6.pdf file via the Gus Web interface and several script log files via the handin command. Once you have made those two submissions, you have completed the lab. | ||
Feb 9 |
View VideoNotes: Scope Walkthrough (WJS video 10:55) Call by Reference and Call by Value (WJS-PS video 8:02) Project 4.4 solution, page 182 (WJS video 8:09) Skim: Function Basics (Savitch Chapter 3) Slides (.pdf) Skim: Functions (Dale/Weems Chapter 8) Slides (.pdf) Skim: Scope, Lifetime, and More on Functions (Dale/Weems Chapter 9) Slides (.pdf) Optional: Self-test on Loops CLA7: Do Lab 7 - More on Control Structures For this closed lab, you will be submitting an AnswerSheet7.pdf file via the Gus Web interface and several script log files via the handin command. Once you have made those two submissions, you have completed the lab. | ||
Feb 14 ❤ |
Definition: In computer programming, a
Sentinel Value
is a special value in the context of an algorithm which uses its presence as a
condition of termination, typically in a loop or recursive algorithm.
View VideoNotes: Accessing Array Elements with a Loop (SOWC video 3:59) Passing an Array to a Function (SOWC video 3:24) Read: Sections 7.1 - 7.7 (Introduction to Arrays) [ Chapter 7 Slides ] Reference: Savitch Chapter 5 Slides (.pdf) CLA8: NOTE: Wait until your scheduled closed lab to perform this task. Do Lab 8 - C++ void Functions, Value & Reference Parameters, Local Variables For this closed lab, you will be submitting an AnswerSheet8.pdf file via the Gus Web interface and several script log files via the handin command. Once you have made those two submissions, you have completed the lab. | ||
Feb 16 |
Optional: Self-test on Functions (Try this after completing Lab 8 to check your understanding of C++ functions. This self-test is from another textbook and has a few questions that either ask about topics we have not yet studied or will use terminology somewhat different than we have used; don't be alarmed if that happens---just skip those questions. In particular, skip questions 9, 17, 18, 20-24, and 35.) Lecture viewing: Linear Search Animation Passing an Array to a (reverse) Function (YDL video 6:02) Read: Enumerations Reference: The Conditional (aka Ternary) Operator View VideoNote: Selection Sort (YDL video 6:08) and view the Selection Sort Animation Reference: $PUB/selectionSort.cpp
CLA9: Do Lab 9 - Scope, Lifetime, and More on Functions For this closed lab, you will be submitting an AnswerSheet9.pdf file via the Gus Web interface and several script log files via the handin command. Once you have made those two submissions, you have completed the lab. | ||
Feb 21 |
Review of the C Preprocessor video you watched:
Lecture use: C++ Compilation and Linking Read: The C Preprocessor Skim: A C Preprocessor tutorial (Essentially the same material as in lecture) Reference: Preprocessor Directives (A short reference) Reference: GNU C Preprocessor (A comprehensive reference) Lecture viewing: The Binary Search (SOWC video 9:59) and Binary Search Animation View VideoNote: Array Example--Weather Statistics Problem (SOWC video 15:11) View VideoNote: Array Example--Solving the Chips and Salsa Problem (SOWC video 14:02)
CLA10: Do Lab 12 - One-dimensional Arrays | ||
Feb 23 |
Optional (A great review with a delightful British-accented narration): C Preprocessor Directives - (YouTube video 5:26) The assert macro example Lecture use: Bubble Sort Animation Read: Understanding C-strings Read: Getting Command-Line Arguments in C++ (Handout 24) [Example program that uses command-line arguments.] Read: Section 10.1 - 10.5 (C strings) [ Chapter 10 Slides ] Reference: C-string example Reference: Functions for C-style String Manipulation Reference: ASCII Code Chart Optional: The Most Expensive One-byte Mistake Do you agree with the author? View VideoNote: Dangers of strcpy (WJS video 9:32) View VideoNote: Using a mix of the extraction operator and getline for string input (WJS video 7:54) View VideoNote: More about the string class (SOWC video 4:01) Read: Section 10.7 (More about the C++ string Class) Reference: Savitch Chapter 9 Slides (.pdf) CLA11: Do Lab 13 - Working with Character Data and C-style Strings | ||
Feb 28 |
Prime number review.
Optional (but entertaining) view: Prime Numbers (Socratica YT 6:01) Lecture viewing: Two-dimensional (2D) Arrays (SOWC video 16:07) Using a Two-dimensional (2D) Array (YDL video 10:11) Passing 2D Arrays to Functions (YDL video 3:14) Read: Sections 7.8 - 7.9 (Two-dimensional and Multi-dimensional Arrays) [ Chapter 7 Slides ] Reference: Savitch Chapter 6 Slides (.pdf) Reference: Typedefs, enums, and structs (Dale/Weems Chapter 10) Slides (.pdf) - ignore slides on pages 13-16 for now Reference: Review of Arrays and Functions - good exam review material Reference: Arrays and Two-Dimensional Arrays (Dale/Weems Chapter 11) Slides (.pdf) CLA12: Do Lab 14 - Two-dimensional Arrays | ||
Mar 2 |
Lecture viewing: Creating a Structure (SOWC video 7:46) Passing a Structure to a Function (SOWC video 5:58) Read: Chapter 11 (Structured Data) (skip 11.9 & 11.10) [ Chapter 11 Slides ] Lecture use: The Binary-to-Decimal Number Problem Look over: Exam 1 Review Sheet Reference: Names of Arithmetic Operands Reference: Linux Runs on All of the World's Top 500 Supercomputers Optional Self-tests: Elementary C++ (Declarations, expression evaluation, etc.) Mathematical Functions, Characters, and Strings Single-Dimensional Arrays and C-Strings Multidimensional Arrays These self-tests are from another textbook and have a few questions that either ask about topics we have not yet studied or will use terminology somewhat different than we have used; don't be alarmed if that happens---just skip those questions.
CLA13: Do Lab 11 - C++ Structured Data Types | ||
Mar 7-12 | University calendar: No Classes - Spring Break | ||
Before Exam 1 |
Optional:
Should you be concerned about your mastery of the C++ language this course
has covered to date, or if you just would like a good review, you might
want to view a LinkedIn Learning video playlist I've curated called
CS: C++ Review (LIL 12 video playlist 1:04:00) When you are done, be sure to completely close your browser to get logged off; despite LinkedIn Learning's Sign out menu item you won't really be logged off and anyone can log into your session. | ||
Mar 14 |
Lecture viewing: Why recursion? (YouTube video 22:28) (Stop at 16:22 and switch to C++) Tower of Hanoi-solution (YouTube video 4:13) Read: Chapter 20 (Recursion) sections 20.1-20.4 and 20.6. [ Chapter 20 Slides ] View VideoNote: Solving the Recursive Multiplication Problem (SOWC video 4:43) Review: C++ Programming Standards - stylistic conventions for your OLA assignments Read: Hierarchy Charts See: Modules and Hierarchy Charts (.ppt) Example: Hurdles Hierarchy Chart hurdles.cc Read: RCS: Why and How and Skim: RCS man page (abridged) CLA14: Do Lab 10 - Recursion Skip exercises 6 and 7. | ||
Mar 16 |
Read: Chapter 13 (Introduction to Classes) [ Chapter 13 Slides ] Reference: Savitch Chapter 6 on Structures and Classes Slides (.pdf) Reference: Savitch Chapter 7 on Constructors and Other Tools Slides (.pdf) CLA15: Do Lab 15 - Enumerated Types, typedef, Structs, and Array of Structs | ||
Mar 21 |
Exam 1 Review (log on to D2L) Reference: A nice review of C++ structs - courtesy of Dr. Cen Li Lecture use (Date struct type): DateType.h and DateType.cpp and DateTypeExample.cpp Reference: How to Use Your Knuckles to Remember the Number of Days in Each Month Read: Write a program to calculate pow(x,n) Read: What is indirect recursion CLA16: Start Lab 16 - C++ Classes | ||
Mar 23 |
Reference: Overloaded Functions and Function Signatures Lecture use: The make utility Read: Introduction to UNIX make (Optional) Reference: A Longer Introduction to the UNIX make Utility Lecture viewing: Objects and Classes Using Classes (YDL video 4:42) Writing a Class (SOWC video 16:57) Instantiating a Class - creating an object (SOWC video 10:39) Separating Declaration from Implementation (YDL video 4:41) Reference: Savitch Chapter 6 Slides (.pdf) Reference: Savitch Chapter 7 Slides (.pdf) Lecture use (Date struct type): DateType.h and DateType.cpp and DateTypeExample.cpp Lecture use: Julian Calendar Lecture use (Date class): Date.h and Date.cpp and DateClientMain.cpp and makefile View LinkedIn Learning Video: C++ Pointers (LIL 15 video course 53:55) Please view before we start on this topic. Watching this video will give you "head-start" on our next major topic. CLA17: Finish Lab 16 - C++ Classes | ||
Mar 27 | University calendar: Last day to withdraw from a course without Department Chair's signature | ||
Mar 28 |
Reference:
Using typedef with arrays
(Illustrated using a C example)
Lecture use: sphereClass - sphereClass.h and sphereClass.cpp and sphereExample.cpp Lecture viewing: Employee Class Problem Employee Class Problem (SOWC video 14:58) View VideoNote: Constructor Walkthrough (WJS video 9:54) Read: Sections 14.3-14.5 (More about Classes) [ Chapter 14 Slides ] Reference: Savitch Chapter 7 Slides (.pdf) Lecture use: Hospital Beds List example Reference (version #1): arlist.h and arlist.cpp and main.cpp and makefile Read: Array-based Linked List Please read before next lecture. Lecture use (Sorted List class): SLC.h and SortedListTester.cpp and SLC.cpp and makefile CLA18: Start Lab 17 - C++ Classes Continued | ||
Mar 30 |
Lecture viewing:
Linked List stored in an array snapshots
Reference (version #2 w/dummy node): arlist.h and arlist.cpp and main.cpp and makefile Read: Array-based Linked List Please reread after this lecture. Reference: Array-based Linked List discussion with lots of code (Simulated Pointer or Cursor-based Linked List are other terms for this implementation technique) Lecture viewing: Case Study: The Loan Class (YDL video 5:05) Lecture viewing: Operator Overloading (SOWC video 9:05) Review: Section 14.5 (Operator Overloading) Reference: Savitch Chapter 8 Slides (.pdf) Read: Memory Layout of a C Program (Memorize Figure 7.6) View VideoNote: Memory Layout (part 1) (UTCS video 2:25) View VideoNote: Memory Layout (part 2) (UTCS video 3:03) (Optional VideoNote): Memory Regions (YT 33:28) Read: Pointers - an MIT handout Read: Chapter 9 (Pointers) [ Chapter 9 Slides ] Reference: Savitch Chapter 10 Slides (.pdf) (Optional) Tutorials: A First Lesson in Pointers Pointers with Arrows Dynamic Data and Pointers Arrays are Pointers Read: Sections 18.1-18.2 (Linked Lists) [ Chapter 18 Slides ] (Optional) Reference: Carrano Linked Lists Slides (.pdf) (Optional) Reference: Savitch Chapter 17 Slides (.pdf) CLA19: Possible lecture overflow time Finish Lab 17 - C++ Classes Continued | ||
Apr 4 |
Lecture: Discuss olaALL
(Namanh Kapur video clip)
View VideoNotes: Dynamically Allocating an Array (SOWC video 5:04) Using Pointers Directly in lieu of Reference Parameters (SOWC video 7:11) Pointer Arithmetic (WJS video 8:23) Writing a C-string Handling Function (SOWC video 6:51) Illustrations: Dummy-headed Anchored Singly-linked List Circular Singly-linked List Dummy-headed Circular Singly-linked List Dummy-headed Circular Doubly-linked Lists Reference: Carrano Linked List Key Concepts Slides (.pdf) Reference: Carrano Linked Lists discussion View VideoNotes: Example of Shallow Copy vs Deep Copy (WJS video 17:22) Destructors and Copy Constructors (YDL video 7:30) CLA20: Start Lab 18 - Memory, Pointers, and Linked Lists | ||
Apr 6 |
Illustrations (reprise): Dummy-headed Anchored Singly-linked List Circular Singly-linked List Dummy-headed Circular Singly-linked List Dummy-headed Circular Doubly-linked Lists Cat Class Lecture viewing: Template Basics (YDL video 4:39) Class Templates (YDL video 4:01) The Vector Class (YDL video 5:07) Reference: The Josephus Problem - Wolfram and Wikipedia and program Read: Sections 16.2 (Function Templates) and 16.4 (Class Templates) [ Chapter 16 Slides ] Read: Sections 17.1 (STL intro) and Section 17.3 (Vectors) [ Chapter 17 Slides ] Reference: Savitch Chapter 16 (Function Templates) Slides (.pdf) View VideoNote: Use of const Explained (WJS video 6:64) Optional Self-tests: Objects and Classes Object-Oriented Thinking Pointers and Dynamic Memory Management These self-tests are from another textbook and have a few questions that either ask about topics we have not yet studied or will use terminology somewhat different than we have used; don't be alarmed if that happens---just skip those questions. CLA21: Possible lecture overflow time
Finish Lab 18 - Memory, Pointers, and Linked Lists | ||
Apr 11 |
Lecture use:
Arrays & Vectors Recap
Lecture viewing: Operator Overloading redux (YDL video 2:34) Coupon Collector's Problem - a Vector program (YDL video 5:36) Reference: rand() and srand() in C/C++ Lecture Use Only: Practice Questions Read: Section 19.3 (The STL stack container) [ Chapter 19 Slides ] Reference: The stack Standard Template Library Class (.pdf) (Optional) Reference: Slides about Stacks (Optional) Advanced Reference: ADTs and the STL (Dale/Weems Chapter 17) Slides (.pdf) (Optional) Advanced Reference: C++ Data Structures and Algorithms Cheat Sheet Lecture use: Linked List Recap (from Carrano) CLA22: Start Lab 19 - Linked List Variations | ||
Apr 13 |
Lecture Use Only:
Insert Node code
Lecture viewing: Solving the Backward String Problem (SOWC video 5:23) Reference: Wikipedia: Reverse Polish Notation (Jan Łukasiewicz pronunciation in Polish) HP 35s Scientific Calculator RPN - Reverse Polish Notation (.pdf) Lecture viewing: Storing Objects in an STL Stack (SOWC video 3:05) Solving the File Reverser Problem - Chapter 19 #9 (SOWC video 7:42) View VideoNote: Reducing a Problem with Recursion (SOWC video 10:25) View these two related VideoNotes on Operator Overloading: The Rational Class Example (YDL video 8:29) Overloading the < and [] Operators (YDL video 3:41) Read: Section 19.6 The STL deque and queue Containers [ Chapter 19 Slides ] CLA23: Finish Lab 19 - Linked List Variations | ||
Apr 16 |
| ||
Apr 17 | Easter Sunday | ||
Apr 18 | Tax Day 2022 in United States | ||
Apr 18 |
Lecture viewing:
Storing Objects in an STL Queue (SOWC video 2:51) Lecture use: Program Memory Accesses Example - Graphic illustration of Locality of Reference phenomenom Curate defined Lecture viewing (and a little entertainment): What happens if you've had way too much caffeine and make a video? Sample one of David Scot Taylor's "Algorithms with Attitude" lectures: Stacks, Queues, and Deques (YouTube video 6:17) Example of using deque type Deque std::deque Lecture viewing: C++ STL Deque (LIL video 1:58) Lecture viewing: Vector vs. Deque (Part I) (YouTube video 10:38) Vector vs. Deque (Part II) (YouTube video 8:24) Lecture Use: Pointer and Linked List Quiz Look over: Exam 2 Review Sheet CLA24: Start Lab 20 - The Stack ADT | ||
Apr 20 |
CLA25: Finish Lab 20 - The Stack ADT | ||
Apr 25 |
Lecture viewing:
Throwing an Exception (SOWC video 6:12) Handling an Exception (SOWC video 14:33) Read: Handling the bad_alloc Exception View VideoNote: Throwing and Handling Exceptions (SOWC video 10:14) Reference: Gaddis SOWC++ Chapter 16 (Exceptions and Templates) Slides (.pdf) (Optional) VideoNote: C++ Exceptions Example (WJS video 12:00) Reference: Savitch Chapter 18 (Exception Handling) Slides (.pdf) Look over: Final Exam Review Sheet Lecture viewing (time permitting): Doubly-Linked Lists - Saldina Nurak (YT video 19:06) Recommended: Learn Git CLA26: Start Lab 21 - The Queue ADT (Notice: No Gus submissions after midnight April 27th!) | ||
Apr 27 |
CLA27: Finish Lab 21 - The Queue ADT (Notice: No Gus submissions after midnight April 27th! That means you must submit your Lab 21 stuff prior to midnight tonight!) | ||
Apr 27 |
University calendar:
Last Day of Classes
No Gus submissions possible after today (4/27) midnight. | ||
Apr 28 | University calendar: Study Day (some Study Day humor) | ||
JIT (Just In Time): Everything below this line is subject to last moment changes | |||
May 2 (005) |
Final Exam -
Section 005: 3:30pm-5:30pm
(Same protocol as with Exam 1 & 2. Log on to Zoom & D2L) No network use except to use D2L and Zoom. Work solo. You know getting another person to give you the answers (or getting them off the web or by using ranger) is cheating, so please don't. | ||
May 4 (003) |
Final Exam -
Section 003: 12:30pm-2:30pm
(Same protocol as with Exam 1 & 2. Log on to Zoom & D2L) No network use except to use D2L and Zoom. Work solo. You know getting another person to give you the answers (or getting them off the web or by using ranger) is cheating, so please don't. | ||
Looking to the Future |
|