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 spanning core areas of computer science, from low-level hardware interactions to high-level algorithmic problem-solving, machine learning, and artificial intelligence. It reflects a strong foundation in computer systems, algorithms, and data-driven computing.

Repository Overview

This repository is organized into six 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

    • Practical experience with massively parallel programming using CUDA C, executed on the NCSA Delta supercomputer node.
    • Custom CUDA kernels for:
      • Matrix Multiplication: Multiple versions optimized for performance benchmarking.
      • Vector Multiplication: High-performance implementations.
      • Convolution Operations: Designed to measure and compare performance under varying conditions.
    • Focuses on performance measurements and optimizations for parallel computation.
  6. Machine Learning & AI

    • Practical experience with machine learning techniques and theory.
    • Supervised Learning: Implementations of regression, classification, and neural networks.
    • Unsupervised Learning: Clustering techniques and dimensionality reduction.

The Learning Journey: From Hardware to Intelligent Systems

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 demonstrates the power of parallel processing to accelerate data-intensive computations and highlights the importance of performance optimization in modern computing.
  • AI & ML Harnessing data-driven intelligence for predictive modeling and decision-making.

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, with performance measurements and custom kernel implementations.
  • MachineLearningAI/: Machine learning models, deep learning experiments, and AI algorithms. (In Progress)

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