Skip to content

Repository for lab assignments from CSC3310 - Algorithms and Advanced Data Structures at MSOE (Fall 2024).

License

Notifications You must be signed in to change notification settings

jeffTheLandShark/CSC3310

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSC3310 - Algorithms and Advanced Data Structures

Overview

This repository contains lab work for the CSC3310 - Algorithms and Advanced Data Structures course at the Milwaukee School of Engineering (Fall 2024), instructed by Dr. Sebastian Berisha. The focus of the course is on algorithm design, data structures, and computational complexity.

Learning Outcomes

This was provided by the course syllabus:

  • Determine and justify time and space complexity of a variety of algorithms (both recursive and non-recursive)
  • Identify differences between best, expected, and worst-case runtimes
  • Identify and apply strategies such as brute force, greedy, recursive backtracking, divide and conquer, and dynamic programming in algorithm analysis and design
  • Describe, implement, analyze, and apply data structures such as self-balancing trees and heaps
  • Demonstrate applications of graph algorithms including breadth-first search, depth-first search, and topological sort
  • Describe applications, tradeoffs, and requirements for appropriate use of cryptographic and hash-based algorithms
  • Identify NP-complete problems
  • Execute empirical methods for analyzing and comparing data structures and algorithms

Repository Structure

The labs are organized into separate folders, each containing the source code and supporting files for the respective lab assignments:

├── Lab1/   # Benchmarking Insertion and Selection Sort
├── Lab2/   # Benchmarking Heaps
├── Lab3/   # Iterative Algorithm Design
├── Lab4/   # Selection Problem
└── Lab5/   # Scapegoat Trees

Labs

Lab Description
Lab 1: Benchmarking Insertion and Selection Sort Implementing and benchmarking insertion and selection sort algorithms.
Lab 2: Benchmarking Heaps Implementing and benchmarking heap data structures.
Lab 3: Iterative Algorithm Design Implement an iterative algorithm for determining if a point is inside a polygon.
Lab 4: Selection Problem Implement a selection algorithm to find the k-th smallest element in an array.
Lab 5: Scapegoat Trees Implement a scapegoat tree data structure.

References

  • Algorithm Design and Applications by Michael T. Goodrich, Roberto Tamassia.
  • Introduction to Algorithms 4th Ed. by Cormen, Leiserson, Rivest, and Stein, MIT Press, 2022.

Academic Honesty

This repository is published to showcase my work and document my learning progress throughout the course. If you are a student in the same course, please be aware of your academic institution's policies on academic honesty and integrity. Do not copy any part of these assignments for your own submission.

About

Repository for lab assignments from CSC3310 - Algorithms and Advanced Data Structures at MSOE (Fall 2024).

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •