CSCI 2170: Calendar/Timetable
MTSU
  CSCI 2170 - Computer Science II  
Calendar/Timetable

[Under Construction]
  Expect changes  
Spring 2022 - Section 003 (10014) & Section 005 (13536)
Remote Delivery Format

NOTE: Per departmental policy, students failing to attend the first two class meetings will be dropped from the course.

NOTE: In this course, midnight is defined to be 11:59pm.
     Date      Event or Assignment     (Entries are subject to change.)
Key How to interpret these calendar entries. If it says:
  • Read or View or Review or View VideoNote on a day's entry means that "going forward you are expected to read/view the item by next lecture." (It does not mean you need to have read/viewed the item by that day.)
  • Skim is a superficial or quick Read; see above.
  • Lecture viewing means we will watch that video as part of lecture that day.
  • Reference items are optional readings/viewings that provide more detail about something discussed in lecture. It is your choice if you want to look at them or not---but at least you've been given a source for additonal information.
  • CLA stands for Closed Lab Assignment and must be performed during the Closed Lab Period that day.
  • Exercise Due posted on a particular day (and time) means precisely that. You will need to scan ahead in the calendar to see what is being assigned and when it is due. Please remember too that exercises cannot be late (i.e., no submissions after the due date/time).
  • Projects Due posted on a particular day are due by midnight (defined to be 11:59pm) of that day. Late projects will be accepted subject to the following grade reduction schedule: 10% one day late, 20% two days late, and 30% three days late. Four days late and after, projects can no longer be accepted. Again, as with exercises, you will need to scan ahead in the calendar to see what is being assigned and when it is due.
  • Quizzes and Exams occur on the day they are listed.
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
Fibonacci 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)
  • You will be introduced to your lab assistant, Bailie Delpire, at the beginning of this special closed lab.
  • Next, some fun: the Surfing Competition!
  • Then, after the competition, Bailie will assist you (via Zoom) in installing either MobaXterm (Windows users) or Xquartz (Mac users).
    Microsoft Windows Users: Install MobaXterm on your personal computer system. Directions for how to do this are given in this MobaXterm Guide.
    Apple Mac OS X Users: Install Xquartz on your personal Mac. Directions for how to do this are given in this Using Xquartz Guide.
  • If you do not already have a personal account on the Computer Science servers (e.g. ranger), obtain one using the CS Account Management Utility.
    Note: We will be using course (C-number) accounts, not personal accounts, for work in this course but other CS courses/activities assume you have a personal account. CSCI 2170 course accounts will be distributed via email next week.
  • Be sure to update your D2L profile (the headshot and nickname stuff) as noted on the D2L news items titled "Required D2L profile updates you need to do" by next Monday.
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.
  • View CSCI 2170 Closed Lab Information
  • Do Lab 2v - Using UNIX and the vi Editor
    For this closed lab, you will be submitting an AnswerSheet2v.pdf file via the Gus Web interface and the lab2vex21.log log file (see Exercise 21) via the handin command. Once you have made those two submissions, you have completed the lab.

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 ]
View the LinkedIn Learning playlist (LIL video 21:55 - 7 segments) titled Review of C++ Expressions and Data Types prior to next class.
When asked for credentials enter your MTMail username@mtmail.mtsu.edu. Then type in your MTMail password.
When you are done, be sure to completely close your browser to get logged off; often, despite the My Learning Sign out menu item, you won't really be logged off and anyone can resume your session.

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.
Quiz 1 scheduled at end-of-lecture. Details in today's lecture.

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
• Exercise Due (by midnight): The Triangular Numbers Program (OLA201)

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)
View the playlist (LIL video 21:48 - 5 segments) titled C++ Functions prior to next class.
When asked for credentials enter your MTMail username@mtmail.mtsu.edu. Then type in your MTMail password.
When you are done, be sure to completely close your browser to get logged off.

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
• Exercise Due (by midnight): Square Triangular Numbers (OLA202)

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
• Exercise Due (by midnight): The Prime Number Program (OLA203)

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
Watch the LinkedIn Learning playlist (LIL video 20:31 - 6 segments) titled C Preprocessor before next class.
When you are done, be sure to completely close your browser to get logged off; often, despite the My Learning Sign out menu item, you won't really be logged off and anyone can resume your session.

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)
Quiz 2 scheduled at end-of-lecture. Details in today's lecture.

CLA10: Do Lab 12 - One-dimensional Arrays
Feb 23
• Exercise Due (by midnight): The Percentage Problem (OLA204)

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
• Exercise Due (by midnight): Spammer's Delight Program (OLA205)

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.
Quiz 3 scheduled at end-of-lecture. Details in today's lecture.

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
Exam 1
Connect to the course Zoom meeting AND also logon to D2L about 5 minutes before class starts. You will be given instructions/hints via Zoom before starting the exam. The exam is timed and closes 90 minutes after starting the exam. Stay connected to Zoom; if you have questions you may use the private chat feature to communicate with the instructor.
Do NOT use the TAB key in typing in code; unfortunately by default in most browsers "Pressing Tab on a webpage highlights links, as well as form fields" and that will mess up your answer.
Exam is open book and open notes. 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.

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
• Project Due (by midnight): The Recursive Function Suite (rfs) of Problems (OLA206)

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
• Exercise Due (by midnight): The DateType Problem (OLA207)

• (Optional) Extra Credit Exercise Announced: The Arbitrary-Precision Cardinal Numbers Program (OLA208)
   Due by midnight: April 16 (Easter Eve)

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
• Project Due (by midnight): The SortedList Class Problem (olaALL aka OLA209)
Refer to lecture notes for additional details.

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
Quiz 4 scheduled at beginning-of-lab.
Questions drawn mainly (but not exclusively) from VideoNotes on Memory Layout ( part 1 & part 2) and Dynamically Allocating an Array  plus material on C++ Classes and Pointers.

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
• (Optional) Extra Credit Exercise Due (by midnight): The Arbitrary-Precision Cardinal Numbers Program (OLA208)
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
Exam 2

• Project Due (by midnight): The Dummy-headed Circular Singly-linked List Problem (olaDLL aka OLA210)

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 Possible lecture overflow period:   No lecture


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


MTSU CS  |  |
https://www.cs.mtsu.edu/~untch/2170/calendar.html   (maintained by   Roland H. Untch)