Syllabus Slides - In-class slide presentation from the first day of class
Python Reference - A guide to the basics of programming in Python
Algorithm Pseudocode Example/Slides - Examples of algorithm pseudocode for a simple programming project and an explanation of the scores.
Exam 1 Review - Exam 1 will be based on the material from Chapters 1, 2, 3, and 4 from the textbook. This list of topics is not exhaustive - there may be some topics covered on the exam that are not listed here. The exam will be held in class on Wednesday, March 1st.
Exam 2 Review - Exam 2 will be based on the material from Chapters 4, 5, and 6 from the textbook. This list of topics is not exhaustive - there may be some topics covered on the exam that are not listed here. The exam will be held in class on Wednesday, April 19th.
Final Exam Review - The Final Exam will be cumulative and based on the material from the entire course. The material will cover Chapters 1, 2, 3, 4, 5, 6, 7, and 14. This list of topics is not exhaustive - there may be some topics covered on the exam that are not listed here. The topics covered since the second in-class exam will be focused on more in the Final Exam. The exam will be held
1:00pm - 3:00pm on Friday, May 12th
Rectangle.py - A simple class to model a rectangle object.
RectangleList.py - An example illustrating how to use classes in a list.
savingsAccount.py - A class to model a bank savings account.
Chapter 2 - Data Abstraction
dieADT.txt - ADT for a die object.
dieADT_Implementation.py - Implementation of the die ADT object.
AddressBook.txt - Design a class (or classes) to solve this problem.
fraction.py - This class implements a fraction ADT. Here, addition is implemented as a class method instead of using operator overloading.
Rational.py - This class implements a fraction ADT. Here, addition is implemented using operator overloading.
Chapter 1 - Abstraction and Analysis
rectangle.py - An example of using docstrings.Basic Data Structures/Chapter 4
sequentialSearch.py - Tests the runtime of the sequential search algorithm.
binarySearch.py - Tests the runtime of the binary search algorithm.
bigOExamples.pdf - Examples of big-O algorithm analysis.
unorderedListADT.txt - ADT for an unordered list object.Chapter 3 - Container Classes
ListNode.py - Implementation of a node for a linked list.
LList.py - Implementation of a linked list.
dictionaryADT.txt - ADT for a Python dictionary data structure.
YahtzeeDice.py - Implementation of a list of (sortable) dice.
Chapter 5 - Stacks and Queues
Stack ADT - ADT for a stack data structure.Chapter 6 - Recursion
Stack.py - Implementation of a stack ADT.
stringReverse.py - Use a stack to reverse a string.
parensBalanceSimple.py - Use a stack to decide if parentheses are balanced.
parensBalance.py - Use a stack to decide if delimiters are balanced.
Queue ADT - ADT for a queue data structure.
Queue.py - Implementation of a queue ADT.
hotPotato.py - Use a queue to simulate the game hot pototo.
palindrome.py - Use a stack and queue to check if a word/phrase is a palindrome.
Data Structures - Which data structure is the best to use in these situations?
IntegerFactorial.py - Compute n! using a loop and using recursion.Chapter 7 - Trees
sumList.py - Compute the sum of numbers in a list using a loop and using recursion.
StringReversal.py - Use recursion to reverse a string.
numChoices.py - Use recursion to compute the number of possible combinations.
fibonacci.py - Compute the nth Fibonacci number using a loop and using recursion.
fastFib.py - Compute the nth Fibonacci number using recursion and memoization.
mergesort.py - Sort a list of numbers using recursion.
recursiveBinarySearch.py - Recursive version of the binary search algorithm.
Trees.pdf - Slides for the beginning of Chapter 7.Chapter 14 - Graphs
TreeNode.py - Implements a node for a tree structure.
BST.py - Implements a binary search tree.
BST_Example.py - An example program for searching a BST.
expressionTree.py - Use a binary tree to evaluate a mathematical expression.
HuffmanTree.py - Use a binary tree for data compression.
Graph ADT - ADT for a graph data structure.
Vertex.py - Implements a vertex for a graph.
Graph.py - Implements the Graph ADT.
graphExample.py - An example program for using a Graph.
Vertex.py - Implements a vertex for the unweighted shortest path problem.
UnweightedShortestPath.py - Implements the unweighted shortest path problem algorithm.
PriorityQueueExample.py - Example using a priority queue.
WeightedShortestPath.py - Implements the weighted shortest path problem algorithm.