The source code for all the projects listed here can be found in my GitHub repository
Independent Project: Winter, Spring, and Summer 2013
Summary:
Since my formal education in C++ didn't include graphical user interface development, I decided to learn and practice the Qt UI library in conjunction with C++. One of my main objectives was to attempt a non-trivial project that forced me to learn and understand the intricacies of complex C++ UI programming. I decided to develop a tile-map editor.
Project Highlights:
Google Test Test-driven Development Library
Defensive Programming with Assertion Usage
Refactoring Phases
MVC Design Pattern
Development Environment:
Qt Creator (C++)
Independent Project: Winter 2011
Summary:
After studying C++ with the book "Thinking in C++", I decided to work on a project that would help me put in practice all I had learned. At that time, I had just finished playing The Legend of Zelda: Majora's Mask, and I thought it would be challenging to simulate the mathematics and algorithms the in-game clock showcased.
Project Highlights:
I used this project in order to practice several technologies and development strategies I had been learning on my own and couldn't properly practice in an academic setting:
Test Driven Development (Using CXX TEST)
MVC Design Pattern
Vim Text Editor (C++)
All of the previous items were self-taught.
Development Environment:
G++ Compiler with Makefiles
Academic Project: Compilers, Fall 2011
Summary:
This compiler was the final assignment in a Compilers class I took in the fifth and final year of my bachelor's degree. It's coded in C++, and it is designed to parse and compile a modified version of Pl/0 which includes a case statement. The project is designed to interface with an IDE (developed by another student) in order to run the complied code.
The original assignment required C, but I was granted special permission to develop the compiler in C++ after showing proficiency in the language, and with the understanding that I was entirely responsible for any problems during development (since the university didn't include C++ in the computer science degree) . My professor granted full points to the project.
The source code for this program is entirely in Spanish due to the nature of its development. i.e. It was developed for a Computer Science Class in a Spanish-speaking country.
Project Highlights:
STL usage.
Class architecture was developed from scratch.
Development Environment:
Windows 7
Visual Studio 2010 (C++)
Academic Project: Spring 2014
CS 133 : C++ III
Summary:
This console calculator uses Reverse Polish Notation instead of in-fix notation. Operations are written after the numbers operated on. This was the third individual project in my CS 133 class.
Project Highlights:
Unit Test wasn’t a requirement for the assingment, however, I decided to learn and use Microsoft’s C++ Unit Testing Framework.
Development Environment:
Windows 8
Visual Studio 2012 (C++)
Microsoft C++ Unit Testing Framework
Independent Project: Winter and Spring 2014
Summary:
In order to practice C#, my software engineering skills, and my object-oriented analysis and design techniques, I decided to model the classes and algorithms of a well-known video-game: Pokemon Red/Blue.
The system was developed as an encapsulated .NET library capable of simulated simplified Pokemon combats (i.e. only a subset of 10 Pokemons were initially modeled), and was heavily tested using Test Driven Development and a Unity3D application.
Project Highlights:
Defensive approach using assertions and Test Driven Development
Logging system encompassing development messages and error messages.
Use of design patterns and OOAD techniques: Observer Pattern, Factory Pattern, and Singleton Pattern
XML queries using Linq
System architecture and classes designed from scratch
Development Environment:
Windows 8
Visual Studio 2012 (C#)
Mysql Database via Mysql Workbench
NUnit
Independent Project: Spring 2014
Summary:
For my C++ classes I was required to write comments for every method, file, and class in my projects. This is an example of the format I was expected to write:
//----------------------------------------------------------------------------- // Class: EQueue // method: EQueue(size_t,T) // description: Constructor with elements // Input: None // Output: None // Calls: // DCList::DCList(); // Called By: n/a // Parameters: size_t n_elements -- number of elements // T datum -- initial value // Returns: n/a // History Log: // 05/16/14 VS completed version 1.0 //-----------------------------------------------------------------------------
After a few projects I decided to write a tool to ease the documentation process. The software produces formatted comments eliminating the need for manual comment creation as it facilitates the input process with textboxes and input dialogs.
In addition, the software performs basic parsing of an input function signature in order to inquire for descriptions for the return type and parameters. Finally, with all the information in place, the software generates a comment that is ready to be included in the source code.
Project Highlights:
Process Automation Motivation
Basic C++ Function Signature Parsing
Development Environment:
Windows 8
Visual Studio 2012 (C#)
Windows Forms