{"id":2816,"date":"2019-08-18T16:31:18","date_gmt":"2019-08-18T21:31:18","guid":{"rendered":"https:\/\/www.jsums.edu\/nmeghanathan\/?page_id=2816"},"modified":"2019-11-21T18:37:07","modified_gmt":"2019-11-21T23:37:07","slug":"csc228-fall2019","status":"publish","type":"page","link":"https:\/\/www.jsums.edu\/nmeghanathan\/csc228-fall2019\/","title":{"rendered":"CSC 228 Data Structures and Algorithms, Fall 2019"},"content":{"rendered":"<p>\n\t<span style=\"color:#FF0000\"><strong>EXAM 3 will be on Tuesday, December 3rd, from 9 AM to 10.50 AM at ENB 162 (regular classroom). It will be in-class, OPEN notes. <\/strong><\/span><strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Reading-List-for-Exam-3.pdf\" rel=\"attachment wp-att-3027\" target=\"_blank\">Reading List for EXAM 3<\/a><\/strong>\n<\/p>\n<p>\n\t<span style=\"color:#000000\"><strong><span style=\"line-height: 20.8px\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/span><\/strong><\/span>\n<\/p>\n<p style=\"font-size: 13px;line-height: 20.8px\">\n\t<b><a href=\"#Syllabus\"><font color=\"#0066cc\">Syllabus<\/font><\/a><\/b>\n<\/p>\n<p style=\"font-size: 13px;line-height: 20.8px\">\n\t<b><font color=\"#0066cc\"><a href=\"#LectureSlides\">Lecture Slides<\/a><\/font><\/b>\n<\/p>\n<p style=\"font-size: 13px;line-height: 20.8px\">\n\t<b><font color=\"#0066cc\"><a href=\"#LectureCodeCPP\">Lecture Code (C++)<\/a><br \/>\n\t<a href=\"#ProjDesc\">Project Descriptions<\/a><br \/>\n\t<a href=\"#QuizSolutions\">Quizzes and Exams<\/a><br \/>\n\t<a href=\"#TestSchedules\" style=\"line-height: 20.8px\">Quiz, Exam and Project Schedules<\/a><\/font><\/b>\n<\/p>\n<p>\n\t<b>&nbsp;<\/b>\n<\/p>\n<h3>\n\t<b><a name=\"Syllabus\"><\/a>Syllabus<\/b><br \/>\n<\/h3>\n<p style=\"line-height: 20.8px\">\n\t<strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Syllabus-Fall2019-updated-v2.pdf\" rel=\"attachment wp-att-2883\" target=\"_blank\">CSC228 Syllabus, Fall 2019<\/a><\/strong>\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><font color=\"#0066cc\"><a id=\"Teaching Assistant\" name=\"Teaching Assistant\"><\/a><\/font>Teaching Assistant<\/b>\n<\/p>\n<p>\n\t<span>Mahzabin Akhter &lt;akhterm86@gmail.com&gt;<\/span>\n<\/p>\n<p>\n\t<span>Room: ENB 163<\/span>\n<\/p>\n<p>\n\t<span>Tuesday: 9 am &#8211; 11 am, 1 pm &#8211; 2 pm, 4 pm &#8211; 5pm<\/span><br \/>\n\t<span>Thursday: 9 am &#8211; 11 am, 1 pm &#8211; 2 pm, 4 pm &#8211; 5pm<\/span><br \/>\n\t<span>Friday: 9 am &#8211; 1 pm<\/span>\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<h3>\n\t<b><font color=\"#0066cc\"><a name=\"LectureSlides\"><\/a><\/font>Lecture Slides<\/b><br \/>\n<\/h3>\n<p>\n\t<b><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/01\/CSC228-60-Sp2019-Module-1-TimeComplexity-Cpp-CodeReview.pdf\" rel=\"attachment wp-att-1664 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Module 1:Asymptotic Time Complexity and Intro to Abstract Data Types, C++ Code Review<\/font><\/a><\/b>\n<\/p>\n<p>\n\t<strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Module-2-ListADT-v3.pdf\" rel=\"attachment wp-att-2885\" target=\"_blank\">Module 2 &#8211; List ADT <u>(updated)<\/u><\/a><\/strong>\n<\/p>\n<p>\n\t<strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Module-3-Stack-ADT-v1.pdf\" rel=\"attachment wp-att-2888\" target=\"_blank\">Module 3 &#8211; Stack ADT<\/a><\/strong>\n<\/p>\n<p>\n\t<strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/Module-4-Queue-ADT-v1.pdf\" rel=\"attachment wp-att-2903\" target=\"_blank\">Module 4 &#8211; Queue ADT<\/a><\/strong>\n<\/p>\n<p>\n\t<b><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2018\/01\/CSC228-Sp2018-Module-5-Hashtables.pdf\" rel=\"attachment wp-att-1664 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Module 5 &#8211; Dictionary ADT: Hash tables <\/font><\/a><\/b>\n<\/p>\n<p>\n\t<b><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2018\/08\/CSC228-Fall2018-Module-6-BinaryTrees.pdf\" rel=\"attachment wp-att-1664 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Module 6 &#8211; Binary Trees<\/font><\/a><\/b>\n<\/p>\n<p>\n\t<strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Module-7-BinarySearchTrees.pdf\" rel=\"attachment wp-att-2945\" target=\"_blank\">Module 7 &#8211; Binary Search Trees (Last updated: Oct. 24th)<\/a><\/strong>\n<\/p>\n<p>\n\t<b><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2018\/08\/CSC228-Fall2018-Module-8-Heap.pdf\" rel=\"attachment wp-att-1664 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Module 8 &#8211; Heap<\/font><\/a><\/b>\n<\/p>\n<p>\n\t<strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Module-9-Graphs.pdf\" rel=\"attachment wp-att-3002\" target=\"_blank\">Module 9 &#8211; Graphs<\/a><\/strong>\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<h3>\n\t<b><font color=\"#0066cc\"><a name=\"LectureCodeCPP\"><\/a><\/font>Lecture Code (C++)<\/b><br \/>\n<\/h3>\n<p>\n\t<b><span style=\"font-size: 14px\"><span style=\"font-family: arial,helvetica,sans-serif\"><strong>Module 2: List ADT<\/strong><\/span><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 1: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/1-cpp-StaticListArray.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Static List Implementation using Arrays<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 2:<\/strong> <a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/2-cpp-DynamicListArray.pdf\" rel=\"attachment wp-att-1616 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Dynamic List Implementation using Arrays<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 3: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/2-3-cpp-SinglyLinkedList.pdf\" rel=\"attachment wp-att-1647 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Singly Linked List<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 4: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2018\/01\/2-4-cpp-arrayRecursive.pdf\" rel=\"attachment wp-att-1621 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Recursion and Random Number Generation<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 5: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/5-cpp-ReverseSinglyLinkedList.pdf\" rel=\"attachment wp-att-1623 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Reversing a Singly Linked List<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 6: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2018\/01\/cpp-Code-2-6-TimeAnalysis.pdf\" rel=\"attachment wp-att-1623 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Run Time Complexity Analysis<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><span style=\"font-family: arial,helvetica,sans-serif\"><strong>Module 3: Stack ADT<\/strong><\/span><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 1: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/3-1-cpp-DynamicArrayBasedStack.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Dynamic Array based Stack<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 2:<\/strong> <a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/3-2-cpp-DoublyLinkedList_Stack.pdf\" rel=\"attachment wp-att-1616 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Doubly Linked List based Stack<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 3: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/3-3-cpp-stringProcessing.pdf\" rel=\"attachment wp-att-1647 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Example to Illustrate String Processing in C++<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 4: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/3-4-cpp-DoublyLinkedList_Stack_ParenthesisBalance.pdf\" rel=\"attachment wp-att-1621 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Using Stack to Check for Parenthesis Balance<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 5: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/3-5-cpp-stringTokenizing.pdf\" rel=\"attachment wp-att-1623 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Example to Illustrate String Tokenizing in C++<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 6: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/3-6-cpp-DoublyLinkedList_Stack_PostFix.pdf\" rel=\"attachment wp-att-1623 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Evaluation of an Expression in PostFix Format using Stack<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><span style=\"font-family: arial,helvetica,sans-serif\"><strong>Module 4: Queue ADT<\/strong><\/span><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 1: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/4-1-cpp-DynamicArrayBasedQueue.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Dynamic Array based Queue<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 2:<\/strong> <a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/4-2-cpp-DoublyLinkedList_Queue.pdf\" rel=\"attachment wp-att-1616 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Doubly Linked List based Queue<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><span style=\"font-family: arial,helvetica,sans-serif\"><strong>Module 5: Dictionary ADT: Hashtable<\/strong><\/span><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 1: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/5-1-cpp-HashTable_LinkedList.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Singly Linked List-based Implementation of Hashtable<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 2: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/5-2-cpp-HashTable_LinkedList_PermutationCheck.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Use of Hashtable to Determine whether two Integer Sequences are Permutations of each other<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 3: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/5-3-cpp-HashTable_LinkedList_PrintUniqueElements.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Use of Hashtable to Print the Unique Elements in an Array<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 4: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/5-4-cpp-HashTable_LinkedList_union.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Use of Hashtable to Determine the Union (with unique elements) of Two Linked Lists (that may have duplicates)<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><span style=\"font-family: arial,helvetica,sans-serif\"><strong>Module 6: Binary Trees<\/strong><\/span><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 1: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/6-1-cpp-fileRead.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">To Read Text from a File<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 2: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/6-2-cpp-BinaryTreeImplementation.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Implementation of Binary Trees<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 3: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/6-3-cpp-BinaryTree_Depth.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Use of Breadth First Search to Determine the Depth of the Nodes in a Binary Tree<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 4: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/6-4-cpp-BinaryTree_Traversal.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Preorder Traversal of a Binary Tree<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><span style=\"font-family: arial,helvetica,sans-serif\"><strong>Module 7: Binary Search Trees<\/strong><\/span><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 1: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/7-1-cpp-BinarySearchTreeImplementation.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Construction of a Binary Search Tree (Input: Sorted Array of Integers)<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 2: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/7-2-cpp-SelectionSort.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Selection Sort<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 3: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/7-3-cpp-BinarySearchTree_RandomInputArray_Sorted.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Construction of a Binary Search Tree (Input: Randomly Generated Array of Integers)<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 4: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/7-4-cpp-BinarySearchTree_SearchKey.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Searching for a Key in a Binary Search Tree<\/font><\/a><\/span><\/b>\n<\/p>\n<h3>\n\t<b><font color=\"#0066cc\"><a name=\"LectureCodeJava\"><\/a><\/font>Lecture Code (Java)<\/b><br \/>\n<\/h3>\n<p>\n\t<b><span style=\"font-family: arial,helvetica,sans-serif\"><strong>Module 2: List ADT<\/strong><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 1: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/1-java-StaticListArray.pdf\" rel=\"attachment wp-att-1624 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Static List Implementation using Arrays<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 2: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/2-java-DynamicListArray.pdf\" rel=\"attachment wp-att-1625 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Dynamic List Implementation using Arrays<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 3: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/2-3-java-SinglyLinkedList.pdf\" rel=\"attachment wp-att-1648 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Singly Linked List<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 4: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/4-java-arrayRecursive.pdf\" rel=\"attachment wp-att-1627 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Recursion and Random Number Generation<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 5: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/5-java-ReverseSinglyLinkedList.pdf\" rel=\"attachment wp-att-1628 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Reversing a Singly Linked List<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-family: arial,helvetica,sans-serif\"><strong>Module 3: Stack ADT<\/strong><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 1: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/3-1-java-DynamicArrayBasedStack.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Dynamic Array based Stack<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 2:<\/strong> <a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/3-2-java-DoublyLinkedList_Stack.pdf\" rel=\"attachment wp-att-1616 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Doubly Linked List based Stack<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 3: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/3-3-java-stringProcessing.pdf\" rel=\"attachment wp-att-1647 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Example to Illustrate String Processing in Java<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 4: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/3-4-java-DoublyLinkedList_Stack_BalancedParenthesis.pdf\" rel=\"attachment wp-att-1621 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Using Stack to Check for Parenthesis Balance<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 5: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/3-5-java-stringTokenizing.pdf\" rel=\"attachment wp-att-1623 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Example to Illustrate String Tokenizing in Java<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><strong>Code 6: <\/strong><span style=\"font-size: 14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/3-6-java-DoublyLinkedList_Stack_PostFix.pdf\" rel=\"attachment wp-att-1623 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Evaluation of an Expression in PostFix Format using Stack<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><span style=\"font-family: arial,helvetica,sans-serif\"><strong>Module 4: Queue ADT<\/strong><\/span><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 1: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/4-1-java-DynamicArrayBasedQueue.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Dynamic Array based Queue<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 2:<\/strong> <a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/4-2-java-DoublyLinkedList_Queue.pdf\" rel=\"attachment wp-att-1616 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Doubly Linked List based Queue<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><span style=\"font-family: arial,helvetica,sans-serif\"><strong>Module 5: Dictionary ADT: Hashtable<\/strong><\/span><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 1: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/5-1-java-HashTable_LinkedList.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Singly Linked List-based Implementation of Hashtable<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 2: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/5-2-java-HashTable_LinkedList_PermutationCheck.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Use of Hashtable to Determine whether two Integer Sequences are Permutations of each other<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 3: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/5-3-java-HashTable_LinkedList_PrintUniqueElements.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Use of Hashtable to Print the Unique Elements in an Array<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 4: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/5-4-java-HashTable_LinkedList_union.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Use of Hashtable to Determine the Union (with unique elements) of Two Linked Lists (that may have duplicates)<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><span style=\"font-family: arial,helvetica,sans-serif\"><strong>Module 6: Binary Trees<\/strong><\/span><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 1: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/6-1-java-fileRead.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">To Read Text from a File<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 2: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/6-2-java-BinaryTreeImplementation.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Implementation of Binary Trees<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 3: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/6-3-java-BinaryTree_Depth.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Use of Breadth First Search to Determine the Depth of the Nodes in a Binary Tree<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 4: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/6-4-java-BinaryTree_Traversal.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Preorder Traversal of a Binary Tree<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><span style=\"font-family: arial,helvetica,sans-serif\"><strong>Module 7: Binary Search Trees<\/strong><\/span><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 1: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/7-1-java-BinarySearchTreeImplementation.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Construction of a Binary Search Tree (Input: Sorted Array of Integers)<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 2: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/7-2-java-SelectionSort.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Selection Sort<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 3: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/7-3-java-BinarySearchTree_RandomInputArray_Sorted.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Construction of a Binary Search Tree (Input: Randomly Generated Array of Integers)<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Code 4: <\/strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2017\/08\/7-4-java-BinarySearchTree_SearchKey.pdf\" rel=\"attachment wp-att-1615 noopener noreferrer\" target=\"_blank\"><font color=\"#0066cc\">Searching for a Key in a Binary Search Tree<\/font><\/a><\/span><\/b>\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<h3>\n\t<b><font color=\"#0066cc\"><a name=\"ProjDesc\"><\/a><\/font>Project Descriptions<\/b><br \/>\n<\/h3>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Project 1 (Due: Sept. 19th, 11.59 PM): <\/strong><\/span><\/b> <strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Project-1-DynamicArray-Resize.pdf\" rel=\"attachment wp-att-2849\" target=\"_blank\">Dynamic Array Implementation of the List ADT: Doubling the List Size vs. Incrementing the List Size by One: Memory and Run Time Analysis<\/a><\/strong>\n<\/p>\n<p>\n\tSee Canvas for the code\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Project 2 (Due: Sept. 26th, 11.59 PM): <\/strong><\/span><\/b><strong> <a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Project-2-LinkedList-UniqueMerger-Final.pdf\" rel=\"attachment wp-att-2868\" target=\"_blank\">Project 2: Implementation of the Merge List Function (for Merger of Unique Elements) for Singly Linked List and the Time Complexity Analysis<\/a><\/strong>\n<\/p>\n<p>\n\tSee Canvas for the code\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Project 3 (Due: Oct. 10th, 11.59 PM): <\/strong><\/span><\/b><strong> <a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Project-3-Stack-Implementation-SinglyLinkedList.pdf\" rel=\"attachment wp-att-2892\" target=\"_blank\">Project 3: Implementation of the Stack ADT using a Singly Linked List and Comparing its Performance with a Doubly Linked List-based Implementation<\/a><\/strong>\n<\/p>\n<p>\n\tSee Canvas for the code\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Project 4 (Due: Oct. 17th, 11.59 PM): <\/strong><\/span><\/b><strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Project-4-Queue-Stack-Implementation.pdf\" rel=\"attachment wp-att-2901\" target=\"_blank\">Project 4: Implementation of the Queue ADT using a Stack Object and Performance Comparison of the EnqueueCostly and the DequeueCostly Approaches<\/a><\/strong>\n<\/p>\n<p>\n\tSee Canvas for the code\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Project 5 (Due: Oct. 24th, 11.59 PM): <\/strong><\/span><\/b><strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Project-5-Hashtable-CommonElements-All-Lists.pdf\" rel=\"attachment wp-att-2942\" target=\"_blank\">Project 5: Using a Hashtable to Determine the Common Elements in all the Lists<\/a><\/strong>\n<\/p>\n<p>\n\tSee Canvas for the code\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Project 6 (Due: Nov. 7th, 11.59 PM): <\/strong><\/span><\/b><strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Project-6-BinarySearchTree-AvgNumComparisons.pdf\" rel=\"attachment wp-att-2981\" target=\"_blank\">Project 6: Determining the Average Number of Comparisons for a Successful Search and an Unsuccessful Search in a Binary Search Tree based on its Structure Only<\/a><\/strong>\n<\/p>\n<p>\n\tSee Canvas for the code\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Project 7 (Due: Nov. 14th, 11.59 PM): <\/strong><\/span><\/b><strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Project-7-BST-LowestCommonAncestor.pdf\" rel=\"attachment wp-att-2994\" target=\"_blank\">Project 7: Binary Search Tree: Lowest Common Ancestor Node<\/a><\/strong>\n<\/p>\n<p>\n\tSee Canvas for the code\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Project 8 (Due: Nov. 21st, 11.59 PM): <\/strong><\/span><\/b><strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Project-8-BinaryTree-MinHeap.pdf\" rel=\"attachment wp-att-2995\" target=\"_blank\">Project 8: Checking whether a Binary Tree is a Min Heap<\/a><\/strong>\n<\/p>\n<p>\n\tSee Canvas for the code\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<h3>\n\t<b><a id=\"QuizSolutions\" name=\"QuizSolutions\"><\/a>Quizzes and Exams<\/b><br \/>\n<\/h3>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Quiz 1 (Due: Sept. 24th, 11.59 PM): <\/strong><\/span><\/b> <strong><span style=\"font-size:14px\"><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Quiz-1-LinkedList-ElementUniqueness.pdf\" rel=\"attachment wp-att-2861\" target=\"_blank\">Design and Implementation of an Algorithm to Determine whether a Linked List has Unique Elements<\/a><\/span><\/strong>\n<\/p>\n<p>\n\tSee Canvas for the code\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<span style=\"font-size:14px\"><strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Exam-1.pdf\" rel=\"attachment wp-att-2875\" target=\"_blank\">Exam 1 (Due: Oct. 1st, 11.59 PM)<\/a><\/strong><\/span>\n<\/p>\n<p>\n\tSee Canvas for the code\n<\/p>\n<p>\n\t<br \/>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Quiz 2 (Due: Oct. 15th, 11.59 PM): <\/strong><\/span><\/b> <strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Quiz-2-Stack-Parenthesis-Balance.pdf\" rel=\"attachment wp-att-2895\" target=\"_blank\">Quiz 2: Determination of Maximum Depth of Nested Parentheses in an Expression<\/a><\/strong>\n<\/p>\n<p>\n\tSee Canvas for the code\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Quiz 3 (Due: Oct. 22nd, 11.59 PM): <\/strong><\/span><\/b><strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Quiz-3-Insertion-Deletion-Queue.pdf\" rel=\"attachment wp-att-2898\" target=\"_blank\">Quiz 3: Insertion and Deletion of Data at an Arbitrary Index in a Queue<\/a><\/strong>\n<\/p>\n<p>\n\tSee Canvas for the code\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Exam 2 (Due: Oct. 29th, 11.59 PM)<\/strong><\/span><\/b>\n<\/p>\n<p>\n\t<span style=\"font-size:14px\"><strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Exam-2.pdf\" rel=\"attachment wp-att-2948\" target=\"_blank\">Exam 2 (Take Home)<\/a><\/strong><\/span>\n<\/p>\n<p>\n\tSee Canvas for the code\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"font-size: 14px\"><strong>Quiz 4 (Due: Nov. 5th, 11.59 PM): <\/strong><\/span><\/b><strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Quiz-4-BinaryTreeInorderTraversalBST.pdf\" rel=\"attachment wp-att-2952\" target=\"_blank\">Quiz 4: Setting the Data for the Nodes in a Binary Tree to Satisfy the Property of a Binary Search Tree without Changing the Structure of the Binary Tree<\/a><\/strong>\n<\/p>\n<p>\n\tSee Canvas for the code\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<b><span style=\"margin: 0px;padding: 0px;border: 0px;font-size: 14px;vertical-align: baseline\"><strong style=\"margin: 0px;padding: 0px;border: 0px;font-size: 14px;vertical-align: baseline\">Quiz 5 and Quiz 6 (Due on Nov. 19th, @ 11.30 AM; submit the quizzes together as a single submission):<span>&nbsp;<\/span><\/strong><\/span><\/b><strong><a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Quiz-5-6-TakeHome.pdf\" rel=\"attachment wp-att-2990\" target=\"_blank\">CSC228-Fall2019-Quiz-5-6-TakeHome<\/a><\/strong>\n<\/p>\n<p>\n\t&nbsp;\n<\/p>\n<h3>\n\t<b><a name=\"TestSchedules\"><\/a>Quiz, Exam and Project Schedules<\/b><br \/>\n<\/h3>\n<p>\n\t<br \/>\n\t<a href=\"https:\/\/www.jsums.edu\/nmeghanathan\/csc228-fall2019\/csc228-fall2019-schedule-new-v4\/\" rel=\"attachment wp-att-3013\"><img decoding=\"async\" loading=\"lazy\" alt=\"\" class=\"aligncenter size-full wp-image-3013\" height=\"454\" src=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Schedule-new-v4.jpg\" width=\"835\" srcset=\"https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Schedule-new-v4.jpg 835w, https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Schedule-new-v4-300x163.jpg 300w, https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Schedule-new-v4-768x418.jpg 768w, https:\/\/www.jsums.edu\/nmeghanathan\/files\/2019\/08\/CSC228-Fall2019-Schedule-new-v4-624x339.jpg 624w\" sizes=\"(max-width: 835px) 100vw, 835px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>EXAM 3 will be on Tuesday, December 3rd, from 9 AM to 10.50 AM at ENB 162 (regular classroom). It will be in-class, OPEN notes. Reading List for EXAM 3 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; Syllabus Lecture Slides Lecture Code (C++) Project Descriptions Quizzes and Exams Quiz, Exam and Project Schedules &nbsp; Syllabus CSC228 Syllabus, Fall 2019 &nbsp; Teaching [&hellip;]<\/p>\n","protected":false},"author":168,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.jsums.edu\/nmeghanathan\/wp-json\/wp\/v2\/pages\/2816"}],"collection":[{"href":"https:\/\/www.jsums.edu\/nmeghanathan\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.jsums.edu\/nmeghanathan\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.jsums.edu\/nmeghanathan\/wp-json\/wp\/v2\/users\/168"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jsums.edu\/nmeghanathan\/wp-json\/wp\/v2\/comments?post=2816"}],"version-history":[{"count":48,"href":"https:\/\/www.jsums.edu\/nmeghanathan\/wp-json\/wp\/v2\/pages\/2816\/revisions"}],"predecessor-version":[{"id":3031,"href":"https:\/\/www.jsums.edu\/nmeghanathan\/wp-json\/wp\/v2\/pages\/2816\/revisions\/3031"}],"wp:attachment":[{"href":"https:\/\/www.jsums.edu\/nmeghanathan\/wp-json\/wp\/v2\/media?parent=2816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}