/cs_data_struct_and_alg

This course was called Data Structures, Algorithms, and their Applications within Computer Systems.

Primary LanguageCMIT LicenseMIT

cs_data_struct_and_alg

Please note that instructor permission was given to upload these projects.

This course was called Data Structures, Algorithms, and their Applications within Computer Systems. It was offered by the Roux Institute of Northeaster University as a part of their masters program and I was lucky enough to take it through their partnership with Bates College. The course was taught by Professor Jonathan Mwaura. The course was exactly as named. We were fortunate to be introduced concepts pertaining to computer organization, assembly, Makefiles, the software development processes, testing, git, remote servers, and coding in C.

I uploaded this course pretty much as it was locally as we used git for submissions anyway. I will use this repo for reference and may a repository of my favorite class projects.

Personal note: I started taking notes with pen and paper after week 8. To help with referencing, heres the topics covered in each homework, lab, and week directory:

Lab 0: Intro to using C, git, and Khoury remote computers Lab 1: Datatypes, variables, branching, pointers, arrays, looping, functions in C Lab 2: Typedef and structs in C Lab 3: Makefile, Valgrind, dynamic memory allocation, and pointers Lab 4: User defined types, enum vs typedef, structs, and Vectors in C Lab 5: Recursive functions, creating linked lists, traversing linked list, and merging linked lists Lab 6: Implementing queues, creating unit tests, and test driven development Lab 7: Computer organization, memory, assembly, linkers, and the compilation process Lab 8: Time complexity, space complexity, and merge sort Lab 9: Balances binary search trees and implementing an AVL tree Lab 10: Implementing hash tables

HW 1: Guess the number game HW 2: Implementing vectors to hold data about students HW 3: Implementing a stack HW 4: Problem solving, time complexity, and growth of functions HW 5: Methods of sorting and proofs HW 6: Binary search tree, reccurance, time complexity, and masters theorem HW 7: Priority queues HW 8: Graphs, adjacency matricies, DFS, and BFS

week 1: Intro to using C, git, and Khoury remote computers week 2: Data types, input, and output in C week 3: Makefile, Valgrind, dynamic memory allocation, and pointers week 4: Pointers and dereferencing week 5: Arrays, constant variables, and preproccessor directives week 6: Vectors and user defined types week 7: Stacks week 8: Assembly