Professional Self-Assessment

Professional Self-Assessment

Throughout my undergraduate studies in Computer Science at Southern New Hampshire University, I have honed my skills and expanded my understanding of various fundamental and advanced computer science concepts. I have focused my efforts, particularly on software design and engineering, algorithms and data structures, and databases, producing three key artifacts that demonstrate my capabilities in these areas. These artifacts not only showcase my technical proficiency but also provide evidence of my ability to solve complex problems, implement efficient solutions, and design robust and scalable systems.

In completing the coursework for my software and engineering enhancement I was able to develop and showcase the strengths I have built in the computer science program by meeting all five of the expected course outcomes. I employed strategies for building collaborative environments that enable diverse audiences to support organizational decision-making in the field of computer science by completing enhancements such as making the app more user-friendly and visually appealing, by transforming the category grid layout to a three-column span from the original two and applying a minimalistic design philosophy to the app's background across all layouts. This ensured a coherent design language that is inclusive to a diverse audience. I designed, developed, and delivered professional-quality oral, written, and visual communications that were coherent, technically sound, and appropriately adapted to specific audiences and contexts by optimizing user feedback mechanisms, and incorporating toasts to clarify user decisions regarding SMS permissions, ensuring they were aware of their choices. I designed and evaluated computing solutions that solved a given problem using algorithmic principles and computer science practices and standards appropriate to their solution while managing the trade-offs involved in design choices by incorporating key listeners into both the LoginActivity and NewUserActivity. This hinders the creation of a new line in EditText fields when users press enter, improving the user interface and preventing unwanted input demonstrating my ability to discuss experiences and best practices in designing and evaluating computing solutions. I demonstrated an ability to use well-founded and innovative techniques, skills, and tools in computing practices to implement computer solutions that deliver value and accomplish industry-specific goals by simplifying an if-else statement in the CategoryActivity file and removing redundant functions and imports, which were no longer required, streamlining the code and enhancing its efficiency and demonstrating my ability to create industry-standard software design. I developed a security mindset that anticipated adversarial exploits in software architecture and designs to expose potential vulnerabilities, mitigate design flaws, and ensure privacy and enhanced security of data and resources by designing a one-time access registration page. This significant enhancement mitigates potential unauthorized access, which was a vulnerability in the previous design, and greatly enhances the app's security features.

In the binary search tree program I completed all of my planned enhancements for this artifact throughout my coursework, demonstrating my ability to work with algorithms and manage large data sets with industry-standard best practices. I designed and evaluated computing solutions that solve a given problem using algorithmic principles and computer science practices and standards appropriate to its solution while managing the trade-offs involved in design choices by enhancing the program in two ways, first, which was by adding a deconstructor that prevents memory leaks and adding a secondary binary search tree for filtering by amount bid which further expanded on the overall functionality of the program. This did two things, demonstrated best practices in implementing a deconstructor and demonstrated my ability to program practical solutions that a client would want from the program and implement it into the software. I developed a security mindset that anticipates adversarial exploits in software architecture and designs to expose potential vulnerabilities, mitigate design flaws, and ensure privacy and enhanced security of data and resources by enhancing issues in the code that caused the program to break and be vulnerable to buffer overflow attacks by checking the user input and making sure it is an expected input, if not the program will print out an error message and prompt the user to reenter the correct input. I designed, developed, and delivered professional-quality oral, written, and visual communications that are coherent, technically sound, and appropriately adapted to specific audiences and contexts by communicating proficiently and identifying areas of improvement, and offering suggestions for optimizing the overall code quality and implementing the solutions for them. I employed strategies for building collaborative environments that enable diverse audiences to support organizational decision-making in the field of computer science by enhancing the in-code comments, making them easily readable, and giving descriptive notes on the parameters being passed to each method. I demonstrated my ability to make supportive decision-making for software design stakeholders by implementing practical use case enhancements to the program with additional functionality such as being able to search by specific bid id and searching by a range of bid amounts. Each of these offers stakeholders valuable functionality that can be adapted to multiple use cases not just in this program but in future development of other software as well.

Through the multiple databases in the Android inventory management app I meet multiple course outcomes for this assignment showcasing my strengths in the computer science field by demonstrating my ability to use well-founded and innovative techniques, skills, and tools by researching how to hash data that needs to be stored securely, finding a reliable solution in a prebuilt library, and implementing that library into my artifact. I developed a security mindset in doing this that anticipated adversarial exploits in software architecture and designs with the user database by exposing potential vulnerabilities in the fact that the user password was previously being stored as plain text in the database. I developed a solution to mitigate the design flaw and ensure privacy by hashing the user password before storing it in the database. Ensuring the privacy of the sensitive data stored in the database. I employed strategies for building collaborative environments that enable diverse audiences to support organizational decision-making in the field of computer science by enhancing the in-code comments that improved the understandability of the code’s functions and allows for other industry professionals to come in and collaborate within the project when needed. The comments also allow stakeholders to easily review the code's functionality and make design changes and improvements that better meet their expectations before the deployment of the code. I demonstrated my ability to use well-founded and innovative techniques, skills, and tools in computing practice to implement computer solutions that deliver value and accomplish industry-specific goals by completing the enhancements to the storage and security of user passwords by hashing the password before storing them in the database which meets industry-standard software designs and best practices.

In conclusion, these artifacts not only align with the course outcomes but also paint a comprehensive picture of my competencies and growth as a computer science student. They showcase my proficiency in designing user-friendly software, implementing efficient algorithms, safeguarding data privacy, and facilitating effective collaboration, thereby encapsulating the full range of my talents and abilities. The creation of the ePortfolio in addition to the work displayed in the enhancements emphasizes my proficiency in C++, Java, XML, SQL, CSS, and HTML5.

Code Review

Table Of Contents

  • 0:00 - Intro
  • 2:10 - Databases
  • 12:10 - Software Design and Engineering
  • 1:19:41 - Android Inventory Management App Review Checklist
  • 1:34:14 - Algorithms and Data Structures
  • 1:54:07 - Binary Search Tree Review Checklist

Software Design and Engineering

The artifact I chose to demonstrate my abilities in software design and engineering is the Android inventory managment app I created in my CS-360 course in October of 2022. It requires the user to create a login that allows them to access the inventory app. Once logged in the user has multiple categories in which they can store various inventory items. The app allows the user to create, edit, and delete categories and items once inside each category.

Algorithm and Data Structures

The artifact I chose to demonstrate my abilities with algorithms and data structures is the binary search tree program I created in my CS-260 course in October 2021. It is a program that presents a menu for the user to load auction bids from a CSV file, print them to the screen, allow the user to also search for a specific bid by its id, and remove a specific bid from the data set.

Databases

The artifact I chose to demonstrate my skills in databases is the inventory app from my CS-360 course that I completed at the end of October 2022. It is an inventory management system designed as an Android app that manages three databases within the app, the user database, the category database, and the item database. It allows users to have a secure way to access and manage a database intuitively on a mobile device.

Address

18215 Foothill Blvd
Fontana, CA 92335
United States of America