This is a conglomerate of class projects from Functional Programming, Introduction to Machine Learning, Algorithms, Computer Systems, and Large-Scale ML. Languages used include Python, C, Java, and OCaml.
I did not write the skeleton of these files. I only filled in the implementation of required functions.
- project1: Implementation of a basic enigma machine similar to the functionality of those used in WWII.
- project2: Implementation of a text adventure game using a text-based interface in terminal.
- project3: Devleop a search engine for text documents which utilizes differnt dictionary implementations to search for documents.
- project4: Build an interpretter for a simplified Ocaml language called Robot Meta-Language
- This folder contains multiple coding problems where we had to constrct time eficient algorithms in java corresponding to a given prompt which is iincluded in its corresponding directory. The algorithms were written by scratch without any starter code in Java.
I did not write the skeleton of these files. I only filled in the implementation of the ML algorithms.
- P1: Used K-nearest neighbors classifiers to build a basic classifier for face recognition
- P2: Implemented a simple Perceptron classifier to classify digits
- P3: Create a system that detects every time a word is German and translates it for you in the subtitles. In this project, you will just implement the first part of this system using Naïve Bayes to predict if a word is German or English
- P4: Utilize the adagrad gradient descent algorithm with different loss functions (ridge, logistic and hinge) to build a spam filter
- P5: Computing bias, variance, and noise for datasets and showing the effects of regularizers on prediction models
- P6: Implement a linear support vector machine and one operating in kernel space utilizing PyTorch
- P7: Implement a decision tree algorithm and then use it for bagging and boosting
- P8: Implement a couple basic neural network to solve regression and image classification problems using PyTorch
- Kaggle Competition: Design a Machine learning model from scratch to predict if a dog's leg is lame from gait analysis data
For projects 3, 4, and 5, I did not write all of the code in these files. A skeleton was given to us.
- P1: Built and tested a riscv arithmetic logical unit within a logic circuit simulator (logisim).
- P2: Build and tested a riscv CPU within a logic circuit simulator (logisim).
- P3: Performed buffer overflow and other attacks on faulty written C programs to exploit their vulnerabilities.
- P4: Implement a partial riscv interpreter in C in which memory is simulated as a hashtable with chaining (using linked lists).
- P5: Implement a simulation of a cache utilizing VI and MSI protocols and analyzed the performance of the simulators.
I did not write all of the code in these files. A skeleton was given to us.
- A1: Implement a simple backpropagation engine
- A2: Implement and evaluate GD and SGD for empirical risk minimization and multinomial logistic regression task on the MNIST set. Work with minibatched SGD, SGD with sequential sampling, and SGD with random reshuffling
- A3: Train basic deep NN with PyTorch on the MNIST set
- A4: USe Bayesian optimization to tune the hyperparameters of SGD
- A5: Evaluate impacts of memory allocation and parallelism on SGD. Explores buildt in numpy multithreading and an implementation multithreaded SGD in python