Programming
C++
C++ programming with robotics focus. Python PyBullet package for simulation.
- Convex Optimization - Linear and Quadratic programming
- Unconstrained Optimation - Gradient Descent to control a modified Dubin’s car
- RANdom SAmple Consensus (RANSAC) to fit points to plane
- Simplified Neural network using a series of matrix operations, with linear layers, ReLU and Softmax
- Search algorithms with collision detection
- Hill-climbing search
- BFS and DFS
- Trajectory optimization with genetic algorithms
- PyBullet to simulate a robot manuipulator which performs a pick-and-place task
- Lightweight Communications and Marshalling (LCM) for publishing goal pose
- Jacobian-based Inverse Kinematics
- Shared pointers
- Multithreading, mutex
Java
Fundamentals of computer programming in Java, with emphasis on applications in science and engineering
Individual Project
Sierpinski’s Triangle: Draw a Sierpinski Triangle using recursion
Final Pair Project
Helicopter: Recreation of the classic Helicopter Game with additional flying obstacles, with emphasis on proper object-oriented design and the implementation of a LinkedList
Home Screen
Game Play
Lost a Life
Additional Individual Projects
1. Guessing Game: Build a modified version of the game 20 Questions
- 2D arrays
- Selection and insertion sort conceptually/their implementations
- Understanding how recursion is used to search for specific elements in a dataset
2. Steganography: Write a program that can encrypt and decrypt text using a pseudo-random number stream, and hide and reveal messages into images
- Objects in Java
- Understanding the difference between static libraries and non-static objects
- Implement practical examples of bits and bitwise functions
3. Traveling Salesman: Create a program to find a path connecting n points that passes through each point exactly once by implementing two heuristics to find good (but not optimal) solutions to the traveling salesman problem
- Implement and use a linked list