Skip to content

andreipaliy/Computer-Science-Course-Training

Repository files navigation

🧠 Computer Science Course Training

This repository is a personal, structured training ground for key Computer Science topics, implemented hands-on in JavaScript. It covers fundamental data structures, memory management principles, asynchronous and reactive programming, functional abstractions (like monads and functors), parser combinators, and more.


📁 Project Overview

Each file in this repo focuses on a particular topic from CS theory, implemented in code to reinforce conceptual understanding and algorithmic thinking.

✅ Covered Topics

1. Core Data Structures & Memory Mechanics

Core Data Structures & Memory Mechanics.js

  • Stack & Heap explanation with simulation
  • Primitive vs reference types in memory
  • Manual object lifecycle examples
  • Low-level mechanics behind arrays and objects in JS

2. Doubly Linked List & ArrayBuffer

Dubly Linked List & Array Buffer.js

  • Manual implementation of a doubly linked list
  • Memory-efficient representation using ArrayBuffer and DataView
  • Binary-level memory manipulation and pointer logic in JavaScript

3. Container Types

Container Types.js

  • Implementation and distinction between Option (Maybe), Result, Either containers
  • Inspired by functional programming languages like Haskell and Rust
  • Examples of error handling, chaining, and immutability

4. Asynchronous Iterators & Reactive Programming

Asynchronous Iterators & Generators. Reactive Programming technique.js

  • Custom implementation of asynchronous iterables
  • Reactive event streams and pipeline composition
  • for-await-of, push-pull paradigms, and operator chaining

5. Generators, Parsers & Parser Combinators

Generators, Parsers, Parser Combinators (compositions).js

  • Token stream parsing using generators
  • Simple parser combinators from scratch
  • Composition-first design (map, flatMap, sequence, alt)
  • Great intro to building language processors or DSLs

6. Monads & Functors

Monads & Functors.js

  • Pure JS implementation of monads, functors, and applicatives
  • Identity, Maybe, IO-like examples
  • Composition through map, chain, flatMap
  • Comparison with traditional imperative patterns

🔧 Installation & Usage

No external dependencies are required. You can simply clone and explore the .js files.

git clone https://github.com/andreipaliy/Computer-Science-Course-Training.git
cd Computer-Science-Course-Training

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •