Cole Flory's Portfolio

Showcasing my journey in Advanced Programming, Network Administration, and Game Development.

AP CSA & Coursework

Year 2 Concept Assignments

Click below to expand the full syllabus of my completed units.

Semester 1: Foundations of Advanced Programming (Days 1–40)

Focus: Build foundational skills in OOP, data structures, algorithms, and software engineering, culminating in a group inventory system project.


Unit 1: Advanced OOP (Days 1–4)
Topics: Object-oriented principles, inheritance, polymorphism, interfaces, abstract classes.
Key Activities: Implement class hierarchies and interfaces for a task management app.
Artifacts: Written program analysis, source files with classes and interfaces.


Unit 2: Basic Data Structures (Days 6–10)
Topics: Static/dynamic arrays, stacks, queues.
Key Activities: Compare array types, implement stack and queue operations.
Artifacts: Source files manipulating arrays, stacks, queues; UML diagram for task app.


Unit 3: Advanced Data Structures (Days 11–15)
Topics: Linked lists, doubly linked lists, hash tables, binary trees.
Key Activities: Implement and integrate advanced data structures into the task app.
Artifacts: Source files with linked lists, hash tables, trees; project update report.


Unit 4: Algorithms (Days 16–20)
Topics: Sorting (bubble, selection, merge, quicksort), searching (linear, binary), Big-O notation.
Key Activities: Implement and analyze sorting/searching algorithms for the task app.
Artifacts: Source files with algorithms, complexity analysis report.


Unit 5: Software Engineering Basics (Days 21–25)
Topics: Software Development Life Cycle (SDLC), requirements gathering, design patterns (singleton, factory), UML diagrams.
Key Activities: Plan task app features with user stories and UML.
Artifacts: SDLC flowchart, user stories, UML diagram, source file with design pattern.


Unit 6: File Handling and Testing (Days 26–30)
Topics: File handling, exception handling, unit testing, debugging.
Key Activities: Implement file operations, tests, and debugging for the task app.
Artifacts: Source files with file handling, tests, debugging log; testing report.


Unit 7: Career Exploration and Collaboration (Days 31–35)
Topics: CS careers, industry trends (AI, cloud computing), team collaboration.
Key Activities: Research CS roles, analyze trends, simulate agile meetings.
Artifacts: Career profile, trend analysis, team role plan, sprint review report.


Unit 8: Group Inventory System Project (Days 36–39)
Topics: Project planning, implementation, testing, and presentation.
Key Activities: Design, code, test, and present an inventory system using data structures and OOP.
Artifacts: Project plan with UML, source files, testing log, presentation file.


Unit 9: Semester Reflection (Day 40)
Topics: Reflect on progress, set goals for Semester 2.
Key Activities: Share achievements from task app and inventory system.
Artifacts: Written reflection.

Semester 2: Advanced Topics and Portfolio Development (Days 41–80)

Focus: Deepen skills in advanced algorithms, databases, agile practices, and portfolio development, culminating in an individual portfolio app project.


Unit 1: Graph-Based Algorithms (Days 41–45)
Topics: Graphs, adjacency lists/matrices, DFS/BFS, Dijkstra’s algorithm, dynamic programming.
Key Activities: Implement graph structures and algorithms for task dependencies in the task app.
Artifacts: Source files with graph implementations, BFS, Dijkstra’s, memoized algorithms; project report.


Unit 2: Software Design and Version Control (Days 46–50)
Topics: Advanced design patterns (observer, strategy), refactoring, Git (branching, pull requests).
Key Activities: Apply design patterns, refactor code, and collaborate via Git for the task app.
Artifacts: Source files with design patterns, refactored code, Git workflow diagram, pull request summary.


Unit 3: Databases (Days 51–55)
Topics: Relational databases, SQL (SELECT, INSERT, joins, aggregations), database integration, CRUD operations.
Key Activities: Design and integrate a task database with CRUD operations.
Artifacts: SQL query file, schema diagram, source files with database connectivity and CRUD.


Unit 4: Agile Development (Days 56–58)
Topics: Agile project management (Scrum, sprints), team roles (product owner, scrum master).
Key Activities: Simulate sprints and assign roles for task app development.
Artifacts: Sprint plan, team role description, sprint backlog.


Unit 5: Career and Portfolio Preparation (Days 59–63)
Topics: Advanced CS careers, portfolio enhancement, technical interviews.
Key Activities: Research CS roles, enhance portfolio with task app, practice coding interviews.
Artifacts: Career profile, portfolio plan, source file with solved coding problem, portfolio document.


Unit 6: Advanced Data Structures and Algorithms (Days 64–71)
Topics: Advanced OOP (composition, dependency injection), priority queues, balanced trees (AVL, red-black), greedy algorithms, divide-and-conquer.
Key Activities: Implement advanced structures and algorithms for the task app.
Artifacts: Source files with composition, priority queues, balanced trees, greedy, and divide-and-conquer algorithms; project reports.


Unit 7: Workplace Skills and Review (Days 72–74)
Topics: Conflict resolution, leadership, review of algorithms and software engineering.
Key Activities: Analyze team scenarios, review task app algorithms and agile plans.
Artifacts: Scenario analysis, review worksheet, critique report.


Unit 8: Individual Portfolio App Project (Days 75–79)
Topics: Project planning, implementation, testing, and presentation.
Key Activities: Design, code, test, and present a personal portfolio app using Semester 2 concepts.
Artifacts: Project plan with UML, source files, testing log, test report, documentation, presentation file.


Unit 9: Course Reflection and Showcase (Day 80)
Topics: Reflect on course progress, showcase task and portfolio apps, set career goals.
Key Activities: Present achievements and discuss future aspirations.
Artifacts: Written reflection.

Certifications & Awards

AP Computer Science A

AP Computer Science A

Academic Certification

Computer Programming Advanced

Computer Programming, Advanced

YouScience Industry Certification

Computer Programming 2 Java

Computer Programming 2: Java

YouScience Industry Certification

Computer Programming 2 C#

Computer Programming 2: C#

YouScience Industry Certification

Computer Programming 2 Python

Computer Programming 2: Python

YouScience Industry Certification

Computer Programming 2 C++

Computer Programming 2: C++

YouScience Industry Certification

Computer Programming 1

Computer Programming 1

YouScience Industry Certification

Exploring Computer Science

Exploring Computer Science

YouScience Industry Certification

CTE Career Pathway Cord

CTE Career Pathway Completer Cord

Awarded by the Granite Technical Institute

Project Showcase

CarbonCopy

CarbonCopy (CC)

Individual flagship AP CSA project focusing on advanced UI and state management.

View Code
KonQuest

KonQuest

Major group project leveraging complex class hierarchies, OOP principles, and data structures.

View Code
PacMan Frenzy

PacMan Frenzy (Unity)

A complete PacMan clone built using the Unity engine and C# scripting mechanics.

View Code
Algorithm Optimization

Algorithm Optimization

A project focusing on optimizing algorithms for performance and efficiency.

View Code
Transform Manipulations

Transform Manipulations

A project demonstrating transform operations in C# Unity.

View Code
Lerp, Slerp, PingPong

Lerp, Slerp, PingPong

A project demonstrating interpolation and animation techniques in C# Unity.

View Code
Pathfinder State Machine

Pathfinder State Machine

A project demonstrating state management and AI behavior in C# Unity.

View Code
Input Systems

Input Systems

A project demonstrating various input handling techniques in C# Unity.

View Code
Material Manipulations

Material Manipulations

A project demonstrating material properties and rendering techniques in C# Unity.

View Code
Blendshapes

Blendshapes

A project demonstrating blend shape animations in C# Unity.

View Code
Collisions and Triggers

Collisions and Triggers

A project demonstrating collision detection and trigger mechanisms in C# Unity.

View Code
Object States

Object States

A project demonstrating state management for game objects in C# Unity.

View Code
Member Lists and Sound Effects

Member Lists and Sound Effects

A project demonstrating member variable management and audio integration in C# Unity.

View Code
Prefabs, Scenes, and Resources

Prefabs, Scenes, and Resources

A project demonstrating the use of prefabs, scenes, and resources in C# Unity.

View Code
Weather App

WeatherApp

A dynamic web application demonstrating real-time API integration and data parsing.

View Code
Magic 8 Ball

Magic 8 Ball

A digital magic 8-ball utilizing randomized logic and user interaction.

View Code
90’s Website

90’s Website

A retro-themed web development project focusing on HTML and styling.

View Code
Choose Your Own Adventure

Choose Your Own Adventure

An interactive, branching narrative text-based game driven by decision logic.

View Code
Hello World

Hello World

A foundational introductory programming artifact.

View Code
Madlibs

Madlibs

A string manipulation project built around dynamic user-input logic.

View Code
Racing Game Server

Racing Game Server

Networking and server logic backend handling a multiplayer racing environment.

View Code
Racing Game

Racing Game

Client-side gameplay mechanics, physics, and rendering for a racing experience.

View Code
Reaction Timer

Reaction Timer

An application that accurately calculates, logs, and displays user input speeds.

View Code

Experience & Activities

Network Administrator & IT Job Shadowing

Summer 2024 | JCC

Discussing and developing a plan with JCC admin, replacing and putting together new Uninterruptible Power Supplies (UPS) for the servers present on site, troubleshooting connected devices and device group switch discrepancies with commands in the console and physical environment, setting up and deploying IP phones, reconfiguring network infrastructure and switches, setting up network port rules, reported results to JCC admin.

Teaching & Mentorship - Granite Technical Institute

Aug 12, 2024 - May 29, 2026

Cybersecurity & Cyberforensics (Network security): Set up traditional labs, LAN and VLAN with network switches, used various tools such as nmap, wireshark, hashcat, john the ripper, ettercap to simulate and resolve open ports, unencrypted network traffic and viewing, password encryption, decryption strategies, password cracking strategies, and ARP poisoning attacks, and defending against Man-in-the-Middle Attacks (MITM).


Computer Programming 1 & 2 (Unity & C#): Helping classmates learn and troubleshoot game development mechanics.

University of Utah Student Programs

Summer 2023 - Summer 2025

Python Programming: Completed 2 years of Python coursework (Summer 2024, Summer 2025), focusing on syntax, logic structures, and advanced problem-solving.


Web Development: Completed 1 year of Web Development (Summer 2023), learning to build and structure front-end environments using HTML, JavaScript, and CSS.

Code Samples

Demonstrating proficiency in advanced computer science concepts.

Classes and Objects

// From: CarbonCopy (CC) - File Architecture Core
public class FileScanner {
    public String rootPath;
    public boolean isRecursive;

    private int totalFiles = 0;
    private int scannedFiles = 0;

    public interface ScanProgressListener {
        public void onProgressUpdate(float currentPercent, int scannedFiles, int totalFiles);
    }
}

Arrays / ArrayLists

// From: CarbonCopy (CC) - Duplicate Sorting & Content Map Integration
for (File file : files) {
    if (file.isFile() && isSupportedFileType(file.getName())) {
        try {
            byte[] fileBytes = Files.readAllBytes(file.toPath());
            long fileSize = file.length();
            long lastModified = file.lastModified();

            String contentKey = fileSize + "|" + java.util.Arrays.toString(fileBytes);
            FileInfo fileInfo = new FileInfo(file, fileSize, lastModified);

            if (duplicateFiles.containsKey(contentKey)) {
                duplicateFiles.get(contentKey).add(fileInfo);
            } else {
                List<FileInfo> fileList = new ArrayList<>();
                fileList.add(fileInfo);
                duplicateFiles.put(contentKey, fileList);
            }
        } catch (Exception e) { /* Exception safety handling */ }
    }
}

Inheritance / Polymorphism

// From: KonQuest - Polymorphic Game Character Inheritance
public class Lizard extends Enemy {
    boolean direction;
    
    public Lizard(int x, int y) {
        super(x, y);
        height = 50;
        width = 100;
        this.x = x;
        this.y = y;
    }

    public Lizard(Lizard other) {
        super(other);
        this.direction = other.direction;
    }
}