Self Assessment
Introduction to My Journey in Computer Science
As I reach the end of my Bachelor of Science in Computer Science degree here at SNHU, I can’t help but reflect on how much I’ve learned and grown throughout this program. What started as a general interest in technology has turned into a solid foundation in software development, problem-solving, and system design. Over the past few years, I’ve tackled various challenges, built real-world applications, and sharpened my technical skills, all of which have prepared me to step into the industry with confidence.
This capstone project and the ePortfolio I’ve put together showcase my progress and highlight the skills I’ve developed. Through my coursework and hands-on experience, I’ve gained a deeper understanding of software engineering principles, optimized algorithms, and efficient database management, all while prioritizing security. More than anything, this process has reinforced my ability to learn and adapt to new technologies.
Showcasing My Strengths
Completing my coursework and developing this ePortfolio has allowed me to demonstrate my technical strengths while shaping my professional goals and values. Here at SNHU, I have worked on various projects that have strengthened my problem-solving skills, reinforced my ability to write secure and efficient code, and prepared me for real-world software development. Beyond the artifacts included in this ePortfolio, my coursework in CS-305 Software Security, CS-300 Data Structures and Algorithms, and CS-340 Client/Server Development has given me the necessary foundation to confidently enter the field of computer science. These experiences have also shaped my approach to software development, especially when it comes to modularity, scalability, and security.
Throughout this program, I’ve developed skills in multiple areas of computer science that will be critical in my career. My ePortfolio reflects my strengths in:
Collaborating in a Team Environment
One of the most valuable experiences I had in this program was working on team-based projects that simulated real-world software development. In GAM-380 Game Experiential Learning I, I collaborated remotely with students from across the U.S. to develop a game in Unreal Engine, where I served as the lead programmer. This project gave me firsthand experience in distributed development, requiring me to rely on others for sound and graphics while focusing on the programming aspects of the game.
In GAM-305 Digital Game Development, I worked alongside my classmates to develop a 3D platform shooter. My contributions included programming elevators for character transportation and designing enemy AI and attack patterns. These experiences strengthened my ability to work in team environments and reinforced the importance of version control, communication, and modular coding practices. Whether through Git, peer programming, or Agile methodologies, I learned how to collaborate effectively and ensure that my work was structured for maintainability.
Communicating with Stakeholders
Throughout my coursework, I have refined my ability to communicate technical concepts effectively. In CS-305 Software Security, I worked on a security upgrade for Artemis Financial, where I identified vulnerabilities in outdated code and implemented SHA-256 encryption. I also used Maven Dependency Check to ensure that security vulnerabilities were properly addressed. Documenting and presenting these improvements helped me build skills in explaining technical security implementations to stakeholders.
Additionally, my experience in CS-340 Client/Server Development helped me improve my communication skills in developing RESTful APIs and structuring clear API documentation for integration with client applications. Writing detailed documentation and ensuring that APIs were well-structured has been an essential part of my learning experience. Implementing features like flash messages for user feedback also enhanced user experience and system communication.
Software Engineering, Data Structures, and Security
My coursework in CS-300 Data Structures and Algorithms provided me with a strong foundation when it comes to writing efficient, optimized code. This knowledge was particularly useful in my capstone project, where I implemented search and filtering enhancements, PostgreSQL indexing, and pagination to improve query performance. Learning how to optimize search queries from O(n) to O(log n) using indexing significantly enhanced the efficiency of my application.
In CS-465 Full Stack Development I, I built a MEAN stack application, which later became the foundation for my capstone project. The transition from MEAN to Flask and PostgreSQL allowed me to implement improved security, better data integrity, and more scalable backend solutions. My experience in CS-305 Software Security played a key role in these enhancements, as I applied input validation and encryption to protect user data.
For my capstone project, I transitioned the MEAN stack application to Flask and PostgreSQL, improving its structure, security, and overall maintainability. This shift allowed me to implement Flask-Login for authentication, use PostgreSQL for structured database management, and integrate search and filtering functionality to optimize query performance.
How My Artifacts Fit Together
My coursework and projects throughout the Computer Science program have helped me build expertise in many areas, including full-stack development, database management, security, and scalable software solutions. This ePortfolio focuses on two major projects:
- Original MEAN Stack Application (CS-465 Full Stack Development I): This project provided the foundation for my capstone, demonstrating my ability to develop a full-stack application using JavaScript-based technologies.
- Enhanced Flask and PostgreSQL Application (Capstone Project): This showcases my ability to transition a project from one technology stack to another while improving its security, scalability, and efficiency.
While these two projects serve as the main focus of my ePortfolio, the skills I gained in CS-300, CS-305, CS-340, and CS-465 have all contributed to my development as a software engineer. These experiences showcase my ability to design, develop, and optimize full-stack applications while prioritizing security, efficiency, and maintainability.
Professional and Career Goals
With my Computer Science degree, I’m ready to step into a software engineering role, focusing on full-stack development and database optimization. My immediate goal upon graduation is to gain industry experience, contribute to real-world projects, and refine my technical expertise. Over the next year, I plan to continue building my portfolio, contributing to open-source projects, and earning certifications that align with my career path.
With that said, I am also passionate about the future of AI, and robotics, and I plan to pursue a graduate degree in artificial intelligence and robotics sometime next year. Overall this program here at SNHU has given me a strong foundation, and I’m excited to apply these skills in new ways that create meaningful solutions.
Conclusion
Looking back, my journey through the Computer Science program has been filled with challenges and accomplishments. Each project, assignment, and enhancement has pushed me to improve my skills, solve problems efficiently, and think critically about software design. This ePortfolio is proof of my growth as a developer and serves as a strong starting point for my career in software engineering. I’m excited for what comes next and confident that the skills I’ve developed will help me make a meaningful impact in the industry.
Video Review
In this review, I go over the original MEAN application, highlighting its features and some of the flaws that led to my decision to transition to Flask. I discuss areas for improvement in structure, maintainability, and security, and outline the planned enhancements to optimize the project.
Projects
The original MEAN program, Travlr Getaways, was developed as part of my Full-Stack Development coursework. It allowed users to browse trips while admins could create and manage them. However, the MEAN stack implementation had limitations in scalability, maintainability, and security, which led me to transition it to Flask.
In the updated Flask version, I restructured the backend using Flask Blueprints, improved database security with PostgreSQL, and replaced Angular with Jinja templates for a more seamless integration. These updates enhanced the application’s performance, maintainability, and overall security.
Enhancement Narratives
Software Design and Engineering
For this enhancement, I focused on restructuring the backend of my application by implementing Flask Blueprints to modularize the code, improving maintainability and scalability. I also integrated Flask-Login for secure authentication and replaced MongoDB with PostgreSQL for better data management and security. Read more.
Algorithms and Data Structures
To improve performance and scalability, I implemented an optimized search and filtering system for trip listings. By transitioning to Flask and PostgreSQL, I introduced indexing, pagination, and optimized query execution. Read more.
Databases
I transitioned from MongoDB to PostgreSQL to improve data integrity, query efficiency, and security. I implemented relational schema design with foreign keys, optimized queries using indexing, and enforced role-based access control. Read more.