CS-Roadmap
CS-Roadmap copied to clipboard
Courses that I studied so far related to CS or Technology
Contents
- Summary
- Curriculum
- Projects
Summary
- This repository organizes all taken courses along with my solutions to assignments & any side project that I have done.
- If you need Real-Time Help in these courses, Join AC Discord or OSSU's Server.
- It's all thanks to OSSUs' incredible help, curriculum & courses order.
Curriculum
- CS Essential Prerequisite Tools & Knowledge
- Intro CS
- Introduction to Programming
- Introduction to Computer Science
- Core CS
- Core Programming
- Core Theory
- Algorithms-&-Data-Structures
- Courseless
- Problem-Solving
CS Essential Prerequisite Tools & Knowledge
- Computer Science concepts.
- Learning how to Google.
- Learning Git.
- Learning Basic Linux.
- Learning how to take notes.
Intro CS
Introduction to Programming
Topics covered:
simple programs
simple data structures
Introduction to Computer Science
Topics covered:
computation
imperative programming
basic data structures and algorithms
Introduction to Computer Science and Programming using Python
Core CS
Core Programming
Topics covered:
programming concepts
basic syntax
basic data structures
data structures
static typing
dynamic typing
divide and conquer
unit testing
programming paradigms
functional programming
ML-family languages (via Standard ML)
Lisp-family languages (via Racket)
object oriented programming or OOP
racket
java
Ruby
Universal Libraries
tools
C++
algorithms
algorithm complexity notions
basic OS
basic computer architecture
UML
software engineering
advanced syntax
object-oriented
object-oriented analysis
object-oriented design
design patterns
software architecture
design for testing
threading
lexical scoping
string search
| Course | Topics Covered | Course Portfolio |
|---|---|---|
| Java YT Tutorials by Derek Banas |
|
GUI Multiplayer Chess Over Local Connection (Check Side-Projects for topics covered by this project) |
| How to Code - Simple Data & How to Code - Complex Data |
|
My Solution |
| Programming Languages, Part A, Programming Languages, Part B & Programming Languages, Part C which covers all topics in "Concepts of Programming Languages by Robert W. Sebesta 12th Edition" & "Programming Language Pragmatics by Michael Scott 4th edition" |
|
My Solution |
| Computer Science: Programming with a Purpose |
|
No homework, Too trivial as I have done it after Algorithms course |
| Mastering 4 Critical Skills using C++ 17 by Prof. Mostafa Saad |
|
No portfolio, done after algorithms course and I just watched the content without finding any need to upload my solutions to problem sets |
| * Object Oriented Design - University of Alberta * Object Oriented Analysis & Design - Tutorials Point * NPTEL OOAD |
|
Was no any |
| * Refactoring Guru & Source Making * Christoper Okhravi Design Patterns YT Playlist |
|
- |
| Alberta Software Architecture Course on Coursera |
|
Assignments are locked, don't recommend course |
Core Theory
Algorithms-&-Data-Structures
- "*" means topic is repeated because it relates to multiple categories.
Topics covered:
sorting and searching
randomized algorithms
data structures
graph search
shortest paths
greedy algorithms
minimum spanning trees
dynamic programming
string algorithms
data Compression
algorithm complexity notions
| Course | Topics Covered | Course Portfolio |
|---|---|---|
| Princeton Algorithms Course Part 1 & Princeton Algorithms Course Part 2 |
|
My Solution |
Courseless
- Topics I learned from non-interactive course (Videos, Medium Posts...).
| Subject | Topic |
|---|---|
Data Structure |
Trees: AVL Trees, Segment Trees |
Algorithms |
divide and conquer |
Problem-Solving
- Videos to watch before following courses:
| Course | Topics Covered | Course Portfolio |
|---|---|---|
| Mastering 4 critical SKILLS using C++ 17 by Prof Mostafa Saad | accumulation: (Accumulation Array, Fixed Sliding Window), counting: (Frequency Array, Counting increasing subarrays), |
Projects
- Side-Projects
- Elected-Projects
Side-Projects
| Project | Topics Covered |
|---|---|
| GUI Multiplayer Chess Over Local Connection | Java 8 OOP JavaFx threads networking and even more |
Elected-Projects
- Projects that are done in the aforementioned studied courses and desereve explicite mentioning.
| Project | Topics Covered |
|---|---|
| Burrows-Wheeler | suffix array, burrows-wheeler, data compression, key-indexed sorting |
| Baseball Elimination | directed graphs, mincut-maxflow, augmenting paths |
| Seam-Carving | directed graphs, image processsing, shortest paths |
| Boogle | character-based operation, tries, ternary tries, R-way tries |
| WordNet | undirected graphs, graph searching, shortest paths, BFS, DFS |
| kD-Trees | red-black BST, kD BST, shortest paths |
| 8Puzzle | Minimum Priority Queue, A* Search Algorithm |
| Collinear Points | mergesort |
| Made Up Programming Language | interpreter (Mini Interpreter (not via using Symbol Tables) to illustrate how they work conceptually) |