MLDash

Capstone Objectives & Outcomes

Course Outcome 1:

You Employed strategies for building collaborative environments that enable diverse audiences to support organizational decision-making in the field of computer science by completing the following enhancements:

  • Integration and redesign of the Cartpole artifact and Dashboard artifact produced an easy to use interface for users new to the topic of reinforcement learning.
  • Refactoring of the code into a more modular form allows code to be more easily reused or repurposed, and easier to understand.
  • Detailed documentation in the form of inline code comments allow people to understand what the code is doing, even if they are not familiar with the technologies being used.
  • Addition of database write functionality allows past work to be a source of insight for any user.
  • Code from various stages of development is stored on GitHub.
  • The names of files, functions, and variables were updated to reflect the new context

Course Outcome 2:

You 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 completing the following enhancements:

  • Dashboard artifact data table an data charts were modified for use with data generated by the reinforcement learning algorithm, with additional data visualization graphics added, to provide intuitive representations that can assist users in task-specific problem solving.
  • Enabled real-time animation during the training of the learning algorithm
  • Created a detailed code review of the original artifacts, and additional documentation including updated code comments and a detailed README file.
  • Removal of unreachable or unused code, and the refactoring of code to use an approach that is more object oriented.

Course Outcome 3:

You 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 completing the following enhancements:

  • Implemented a major upgrade to the learning algorithm itself, changing the experience replay sampling method from random sampling to prioritized sampling, using a customized buffer. This reduced memory requirements by about 75%.
  • Changed neural network optimizer to RMSprop, which uses 1/3 of the memory that the Adam optimizer did, due to the way it computes moving averages.
  • Addition of data cleaning methods to the code responsible for rendering data charts with trendlines, so that the program ignores records that could cause division-by-zero conditions and records that do not contatain compatible data (the header, for example)

Course Outcome 4:

You Demonstrated an ability to use well-founded and innovative techniques, skills, and tools in computing practices for the purpose of implementing computer solutions that deliver value and accomplish industry-specific goals by completing the following enhancements:

  • Integrated and repurposed the functionality of multiple programs, upgraded the new functionality, added new functionality, and refactored the code to be more modular.
  • Designed a task-specific interface that addresses requirements of target users while making the task of training a reinforcemnt learning algorithm more user friendly.
  • Dependencies were updated to reflect more recent versioning

Course Outcome 5:

You 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 completing the following enhancements:

  • Increased use of exception handling throughout the code
  • Enabled the use of SCRAM-SHA-256 based authentication to the database, restricting access to users with valid credentials.
  • Restricting visibility of Dashboard content until a user has been successfully authenticated.
  • Addition of a security class to create a session-specific security object, resulting in secure encoding through the use of a single-use variable length, cryptographically secure random key. Instead of storing a fixed username and password in the source code as cleartext, user input to the login screen is acted upon by security object class methods. These methods generate a cryptographically secure random byte sequence using the secrets library, truncate it to the length of the byte translation of each credential, and XOR the credential with the modified random. The encoded credentials and security object are then used to create a database agent object that uses the security object to decode the credentials before inserting them into the connection string.