The course studied both supervised and unsupervised learning. Furthermore, the course covered fundamental machine learning concepts from a theoretical and practical perspective.
Topics studied:The course heavily relied upon fluency with Pandas and Numpy, and coding problems were routinely assigned.
See my hyperparameter tuning on the adult dataset. See my K-Means++ algorithm on the IRIS dataset.Studied UNIX-style operating systems and its architecture, relying on the C language.
Topics studied:The course consisted of multiple programming projects, the two most noteworthy being a dynamic memory allocator using segregated free lists and a multithreaded channel buffer system.
See my dynamic memory allocator. See my buffered channel interface.This course studied algorithmic design and how to solve problems with algorithms.
Topics studied:The use of correctness proofs and space/time complexity analysis when studying algorithms was strongly emphasized.
Technologies explored include the C programming language (useful functions/system calls, data types, libraries), UNIX OS, and Git.
An understanding of UNIX and its tools/environment was necessary (Ubuntu VM was used for all coursework).
Topics studied:The final project was a JBOD driver interface, implementing command processing, read/write calls, and caching. Remote read/write calls for JBOD servers were also implemented using sockets.
See my JBOD driver interface with C.CMPSC221 taught the basics of GUI programming with an object-oriented approach. The class also covered the material involving relational databases. The main language used was Java, but learning SQL was another requirement.
Noteworthy projects include a drawing application made with JFrames and a room reservation software using Java and Apache Derby.
See my room scheduler project on Github.