Steven Engel: Engineering Portfolio
Object-Oriented Programming (Java, Ruby) Table of Contents
Course Description
Project I: Paint
Project II: The Federalist Papers
Project III: Ruby on Rails, DataVNew
Skills Learned
​
Undergraduate Table of Contents
Main Table of Contents

Object-Oriented Programming (Java, Ruby)
Fall 2022, Dr. Rosasco
Course Description:
This course taught the Java and Ruby programming languages, with a special emphasis on using these in complex, weeks-long object-oriented projects. Additionally, many software engineering concepts (SOLID principles, Scrum/Agile, Unified Modeling Language/UML) were learned and applied.
Project I: Paint
The main (individual) project of this class was to develop an application which generally mimicked Microsoft Paint, but contained some additional features, as well (such as multiple tabs, a configurable autosave timer, multithreading, and more). Features were assigned on a weekly basis, to be completed in sprints, according to Scrum (an Agile methodology). There were a total of six sprints, for what would become a (for individual college students) complex project with several thousand lines of code. My implementation of Paint is shown in the video below, and a GitHub link is also included:
Project II: The Federalist Papers
As a smaller project between the two major projects (Paint and Ruby on Rails), The Federalist Papers was a tool for learning Ruby. Students were given a text file containing the Federalist Papers in a nonuniform format and asked to write a Ruby file that (when interpreted) would create an HTML file with a table of contents summarizing their basic information. To go above and beyond, I decided to add the entire text of the federalist papers below the table of contents and added anchor links to easily navigate to these papers. The final result of this is shown in the screenshot below:
​

Project III: Ruby on Rails/DataVNew
The final major project in this course (a group project) was the Ruby on Rails project. Each group was assigned a different task, and ours was to create (using the Rails framework alongside sqlite3) a website and many-to-many database for students and their classes (similar to another website known at our school as DataVU, hence the name DataVNew). After getting the database working, we decided to customize our website with our beloved school colors (brown and gold) and favorite dyslexia-tolerant font, Comic Sans MS.
​

Skills Learned
The following critical Computer Science/Software Engineering skills were learned in this class:
Being able to stay organized and write "good code" with long-term, complex projects
Basic use of Git
IntelliJ/IDE use in general
The various applications of Unified Modeling Language (UML)
General knowledge of the history and key historical figures in computing
Java, Ruby, HTML
Using Linux systems/being able to SSH (+SSH tunnel) into another machine remotely
Writing proper release notes
Knowledge and application of software engineering methodologies (Agile, Scrum, etc.)
Building, running, and customizing a Ruby on Rails web server