A strong-willed individual with over 10,000 hours of experience in software engineering.
Passionate learner, dedicated leader, and driven engineer with a deep love for technology and people.
Last Update: 9/02/24
PythonTutor
Developed a web-based educational platform using Django and RestrictedPython to assist instructors in teaching Python programming through a guided, constraint-based approach. The platform allows students to code within a sandboxed environment, offering features such as code saving, hint requests, and constraint-based testing. The system provides immediate feedback, helping students with basic proficiency to progress towards correct solutions. It is designed to clarify instructor expectations and enhance learning outcomes through interactive guidance and error feedback. Future enhancements include auto-grading, improved usability, and integration with AI-driven support tools.
- Developed a Django-based platform to assist instructors in teaching Python by providing a unified interface for problem creation, testing, and feedback, enhancing both instructor and student experiences.
- Implemented a sandboxed environment using RestrictedPython to securely run and test student code, offering real-time hints, error underlining, and feedback to guide learners towards correct solutions.
- Enhanced user experience by integrating features like multi-tab support, local code saving, and detailed feedback mechanisms, improving the clarity and usability of coding tasks for students.
- Conducted preliminary testing with a FizzBuzz implementation, demonstrating the tool’s effectiveness in guiding users with basic Python proficiency towards correct solutions, while identifying areas for further development.
- Created a sandboxed Python environment with real-time feedback and interactive guidance.
- Designed an IDE-like user interface with features such as multi-tab support and code saving.
- Designed tools to allow users to easily create new projects, including feedback, prompts, guidance, and grading.
- Built a Django webserver to host and run the tool and its user interface.
Final Report.docx
(PDF embed)
VERAPAK
________ _______________ ___ __/__________________________________ ____/__ /________ __ __ / _ _ \_ __ \_ ___/ __ \_ ___/_ /_ __ /_ __ \_ | /| / / _ / / __/ / / /(__ )/ /_/ / / _ __/ _ / / /_/ /_ |/ |/ / /_/ \___//_/ /_//____/ \____//_/ /_/ /_/ \____/____/|__/
__ __ _____ _____ _ \ \ / / | __ \ /\ | __ \ /\ | | \ \ / /__| |__) | / \ | |__) / \ | | __ \ \/ / _ \ _ / / /\ \ | ___/ /\ \ | |/ / \ / __/ | \ \/ ____ \| | / ____ \| < \/ \___|_| \__/ \___| /_/ \___|\_\ Alias: verapak == python /src/VERAPAK Call 'verapak' for usage
verapak:latest
Refutation-based Adversarial Robustness Verification of Deep Neural Networks
- Improved the safety and robustness of numerous and diverse AI models by up to 99.96%
- Discovered flaws in the soundness of two state-of-the-art Deep Neural Network verification tools.
- Used modern AI tools, standards, and deployment techniques.
Work towards publication is in progress.
Hustle Web App
A web app built to connect workers with people that need yard work done. This could include lawn mowing, leaf raking, or snowblowing.
- Created design requirements to customer specifications.
- Used use-case and activity diagrams to ensure all team members stayed in sync.
- Used Agile software development principles.
- Held weekly stand-up meetings
Built in a team of 4 in a series of sprints.Course project. The professor acted as the customer, with a specific goal in mind. All design requirements had to be cleared by him.
Use Case & Activity Diagrams.pptx
(PDF embed)
Final Presentation.pptx
(PDF embed)
Traffic Simulation
Completed for class Algorithms Under Uncertainty
README.md
(HTML embed)
Traffic
The plot, when run, simulates traffic.
The colors represent the number of vehicles on the road (albeit with no respect to the length of the road segment),
as a percentage of the maximum-count road segment.
Hover events
Roads
Hover over roads to see their weights (the time in minutes it takes to travel across the node when no traffic is present)
Intersections
Hover over intersections to see their latitude/longitude, and the number of vehicles currently queueing at that intersection.
They also show an icon representing their type (🚦: Traffic Light, 🛑: Stop Sign, ◯: Roundabout )
Stop signs will also show which sides have stop signs.
EW
indicates that North-South traffic is free-flowing, while East-West traffic must stop.
NS
similarly indicates that East-West traffic is free-flowing, while North-South traffic must stop.
Generators
Hover over generators to see how much traffic is generated from that direction at that intersection.
Logic
Roads
Road weight increases depending on how many cars are on it following the equation:
Intersections
🛑 Stop Signs (All-way)
Stop signs allow one car from one direction every 2 seconds, plus all cars that do not collide with it.
For example, if it’s the North-bound traffic’s turn, then the first North-bound car can go.
If it turns left, then the East-bound car can go if it is turning right, the South-bound car can go if it is turning left, and the West-bound car can go if it is turning right.
If it goes straight, then the East-bound car can go if it is turning right, the South-bound car can go if it is going straight (if the East-bound car didn’t turn right) or turning right, and the West-bound car cannot go.
Etcetera.
Stop sign logic
Scenario 1: Left turn
Allowed: - EB right - SB left - WB right ✓ ✓ ↓ SB ↑ @←← ↘ ╰←←←✓ EB ↖ ↘ WB ✓→→→╮ ↖ →→✓ ↓ NB ↑ ✓ @
Scenario 2: Straight
Allowed: - SB right - EB right OR - SB straight ✓ @ ✓ @ ↓ SB ↑ ↓ SB ↑ ✓←←←╯ ↑ ←X ← ↓ ↑ ←X EB ↑ WB EB ↓ ↑ WB ✓→→→╮ ↑ →X X→ ↓ ↑ → ↓ NB ↑ ↓ NB ↑ ✓ @ ✓ @
Scenario 3: Right
3a: EB right Allowed: - SB right - WB right OR - WB straight X ↓ SB ↑ ↓ SB ↑ ←←←╯ ╰←←← ←←←←←←←←←←←← EB WB EB WB #→→→╮ ╭→→→@ #→→→╮ ╭→→→@ ↓ NB ↑ ↓ NB ↑ # @ # @
3b: EB left Allowed: - SB right - WB left ✓ # ↓ SB ↑ ✓←←←╯ ↗ ←✓ EB ↗ ↙ WB #→→ ↙ ╭→→→@ ↓ NB ↑ ✓ @
🛑 Stop Signs (Tributary)
Stop signs can allow one car from tributaries every 2 seconds, while all cars from the primary roads continue through.
Cars are only allowed to continue through the intersection if they take an action that is not going to collide with present through-traffic.
🚦 Traffic Lights
Traffic lights have phases that can contain the following parts for each direction: left turns
, right turns
, straights
, and left yields
.
Right yields are always assumed to be on.
No phase can contain phase parts that collide with one another.
These phases are rotated through by the active PhaseController
.
◯ Roundabouts
Roundabouts let one car through from each direction every 2 seconds.
Generators
Generators generate, on average (using a normal distribution), the given number of cars per minute.
Vehicles’ destinations may be any intersection. Each intersection has a weight, increasing the odds of being selected as a destination.
Run Options
python w/ env
- Open a Windows Command Prompt
- Yes…it unfortunately has to be Windows, unless you want to make your own env that matches what I used
- Run
env\Scripts\activate
- Run
python app.py
- Open
localhost:8050
Visual Studio
- Open
Traffic.sln
- Press
Start Without Debugging
(or useCtrl+F5
) - Open
localhost:8050
USU Graph Analysis
This research project aimed to explore the relationships between various academic units at Utah State University (USU) through graph analysis. By creating a graph representation of USU's colleges, departments, programs, and courses, the study sought to understand the interconnections and similarities between these entities. The research employed various similarity scoring methods and community analysis techniques, such as the Jaccard coefficient, SimRank, and the Louvain algorithm, to determine how programs, particularly the Computer Science department, are related within the university's structure. The findings offered insights into whether Computer Science should be placed in the College of Science or Engineering and provided general guidance on program switching and minors for students. The project highlighted the importance of data quality and graph structure in educational data analysis.
- Conducted graph analysis on academic programs at Utah State University to explore interconnections between colleges, departments, and courses.
- Developed a comprehensive data model using NetworkX to visualize and analyze relationships across 8 colleges, 52 departments, and 647 academic programs.
- Utilized Jaccard, SimRank, and Panther similarity algorithms to measure and compare the academic similarity of programs within USU.
- Implemented community detection algorithms (e.g., Louvain) to identify clusters of closely related academic programs.
- Performed web scraping and data extraction using Python to collect program, course, and enrollment data from university systems.
- Presented findings that informed discussions on the optimal placement of the Computer Science department within university colleges.
- Collaborated with the USU Registrar’s Office to obtain and validate academic data while ensuring FERPA compliance.
- Generated insights on program similarities that support academic advising and curriculum development.
Analyzed academic relationships at Utah State University using graph theory to assess program connections and department placements.
- Conducted graph analysis of USU’s academic structure.
- Developed data models with NetworkX.
- Applied similarity algorithms to compare programs.
- Used community detection to identify related clusters.
- Scraped and extracted data using Python.
- Presented findings on department placement.
- Ensured data compliance with FERPA.
- Provided insights for academic advising.
Abstract:
This study shows the similarity between programs, departments, and colleges at Utah State University. With the data collected from the university’s website, connections were made between the different programs and departments. Data was collected through the university’s website and registrar. After the data was obtained and preprocessed a graph with all of the departments and associated programs and courses was created. It analyzes the similarity between programs, majors, and minors at USU using a variety of algorithms like Jaccard, SimRank, and Panther Similarity, and Common Neighbor Centrality as well as the Louvain algorithm. Computer Science is used as an example, and is shown to easily fit into either the College of Engineering or the College of Science quite easily.