The Ohio State University
This repository contains my coursework, lab implementations, and projects for CSE 2231 (Software II) at OSU. The course focuses on component-based software engineering, advanced data structures, and the principles of software design using Java.
CSE 2231 transitions from basic programming to professional software engineering. The core emphasis is on Design-by-Contract (DbC) and the use of mathematical models to verify software correctness.
- Design-by-Contract: Implementing and using interface contracts, representation invariants, and abstraction functions.
- Data Structures: Deep dive into the implementation of
Queue,Stack,Sequence,Map,Set, andBinaryTree. - Advanced Algorithms: Sorting algorithms (Quicksort, Heapsort), Hashing, and Recursion.
- Language Processing: Building a compiler/interpreter for the "BugsWorld" language, involving Tokenizing, Recursive Descent Parsing, and Abstract Syntax Trees (AST).
- Industrial Practices: Test-driven development with JUnit and version control.
Components/: Implementations of standard software components using both layered and linked data structures.BugsWorld/: The capstone project involving a compiler, executor, and virtual machine for a simulated environment.Labs/: Small-scale implementations focusing on specific concepts like recursion, hashing experiments, and Java I/O.Homeworks/: Conceptual exercises and formal contract specifications.
- Language: Java 8/11+
- Testing: JUnit 4/5
- IDE: Eclipse (with OSU components plugin)
- Mathematical Modeling: Predicate calculus and mathematical integer, string, and set models.
Notice to Students: This repository is for my personal portfolio and record-keeping. If you are currently taking CSE 2231 at OSU, please be aware that copying any part of this code is a violation of the Committee on Academic Misconduct (COAM) rules. I encourage you to use this for inspiration or logic understanding only after you have completed your own assignments.
*Maintained by Tylerzz