Skip to content

Latest commit

 

History

History
45 lines (28 loc) · 4.41 KB

README.md

File metadata and controls

45 lines (28 loc) · 4.41 KB

CS-300: DSA: Analysis and Design

Author: Joshua Wozny
Copyright 2023, portions Copyright 2017 Southern New Hampshire University, COCE

This project contains assignments, milestones and projects used to explore several data structures, including vectors, linked lists, hash tablees, and binary search trees. Through these projects we gained a better understanding of how they work, and when each should be used. With pseudocode, we explored time and space complexity and evaluated the overall performance of each data structure accordingly. Through the assignments and projects I was able to practice using DRY principals of Object Oriented Programming as well as the single responsibility principle.

Practice with pseudocode and flowcharts has improved my ability to plan coding projects to reduce the amount of intial refactoring and reduce the number of logic errors. I've also learned to appreciate the debugging process. Even well planned and architected projects will produce errors that need to be debugged and represents a significant portion of time spent on any project. Learning the continuous development process of planning, coding, testing, debugging, and refactoring will allow me to better manage the software development process.


Assignment One: VectorSorting

This assignment is designed to explore sorting algorithms by implementing both a selection sort and quicksort of a vector of bids loaded from a CSV file. Refelction and Pseudocode here.

Assignment Two: LinkedLists

This assignment is designed to explore linked lists, we will implement a singly linked list to hold a collection of bids loaded from a CSV file. Refelction and Pseudocode here.

Assignment Three: HashTables

This assignment is designed to explore hash tables, we will implement a hash table using a vector of LinkedLists to hold a collection of bids loaded from a CSV file. Refelction and Pseudocode here.

Assignment Four: BinarySearchTrees

This assignment is designed to explore binary search trees, we will implement a binary search tree using a node structure to hold bids loaded from a CSV file. Reflection and Pseudocode here.


This assignment explored how to open and parse a CSV file and creating objects to store each object that is described on each line of the imported file by developing an appropriate set of pseudocode, storing in a vector.

This assignment explored how to open and parse a CSV file and creating course objects, each described on a single line of the imported file by developing an appropriate set of pseudocode, storing in a Hash Table

This assignment explored how to open and parse a CSV file and creating course objects, each described on a single line of the imported file by developing an appropriate set of pseudocode, storing in a Binary Search Tree


This project compared and contrasted each of the data structures we've explored in our Milestones. The project required us to provide an analysis using Big-O notation of the time and space complexity of each, and make a recomendation regarding which data structure should be used for the application and describe why.

This project requires that we use the skills, and knowledge acquired throught the course to develop code using algorithms and data structures to solve basic programming problems by using the recomended data structures andf algorithms discussed in Project One.