This repository contains the Java programming assignments I completed while taking COS 126 at Princeton during my first year. The course serves as an introduction to computer science and programming, emphasizing interdisciplinary applications.
COS 126 introduces the fundamental concepts of programming and computer science. It covers topics such as basic data types, conditionals, loops, arrays, I/O, and introduces object-oriented programming concepts.
The assignments in this course covered a wide range of introductory programming concepts and applications. Note that some of my implementations topped the rankings on the class leaderboards.
Assignment | Description | Topics Learned |
---|---|---|
Text generation using Markov chains
|
Arrays, random number generation, text processing
|
|
Implementation of Hamming code for error correction
|
Bitwise operations, error detection and correction
|
|
Basic image classification using machine learning concepts
|
2D arrays, basic ML algorithms, image processing
|
|
Simulation of a guitar-like instrument
|
Audio synthesis, user input handling, real-time processing
|
|
Generation of the Sierpinski triangle fractal
|
Recursion, geometric algorithms, graphics programming
|
|
Simulation of gravitational interactions between celestial bodies
|
Physics simulations, numerical integration, vector mathematics
|
|
Implementation of algorithms to solve the TSP
|
Graph algorithms, optimization problems, heuristics
|
This README format was inspired by Ryan Albertson's COS226 repository.