Exam 3 – Take Home Part (Due on April 25th, Wednesday, at 1 PM, submit a hardcopy in-class)
Exam 3 – Reading List for In-class Part
Exam 3 (In-class Part) will be on April 25th, Wednesday, from 1 PM to 2.50 PM; OPEN notes
Projects 7-10 posted. Check in Canvas
Quiz 7-8 posted. All Take Home. Check in Canvas.
—————————————————-
Syllabus
Lecture Slides
Lecture Code (C++)
Project Descriptions
Quizzes and Exams
Quiz, Exam and Project Schedules
Syllabus
CSC228 Syllabus (1 PM class), Spring 2018
Lecture Slides
Module 1:Asymptotic Time Complexity and Intro to Abstract Data Types
Module 5 – Dictionary ADT: Hash tables
Module 7 – Binary Search Trees
Lecture Code (C++)
Module 2: List ADT
Code 1: Static List Implementation using Arrays
Code 2: Dynamic List Implementation using Arrays
Code 3: Singly Linked List
Code 4: Recursion and Random Number Generation
Code 5: Reversing a Singly Linked List
Code 6: Run Time Complexity Analysis
Module 3: Stack ADT
Code 1: Dynamic Array based Stack
Code 2: Doubly Linked List based Stack
Code 3: Example to Illustrate String Processing in C++
Code 4: Using Stack to Check for Parenthesis Balance
Code 5: Example to Illustrate String Tokenizing in C++
Code 6: Evaluation of an Expression in PostFix Format using Stack
Module 4: Queue ADT
Code 1: Dynamic Array based Queue
Code 2: Doubly Linked List based Queue
Module 5: Dictionary ADT: Hashtable
Code 1: Singly Linked List-based Implementation of Hashtable
Code 2: Use of Hashtable to Determine whether two Integer Sequences are Permutations of each other
Code 3: Use of Hashtable to Print the Unique Elements in an Array
Module 6: Binary Trees
Code 1: To Read Text from a File
Code 2: Implementation of Binary Trees
Code 3: Use of Breadth First Search to Determine the Depth of the Nodes in a Binary Tree
Code 4: Preorder Traversal of a Binary Tree
Module 7: Binary Search Trees
Code 1: Construction of a Binary Search Tree (Input: Sorted Array of Integers)
Code 2: Selection Sort
Code 3: Construction of a Binary Search Tree (Input: Randomly Generated Array of Integers)
Code 4: Searching for a Key in a Binary Search Tree
Lecture Code (Java)
Module 2: List ADT
Code 1: Static List Implementation using Arrays
Code 2: Dynamic List Implementation using Arrays
Code 3: Singly Linked List
Code 4: Recursion and Random Number Generation
Code 5: Reversing a Singly Linked List
Module 3: Stack ADT
Code 1: Dynamic Array based Stack
Code 2: Doubly Linked List based Stack
Code 3: Example to Illustrate String Processing in Java
Code 4: Using Stack to Check for Parenthesis Balance
Code 5: Example to Illustrate String Tokenizing in Java
Code 6: Evaluation of an Expression in PostFix Format using Stack
Module 4: Queue ADT
Code 1: Dynamic Array based Queue
Code 2: Doubly Linked List based Queue
Module 5: Dictionary ADT: Hashtable
Code 1: Singly Linked List-based Implementation of Hashtable
Code 2: Use of Hashtable to Determine whether two Integer Sequences are Permutations of each other
Code 3: Use of Hashtable to Print the Unique Elements in an Array
Module 6: Binary Trees
Code 1: To Read Text from a File
Code 2: Implementation of Binary Trees
Code 3: Use of Breadth First Search to Determine the Depth of the Nodes in a Binary Tree
Code 4: Preorder Traversal of a Binary Tree
Module 7: Binary Search Trees
Code 1: Construction of a Binary Search Tree (Input: Sorted Array of Integers)
Code 2: Selection Sort
Code 3: Construction of a Binary Search Tree (Input: Randomly Generated Array of Integers)
Code 4: Searching for a Key in a Binary Search Tree
Project Descriptions
Project 1 (Due on Feb. 7th, 1 PM): Algorithm Design and Time Complexity Analysis for Operations on the Dynamic Array Implementation of the List ADT
cpp code:In a Word Document
The code is also available in Canvas
Project 2 (Due on Feb. 14th, 1 PM): Implementation of the Merge List Function (for Merger of Unique Elements) for Singly Linked List and the Time Complexity Analysis
cpp code:In a Word Document
Also, check Canvas for the code
Project 3 (Due on Feb. 21st, 1 PM): Implementation of the Stack ADT using Singly Linked List and the Time Complexity Analysis of the Push and Pop Operations
Check in Canvas for the code
Project 4 (Due on Feb. 28th, 1 PM): Design and Implementation of an Algorithm to Find the Next Greater Element of the Elements in an Array in Θ(n) Time
Check in Canvas for the code
Project 5 (Due on March 7th, 11.59 PM): Stack-based Implementation of Queue
Check in Canvas for the code
Project 6 (Due on March 21st, 11.59 PM): Binary Tree: Checking for Complete Binary Tree and Binary Search Tree
Check in Canvas for the code
Project 7 (Due on March 28th, 11.59 PM): Binary Tree: Design and Implementation of an Iterative Algorithm (using the Stack ADT) to do a Preorder Traversal of the Vertices
Check in Canvas for the code and text files
Project 8 (Due on April 4th, 11.59 PM): Binary Search Tree: Average Number of Comparisons for a Successful Search
Check in Canvas for the code and text files
Project 9 (Due on April 11th, 11.59 PM): Checking whether a Binary Tree is a Max Heap
Check in Canvas for the code and text files
Project 10 (Due on April 18th, 11.59 PM): Degree Distribution of the Vertices in a Graph
Check in Canvas for the code and text files
Quizzes and Exams
Exam 3 – Take Home Part (Due on April 25th, Wednesday, at 1 PM, submit a hardcopy in-class)
Quiz 2: Take Home (Due on Feb. 9th, 1 PM): Dynamic Array Implementation of the List ADT: Doubling the List Size vs. Incrementing the List Size by One: Memory and Run Time Analysis
cpp code:In a Word Document
The code is also available in Canvas
Quiz 3: Take Home (Due on Feb. 16th, 11.59 PM): Linked List vs. Dynamic Array Implementation of the List ADT: Impact of Insertion Index, Data Size and List Size: Memory and Run Time Analysis
cpp code:In a Word Document
The code is also available in Canvas
Exam 1: Take Home (Due on Feb. 23rd, 11.59 PM): Covers Modules 2 and 3 Check Canvas for Code
Quiz 4: Take Home (Due on March 2nd, 11.59 PM): Determination of Maximum Depth of Nested Parentheses in an Expression and Evaluation of an Expression in Pre-fix Format Check Canvas for Code
Quiz 5: Take Home (Due on March 9th, 11.59 PM): Hash table Tradeoff Analysis: Average Insertion Time vs. Load Imbalance Index Check Canvas for Code
Quiz 6: Take Home (Due on March 23rd, 11.59 PM): Height-Balanced Binary Trees Check Canvas for Code
Quiz 7: Take Home (Due on April 13th, 11.59 PM): Binary Search Tree: Lowest Common Ancestor Node Check Canvas for Code
Quiz 8: Take Home (Due on April 20th, 11.59 PM): Breadth First Search on a Graph: Test for Bipartivity Check Canvas for Code