Skip to content

This repository contains all the code that I have written while studying computer science.

Notifications You must be signed in to change notification settings

Maayan12k/UniversityCSWork

Repository files navigation

Computer Science Work Repository

This repository showcases a collection of projects and assignments that span multiple core areas of computer science, from low-level hardware interactions to high-level algorithmic problem solving. It represents a comprehensive foundation in understanding computer systems, data structures, and algorithms, which are essential for developing efficient software.

Repository Overview

This repository is organized into five main areas:

  1. Assembly Language

    • Low-level programming using assembly language, focusing on direct interaction with hardware components.
    • Demonstrates understanding of CPU architecture, memory management, and instruction sets.
  2. Computer Architecture

    • Explores how computers are structured and operate at the hardware level.
    • Includes topics such as logic gates, processor design, memory hierarchy, and performance optimization.
  3. Data Structures and Algorithms

    • Contains implementations of fundamental data structures (e.g., arrays, linked lists, trees, graphs) and algorithms (e.g., sorting, searching, dynamic programming).
    • Emphasizes algorithm design, complexity analysis, and real-world application.
  4. Numerical Methods

    • Focuses on solving mathematical problems computationally, using techniques such as interpolation, root finding, and solving systems of equations.
    • Includes iterative methods, matrix operations, and polynomial manipulation.
  5. GPU Computing

    • Introductory work in massively parallel programming using CUDA C on NCSA GPUs.
    • [Space to add future projects/programs here].

The Learning Journey: From Hardware to Algorithms

This repository follows a progression from understanding low-level hardware interactions in Assembly Language and Computer Architecture to mastering high-level algorithmic thinking in Data Structures and Algorithms. By working through these areas, I have built a robust foundation in both computer system fundamentals and the design of efficient software solutions.

  • Assembly Language gives insight into how software interacts directly with hardware, allowing for efficient resource management.
  • Computer Architecture bridges the gap between software and hardware, providing a deeper understanding of how code executes on real machines.
  • Data Structures and Algorithms take the lessons from lower levels and apply them to build scalable and optimized solutions for complex computational problems.
  • Numerical Methods showcases the application of computational techniques to solve scientific and engineering problems.
  • GPU Computing introduces the power of parallel processing to handle data-intensive computations, enhancing performance significantly.

How to Navigate

Each directory corresponds to one of the five focus areas. Inside each directory, you'll find code implementations and detailed explanations.

  • AssemblyLanguage/: Contains assembly programs demonstrating fundamental hardware interactions.
  • ComputerArchitecture/: Projects exploring the design and performance of computer systems.
  • DataStructuresAlgorithms/: Implementations of common data structures and algorithms.
  • NumericalMethods/: Numerical computation projects tackling mathematical problems.
  • GPUComputing/: CUDA C programs focusing on parallel computing techniques.

About

This repository contains all the code that I have written while studying computer science.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published