Completing my coursework throughout the Computer Science program at Southern New Hampshire University and developing this ePortfolio has been an invaluable experience that has strengthened my technical expertise, shaped my professional goals, and has prepared me to contribute meaningfully to the field of computer science. Through a combination of structured coursework, practical projects, and iterative enhancements, I have grown from a student learning foundational programming skills to a developer capable of designing, engineering, and deploying professional-quality solutions. This ePortfolio represents that growth by showcasing a selection of projects that demonstrate my ability to apply theoretical principles to real-world problems through object-oriented design, algorithmic reasoning, data management, and secure software practices.
Throughout the program, collaboration and communication played central roles in my development as a computer science professional. I learned to collaborate effectively in both academic and simulated professional environments, applying agile methodologies, Git version control, and code reviews to manage and integrate work across teams. Courses like Software Development with C++/.NET and Full-Stack Development required me to communicate clearly with technical and non-technical stakeholders through written reports, UML diagrams, and design documentation. These experiences taught me how to adapt my communication style to suit different audiences, an essential skill for a software developer working within interdisciplinary teams or engaging with clients.
My experience with data structures and algorithms provided a foundation for logical problem-solving and efficient software design. In my Course Planner enhancement, for example, I implemented both binary search trees and graph traversal algorithms, culminating in Kahn’s algorithm for topological sorting. This not only demonstrated my understanding of algorithmic efficiency and data organization but also showed my ability to translate abstract theory into working systems. These skills are critical for developing optimized solutions, improving performance, and designing scalable applications in modern computing environments.
The program also allowed me to refine my expertise in software engineering and database development. Through projects like my enhanced Liar’s Dice game, I applied software design principles such as modular programming, encapsulation, and the State design pattern to create maintainable, object-oriented systems. Later, in my database enhancement, I integrated SQLite into the Course Planner project to provide persistent data storage and CRUD operations. These experiences taught me how to build scalable, data-driven software while ensuring code clarity, maintainability, and adherence to industry standards. Together, they reflect my ability to engineer robust applications that align with real-world business and user needs.
Another vital area of growth has been my understanding of security and ethical computing. Through courses such as Secure Software Development and Software Reverse Engineering, I learned the importance of anticipating vulnerabilities, validating user input, and implementing proper data handling practices. I have developed a “security mindset,” by approaching code and system design with an awareness of potential exploits, ensuring that my applications are both efficient and safe for users. This mindset extends beyond technical implementation and informs my professional ethics as a responsible developer.
Each artifact in my ePortfolio contributes to a cohesive picture of my capabilities as a computer science professional. The Liar’s Dice enhancement demonstrates my proficiency in software design and object-oriented development; the Course Planner enhancements showcase my command of algorithms, data structures, and database integration. Together, they illustrate a balanced skill set that encompasses both the theoretical and applied dimensions of computing. These projects reflect my ability to move fluidly between design, implementation, testing, and documentation. All of which are skills that are essential for success in any professional software development role.
In short, this program and the creation of my ePortfolio have prepared me to enter the computer science field with confidence and competence. I have developed a strong technical foundation, refined my communication and collaboration skills, and gained experience designing solutions that are both functional and elegant. As I move forward in my career, I intend to continue applying these skills to the development of innovative software systems (particularly in the fields of game engine development and AI-driven simulation) while maintaining the professionalism, adaptability, and ethical responsibility that define a capable and forward-thinking computer scientist.
You can find a YT Link to the Code Review of these Projects [here](https://youtu.be/QB4pWzO4TVo).
This Liar’s Dice project is an object-oriented C++ implementation of the classic bluffing dice game. Originally developed in an earlier programming course, the game featured core gameplay mechanics such as dice rolling, player turns, and simple win conditions. For my enhancement, I refactored the project to follow modern software engineering and design principles, focusing on modularity, readability, and maintainability.
The enhancement introduced the State design pattern, allowing the game to transition cleanly between bidding, challenging, and revealing phases. I improved code structure by separating functionality into classes (Player, Game, and distinct state classes), added comprehensive inline documentation, and introduced input validation to prevent crashes or logic errors.
This Course Planner project was originally created in CS-300 to demonstrate core data structure and algorithmic design principles. The program reads a CSV file of university courses and their prerequisites, organizes them into a binary search tree (BST), and allows users to search, view, and print a course list in sorted order.
For the Algorithms and Data Structures enhancement, I improved the program’s efficiency and functionality by implementing Kahn’s algorithm for topological sorting and an inline graph visualization feature. These additions allow the system to generate a valid course completion sequence and display course dependencies in an easily readable format. The enhancement demonstrated my understanding of advanced algorithmic principles, graph construction, and data traversal while preserving the integrity of the BST structure.
Building on that foundation, the Database enhancement replaced the static CSV parser with a dynamic SQLite database that supports full CRUD (Create, Read, Update, Delete) operations. I encapsulated database logic into a dedicated Database class and implemented transactional safety, parameterized SQL queries, and persistence across sessions. These improvements transformed the project from a simple console utility into a scalable and professional-grade system capable of real-world data management.