CS-103
Introduction to Computer Science in Python
Project Ideas:
-
Text-Based Adventure Game: Build a text-based adventure game where users navigate through a story, make choices, and solve puzzles using Python.
-
Simple Calculator: Create a command line calculator that handles basic math operations and interacts with the user.
-
To-Do List App: Develop a basic to-do list application that reads from and writes to a file.
Resources
A list of resources to help you work on the projects above
CS-203
Object-Oriented Programming in Java
Project Ideas:
-
Student Management System: Design a system using classes, inheritance, and polymorphism to manage student records, including enrollment and grading.
-
Simulation Game: Create a simulation (like a zoo or traffic simulation) to model various entities and their interactions with object-oriented design.
-
Inventory Tracker: Build an inventory management application demonstrating encapsulation and interfaces, tracking products and orders.
Resources
Resources to help with Java and object-oriented programming projects
CS-303
Algorithms and Data Structures
Project Ideas:
-
Sorting Visualizer: Implement a tool that visually demonstrates how different sorting algorithms work on an array of numbers.
-
Maze Solver: Develop a program that uses search algorithms (like DFS or BFS) to solve a maze or find the shortest path in a grid.
-
Data Search Tool: Create a command-line tool that loads a dataset and performs searches using various data structures, comparing their efficiency.
Resources
Resources to learn more about algorithms and data structures
CS-330
Computer Organization and Assembly Language Programming
Project Ideas:
-
Assembly Emulator: Write a simple emulator that interprets a set of assembly instructions, simulating a basic CPU.
-
Arithmetic in Assembly: Develop an assembly language program that performs arithmetic operations using registers and memory manipulation.
-
Bootloader Message: Create a minimal bootloader that displays a custom message during startup to understand low-level programming.
Resources
Resources to help with assembly language programming
CS-332
Systems Programming
Project Ideas:
-
Mini Shell: Build a mini shell in C that accepts and executes user commands, supporting features like redirection and piping.
-
Multi-Threaded Server: Implement a simple server using threads to handle multiple client connections concurrently.
-
File System Explorer: Create a command-line utility that interacts with system calls to explore and display file system information.
Resources
Resources to learn more about systems programming in C
CS-221 / CS-421
Web Development / Advanced Web Application Development
Project Ideas:
-
Personal Portfolio Website: Design and build a responsive website to showcase your projects using HTML, CSS, and JavaScript.
-
Full-Stack Blog Platform: Create a dynamic web application with a front-end interface and a RESTful API back-end for managing posts and comments.
-
Interactive To-Do App: Develop a web-based to-do list application that integrates with a database and supports live updates.
Resources
Resources to help with web development projects
Debugging Workshop
The ACM @ UAB Debugging Workshop was an in-person live lecture. While we perfect recording our workshops. Check out the following videos to learn more about Breakpoint style Debugging
Got ideas?
Let us know if there is anything you'd love for us to cover by joining our Discord: Discord