Previous Lecture Lecture 16

Lecture 16, Tue 08/28

Final Review

Final Review

Final Exam: Thursday 8/30 @ 11am in lecture

Logistics
- Bring studentID and a writing utensil
	- Preferable ink or dark led
	- PLEASE WRITE LEGIBLY
- No electronic devices
- No book, no notes

Format
- Similar to midterms
- Possible types of questions
	- Short answers
		- Explain, describe, define, ...
	- Write some code
	- Fill in the blank
	- True / false, if false explain why
	- Given some code, write the output
- Should take ~ 1 hour, but you have the entire lecture to finish
- Covers a broad range of topics, but probably not everything.

Topics
- Cumulative, but with a heavier emphasis on post midterm 2 material (starting with Linked List)
- Covers material from lectures, reading, homeworks, and labs

Linked Lists
- Structure of linked list
	- Singly linked list with a head / tail reference
	- Node structure with data / next reference
- Maintenance of linked lists
	- Insertion (front / back)
	- Deletion
- Functions on linked lists
	- Find, etc.
	- Know how to "walk down" a list in a loop / recursively
- Analysis of linked lists vs arrays

C-strings
- Structure of C-strings
	- Differences between C-strings vs. char arrays vs. C++ strings
		- '\0' character
	- Manipulation of C-strings
	- Initialize
	- Indexing (also using pointer arithmetic)
- Functions on C-strings
	- strlen
	- strcmp
	- strcpy
	- strcat
	- isalpha

C++ Strings
- Methods of strings
	- length()
	- at()
	- []
	- empty()
	- substr
	- +
	- erase
	- tolower / toupper
	- find

Recursion
- Properties
- Base cases
- How to write recursive functions
- Affect recursion has on the stack
- Stack overflow

Vectors
- Conceptual understanding
	- Under-the-hood implementation with arrays
- Syntax
- Vector manipulation
	- Adding to a vector
	- modifying elements in vectors
	- how to initialize
- High-level understanding of templates "< >"
- Vector methods
	- size()
	- push_back()
- Range based loop