Describes course work examples from my Computer Science 242 Course. This repository highlights the most challenging sections of the course.
- Creating a Library
- Introduction to the course and using simple class structures
- Displays use of classes, class functions, inheritance, class variables, and other basic object oriented programming principals
- Sorting (Divide and Conquer)
- Introduction to various sorting methods and their trade-offs
- Displays basic O(n^2) sorting algorithms such as bubble-sort and quicksort. Displays best use case for each via an anlysis of runtimes with a random number generator
- Linked List to Doubly Linked List
- Converting a singly linked data structure to a doubly linked structure
- Displays comprehension of both single linked list data structure as well as doubly linked list data structures
- Solving a grid (BFS vs DFS)
- Solving a 2d maze using both breadth first search and depth first search
- Displays comprehension of stack and queue data structures, their difference in application, as well as manipulating 2-d data arrays.
- List Iterators (Advantge of O(1) operations)
- An introduction to using positional operations with the list data structure
- Displays comprehension Python's list data structure and emphasis of positional data manioulation the data structure offers. This can be important because positional manipulation runs at O(1) for all common operations.
- Rebalancing a tree to a BST
- Trees and rebalancing a tree to maintain a binary tree property
- Displays a comprehension of Tree data structure as well as the importance of a binary tree data structure due to the importance of binary search.
- Heaps and Heap sort
- An introduction to the Heap data strucure and the O(log n) effciency offered by heap search
- Displays knowledge of the heap data structure and how to create and utilize it.
- Hash Tables
- An introduction to hashtables and collision avoidance
- Displays comprehension of hash tables, their common usuage, and best practice to keep a hash table effcienct
- RSA Encryption and Bit Data Manipulation
- An introduction to working with the RSA encryption algorithm to encrypt files. Done with bits instead of typicall ASCII.
- Displays comprehension of a common encryption algorithm that allows for public keys while maintaining security
Credit textbook author for the course who provided many basic abstractions to which we expanded upon to solve coursework. The textbook and author is Fundamentals of Python: Data Structures, 2nd Edition, by Lambert, 2019, Cengage Learning.