Projects





Tower of Hanoi

The goal of this project was to build a program that was capable of solving a tower of hanoi with a baxter robot arm. The overall project
took 5 weeks in total, and was worked on by myself and one partner. We coded the program in lab using python and with the assistance of the
package moveit as well as the software framework ROS (robot operating system). The final solution involved computer vision, inverse and forward
kinematics, and the data clustering algorithm DBScan.


The source code can be found on GitHub.




MSPaint Clone

This was an individual project over the course of a semester with the end goal being an mspaint clone. There were 3 iterations of the project, with
each iteration adding something new. Iteration 1 was about project planning with a focus on building a UML diagram. For iterations 2 & 3, the course instructor
added framework for the program and I added functionality. This included things like the highlight tool, the marker tool, and eventually filters like inverse and
blur where we edited the kernel of the picture to the corresponding filter.




Class History



CSCI 3081 - Program Design and Development

Principles of programming design/analysis. Concepts in software development. Uses C/C++ language to illustrate
key ideas in program design/development, data structures, debugging, files, I/O, state machines, testing, coding standards.



CSCI 4041 - Algorithms and Data Structures

Rigorous analysis of algorithms/implementation. Algorithm analysis, sorting algorithms, binary trees, heaps, priority queues,
heapsort, dynamic programming, greedy algorithms, graphs, graph traversal, single source shortest path, minimum cost spanning trees,
binary search trees, hash tables and hashing.



CSCI 4131 - Internet Programming

Issues in internet programming. Internet history, architecture/protocols, network programming, Web architecture. Client-server
architectures and protocols. Client-side programming, server-side programming, dynamic HTML, Java programming, object-oriented
architecture/design, distributed object computing, Web applications.



CSCI 4511 - Introduction to AI

A brief overview, agent definition search (search space, uninformed and informed search, game playing, constraint satisfaction),
planning, knowledge representation (logical encodings of domain knowledge, ontologies).



CSCI 4611 - Programming Games and Graphics

Tools/techniques for programming games/interactive computer graphics. Event loops, rendering/animation, polygonal models, texturing,
physical simulation. Modern graphics toolkits. History/future of computer games technology. Social impact of interactive computer graphics.



CSCI 5512 - Artificial Intelligence II

This course covers Artificial Intelligence (AI) that deals with uncertainty or learning. It covers: a brief review of uncertainty and
probability, Bayesian networks, Markov models, decision trees/networks, neural networks and reinforcement learning.



CSCI 5523 - Intro to Data Mining

Data pre-processing techniques, data types, similarity measures, data visualization/exploration. Predictive models
(e.g., decision trees, SVM, Bayes, K-nearest neighbors, bagging, boosting). Model evaluation techniques, Clustering (hierarchical,
partitional, density-based), association analysis, anomaly detection. Case studies from areas such as earth science, the Web,
network intrusion, and genomics. Hands-on projects.



CSCI 5551 - Robotics

Transformations, kinematics/inverse kinematics, dynamics, control. Sensing (robot vision, force control, tactile sensing),
applications of sensor-based robot control, robot programming, mobile robotics, microrobotics.