Skip to content

Software Development

While studying Computer Science at The University of Alabama, I had the opportunity to grow greatly in my understanding of software development.  The combination of theoretical studies and hands on projects ultimately improved my development skills and helped me understand not just a programming language but what makes up a language.  As you scroll down this page you will find some of my most notable projects.

Languages: Java, C#, C, C++ CLI, SQL, Python, HTML5 and CSS, Scheme, VHDL

portfolio_terminal_home-01

Alabama Fish Guide

The Alabama Fish Guide app was a senior design project created during my studies at the University of Alabama.  The application was primarily a software engineering project created by a team of three computer science students.  Our team combined our skills from past classes to design and create the application from the ground up.  The main goal of this project was to build an Android app that could help assist students, research biologists, and recreational fishermen identify fish species found in Alabama.  To help accomplish our goal, we collaborated with the Geological Survey of Alabama (GSA) to obtain research data on The State of Alabama fish populations.  My primary role was helping design the application database, final UI design, and website.  To learn more about the app and view the deliverables, check out the project website. 

Sudo Code Markup Language < S C M L >

SCML was developed for my CS 403 Programming Languages class; a semester long project.  The primary objective was to develop a new language and build an interpreter using Java.  SCML was designed to be familiar to a graphic designer that knows how to code in HTML and CSS.  Like HTML, SCML requires an open and close tag around most operations.  The SCML tags are intended to markup sudo code similar to how you can markup a text document with HTML tags.  To the right is the minimum code required for a SCML file to run.  Note, all tags and keywords are lower case with the exception of DOCTYPE.

SCML Structure

SCML Language Supports:


  • Literals
    • Positive and negative integers
    • Strings
  • Variables
    • Variables can be assigned to integers, strings, and functions
    • Variables are defined using the <assign> tag
  • Operators
    • Numeric: +, -, *, \, %, ++, –, ^
    • String: +
    • Comparisons: <, <=, >, >=, ==, !
      • Comparisons also can utilize the key words for true and false
    • Advanced Comparisons: #eq{arg1; arg2;}, #isInt{arg1;}
  • Conditionals
    • Supports if, else if, and else conditional statements
    • Example: <if check=’condition’> do something </if>
  • Arrays
    • Dynamic and static
  • Functions
    • Functions can be declared in the helper section, inside a function body, and in the main section when declaring object functions
    • A function tag requires a name and allows for optional arguments.
  • Anonymous Functions
    • Anonymous functions are declared and called just like regular functions but do
      not get an id when declared
  • Iteration
    • Supports only while loops however, recursion can also be used for iteration
  • Input/Output
    • Can import other SCML files but cannot read from standard input
    • Two types of output: print, and println
  • Objects
    • Basic data encapsulation using functions that return the “this” keyword
  • Comments
    • Commenting in SCML is the same as in HTML