CS 499 Capstone ePortfolio

Computer Science Capstone ePortfolio (CS 499)

View on GitHub

Computer Science Capstone ePortfolio (CS 499)


Professional Self-Assessment

Throughout the Computer Science program, I have progressed from learning foundational programming concepts to designing, enhancing, and critically evaluating complete software systems. This capstone represents the culmination of that growth. Rather than simply presenting completed coursework, this ePortfolio demonstrates my ability to analyze existing systems, identify weaknesses, and implement meaningful improvements aligned with industry practices.

One of the most important skills I developed is the ability to move beyond “does it work?” and toward “is it maintainable, secure, scalable, and well-designed?” Across my artifacts, I focused on improving architecture, strengthening data integrity, refining algorithms, and applying secure coding practices. Each enhancement required me to evaluate trade-offs, justify design decisions, and document my reasoning clearly.

This capstone also reinforced the importance of professional communication. Whether explaining algorithmic decisions, documenting system enhancements, or performing a formal code review, I learned to present technical work in a structured manner suitable for professional or academic settings. This portfolio reflects not just technical competence, but growth in critical thinking, software quality standards, and professional readiness.


Overview of the Capstone Experience

The capstone required selecting prior coursework artifacts and enhancing them to demonstrate deeper technical mastery. Rather than building something entirely new, I strengthened existing systems by improving design quality, algorithmic efficiency, and database structure.

For each artifact, I analyzed the original implementation, identified its limitations, and implemented targeted improvements. These enhancements included architectural restructuring, improved data modeling, algorithm refinement, input validation, and security-focused updates each deliberate and tied to specific program outcomes.

The result is a portfolio that demonstrates practical software engineering skills across multiple domains: system design, algorithm development, database management, security awareness, and professional documentation.


Program Outcomes Demonstrated

1. Collaborative Environments & Communication

The code review component of this portfolio demonstrates structured technical analysis, constructive critique, and the ability to communicate improvement strategies clearly — the kind of communication expected in a professional development team.

The code review process also emphasized in-code documentation and contextual comments to improve long-term maintainability. By structuring feedback around architectural clarity and future extensibility, I demonstrated how code review supports informed decision-making for both developers and project stakeholders. The goal was not only to identify defects, but to strengthen the collaborative development process itself.

Each artifact also includes detailed documentation explaining what was improved, why the changes were necessary, and how they enhanced the system. Rather than listing features, I focused on presenting information in a structured format that would be accessible to stakeholders, teammates, or instructors. The clarity and organization of these explanations reflect my readiness to collaborate effectively in professional software environments.

2. Professional-Quality Communication

Each artifact includes detailed documentation explaining what was improved, why the changes were necessary, and how they enhanced the system. Rather than simply listing features, I focused on presenting information in a structured and professional format.

This portfolio reflects the ability to write technical documentation suitable for stakeholders, instructors, or development teams. The clarity and organization of the explanations demonstrate readiness to communicate effectively in professional software environments.

The accompanying code review video further demonstrates my ability to communicate technical analysis clearly and concisely in an oral format appropriate for a professional audience.

3. Algorithms and Problem Solving

The Algorithms & Data Structures enhancement demonstrates my ability to analyze performance limitations and implement improved solutions. I evaluated the original implementation, identified inefficiencies, and redesigned components to improve logical flow and computational efficiency.

Beyond restoring functionality, I considered algorithmic complexity, correctness, and maintainability. This reflects growth in analytical thinking and structured problem-solving skills fundamental to advanced computer science practice.

4. Computing Tools and Industry Practices

Throughout this capstone, I applied industry-relevant tools and practices including version control, structured documentation, modular design principles, and organized project structure. Enhancements were implemented with maintainability and scalability in mind rather than quick fixes.

The portfolio structure itself reflects professional presentation standards. Code, documentation, and analysis are organized clearly, demonstrating familiarity with tools and workflows used in modern software development environments.

5. Security Mindset

Security was integrated from the design stage rather than applied retroactively. I considered potential vulnerabilities such as improper data handling, insufficient input validation, and structural weaknesses in database design, then implemented preventative measures to address them directly.

This demonstrates a shift from writing functional code to writing resilient, secure software which is an approach that treats security as a core design requirement, not an optional layer.

Career Readiness and Future Goals

Security was integrated from the design stage rather than applied retroactively. After identifying nine critical vulnerabilities in the original codebase including thread safety issues, insufficient input validation, and information disclosure risks, I implemented targeted countermeasures for each. These included replacing HashMap with ConcurrentHashMap to prevent race conditions, building a ContactValidator class to detect and reject XSS patterns, SQL injection strings, and control characters, enforcing a MAX_CONTACTS resource limit to prevent memory exhaustion, and adding a full audit logging trail through SLF4J to support forensic analysis.

Each decision was grounded in OWASP Top 10 principles and validated through dedicated security tests covering concurrent access, malicious input, and boundary conditions. This reflects a fundamental shift from writing code that works to writing code that holds up under adversarial conditions. Security became a first-class design requirement, not a layer added afterward.



Portfolio Structure

This ePortfolio is organized into the following sections:


This ePortfolio was created as part of CS 499: Computer Science Capstone.