top of page
Object-Oriented Programming: Text
Programming Console

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.

Object-Oriented Programming: About

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:

https://www.youtube.com/watch?v=UUUfT3o7VMw

https://github.com/engelsteve0/paint

Object-Oriented Programming: Text

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:

​

htmloutputinfirefox.png
Object-Oriented Programming: Text

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.

​

homepage.png
Object-Oriented Programming: Text

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 

Object-Oriented Programming: Text
bottom of page