top of page

Computer Science & Software Engineering

CSSE teaches the basics of coding, engineering, and how computer systems work. It gives students the skills they need to start creating real software and understanding modern technology.

Installing Linux VM

Installing Linux Ubuntu24 Virtual Machine

UbuntuCoF.svg.png
image.png
My Notes ->
image.png

๐Ÿงฑ Virtual Machines

Virtual machines (VMs) are isolated “fake” computers that run on top of real hardware. Each VM has its own operating system, files, and software, completely separated from the main machine.
This gives developers clean, disposable environments where they can:

๐Ÿงช Test risky software

๐Ÿ› ๏ธ Build and break things safely

๐Ÿ” Reset systems instantly

If something crashes, the real computer stays untouched.

๐Ÿง Ubuntu (Linux)

Ubuntu is a stable, developer-friendly Linux operating system built for serious work:

๐Ÿ“ฆ Huge package ecosystem

๐Ÿ”ง Predictable, powerful tools

๐ŸŒ Massive community support

It’s one of the most popular Linux distros because it’s reliable, fast, and perfect for coding, servers, and VMs.

๐Ÿง  Why They Work So Well Together

Running Ubuntu inside a virtual machine gives you a clean, professional Linux environment on any computer.
It’s how developers test software, run servers, and build real systems without messing up their main OS.

InfoTechCenter

Python Programing

If you want to see all the code go click the github logo below

๐Ÿš—๐Ÿ’ป Smart Car System (Python + VS Code)
We built a Python-powered Smart Car that runs in the terminal and behaves like a real vehicle’s onboard computer. It boots like an operating system, reacts to conditions, and makes decisions automatically instead of waiting for user input.

๐Ÿ”Œ Startup / OS Branch

When the car turns on, the program runs a full system startup just like a real vehicle:

  • ๐Ÿ” Security checks

  • โš™๏ธ System loading

  • ๐Ÿ“ก Status messages
    This makes the program feel like a real embedded car OS instead of a basic script.

๐ŸŒจ๏ธ Weather Branch

The Smart Car constantly checks driving conditions.
If snow is detected:

  • ๐Ÿ›ž Switches to a safer driving mode

  • ๐Ÿšฆ Lowers the speed limit

  • โฐ Pushes the alarm earlier so the driver has extra time

The system adapts automatically to keep the driver safe.

โ›ฝ Gasoline Branch

The fuel system monitors the tank in real time:

  • ๐Ÿ“Š Checks fuel level

  • ๐Ÿงฎ Calculates miles remaining

  • ๐Ÿ›‘ Decides if a gas stop is required

If fuel is low, it updates the alarm and trip plan so the driver doesn’t run out.

๐Ÿง  Smart Decision System

Using Python branching logic and system-style output, the Smart Car doesn’t just display info — it thinks.
It makes real-time decisions the way an actual modern car computer would

image.png
6124991.png
Visual_Studio_Code_1.35_icon.svg.png
gitkraken-logo-dark-sq.png
UbuntuCoF.svg.png
VirtualBox-Logo.png

Arduino MicroController

Arduino
image.png
6124991.png
image.png
gitkraken-logo-dark-sq.png
image.png
image.png
image.png

๐ŸŽต๐Ÿ”ง Music Boy (Arduino + C++)

We built an Arduino-powered MP3 player that functions like a real handheld music device, complete with physical controls, live display feedback, and automatic volume adjustment — all packed into a custom 3D-printed enclosure designed in Onshape.

๐Ÿ”Š Playback Control Branch

Music Boy gives the user full control over their music through physical buttons wired directly to the Arduino:

  • โญ๏ธ Skip to the next track

  • โฎ๏ธ Go back to the previous track

  • โฏ๏ธ Toggle play and pause The buttons use cooldown-based debounce logic so every press registers cleanly without accidental double-triggers.

๐Ÿ“บ LCD Display Branch

A 16x2 I2C LCD keeps the user informed in real time:

  • ๐ŸŽต Shows the current track number

  • ๐Ÿ”‰ Displays live volume level

  • ๐Ÿ’ฌ Flashes action messages like ">> Next Track" or "Paused" before returning to track info The display updates automatically based on what the MP3 module reports back.

๐ŸŽ›๏ธ Volume Control Branch

A B10K potentiometer handles smooth, analog volume adjustment:

  • ๐Ÿ“ˆ Reads a raw value from 0–1023

  • ๐Ÿ”ข Scales it to the MP3 module's 0–30 volume range

  • โšก Only sends an update when the value actually changes to avoid unnecessary commands

๐Ÿง  Smart Feedback System

Using C++ logic and serial communication with the YX5300 MP3 module, Music Boy doesn't just play audio — it listens. It reads responses from the MP3 module, parses track information, and keeps every part of the display in sync automatically, the way a real embedded media system would.

If you want to see all the code go click the github logo 

Tello Drones

Tello Drone
Visual_Studio_Code_1.35_icon.svg.png
sdk-logo.png
image.png
gitkraken-logo-dark-sq.png

 Tello Drone Hoop Competition (Python)
We programmed a DJI TelloEDU drone in Python to autonomously fly through 3 hoops in a competition setting. The project was organized across 3 Git branches. The main branch held the base template — a UDP socket connection to the drone, a sendmsg() helper function with sleep timing, and a background receive thread to catch drone responses. The test branch was where we learned how the drone actually operates, experimenting with commands like takeoff, land, battery, and basic movement to understand how the drone responds in real space. The comp branch was the finished competition flight: the drone takes off, executes two precision go commands to reach the first two hoops with exact x/y/z coordinates and speed, then flies a pair of curve commands to arc smoothly through the third hoop, spins 180° clockwise, and lands — with battery and temperature checks at the end. 

Sphero Bolt Programming

Sphero Bolt Programming

THE MAZE

IMG_5568.jpg

      ↑ Start Here

image.png
gitkraken-logo-dark-sq.png
image.png
image.png

Sphero Bolt Maze Comp

For a Sphero Bolt maze competition, my partner and I programmed a robot to autonomously navigate a physical maze using JavaScript in the Sphero EDU environment. We built a testing branch first to experiment with movement commands and LED matrix animations before writing our final competition code. The program used timed roll commands with specific headings and speeds to move the Bolt through the maze, combined with LED color changes and sound effects at key checkpoints. Our robot was the first to clear every checkpoint and complete the maze.

bottom of page