← Back to garden 🗺️

page

Computer Science MOC

The primary purpose of this note is to organise and categorise my knowledge into sections, assigning specific topics to each section, so that I am able to easily identify and share information as needed.

For this Map of content I’ve taken the CS2023 curriculum and split it into practical and theoretical, as one of my main issues with the escolar system is that you follow a path without really knowing when you’ll be able to apply it and if you really like it.


Introduction

Why Technology is important
Overview of computer science as a field of study
Historical developments and evolution of computing
Advantages and benefits of technological advancements

Topic relations 🔬 Research: This topic is highly theoretical and helps you understand the foundations 👷🏼‍♂️ Development: This topic is highly practical and is closer to what a software developer does on a daily basis 📟 Electronic: This topic is related to how software concepts are applied to cpus and hardware.
  ⭐️ QuickRoadmap: This topic is essential to become a software developer

Theoretical

These are the foundation an will greatly help you to move with ease between projects and have a general understanding of how the modern computation really works. Think of this section of the why.


Algorithms and Data Structures **🔬

Curriculum
Practice

  • Analysis and design of algorithms
  • Sorting and searching algorithms
  • Fundamental data structures (e.g., arrays, linked lists, trees, graphs)
Data Structures
  • Array
  • Graph
  • Heap
  • Tree
Character Encodings
  • Unicode
  • ASCII

Software Engineering ⭐️ **👷🏼‍♂️

While programming is the skill that governs our ability to write a program, software engineering is distinct in two dimensions: time and people.

Curriculum

Tools
Version Management / Git
  • Release management
  • Branching Strategy
  • Merging Strategies
Software Process (Automation)
  • Ci / CD
  • Package management
  • SemVer
  • IDE Features
  • Degugging
  • Refactoring
  • Profiling

Computer Architecture and Organisation 📟 🔬**

Architecture and Organisation

  • Basic components of a computer system
  • CPU architectures and instruction set
  • Memory hierarchy and storage technologies
  • Registers and RAM
  • Instructions and Programs
  • CPU Cache

Mathematical and Statistical Foundations **🔬

Curriculum

  • Probability
  • Combinattorics

Networking and Communication 📟

Currimuluim

• Networking fundamentals and protocols • Network architectures (e.g., client-server, peer-to-peer) • Internet and network security

Networking
  • OSI Model
  • TCP / IP
  • DNS
  • HTTP
  • TLS & HTTPS
  • Sockets

Operating Systems 📟

Curriculum

Operating System Basics
• Fundamentals of operating systems • Process management and scheduling • Memory management and file systems

Computer Graphics and Visualisation **🔬

Graphics and Interactive Techniques

  • Principles of computer graphics
  • 2D and 3D rendering techniques
  • Visualisation methods and tools

Security **👷🏼‍♂️

Curriculum

  • Cryptography
    • Encryption / Decription
    • Public Key Cryptography
  • Hashing vs Encryption vs Encoding
  • Hashing Algorithms

Practical

This section is where you can have an overview of the actual technologies and abstractions that as developers use on our daily basis, most likely you’ll have a bird’s eye around everything and then choose a specialisation. Think of this as the How we create things.


Foundations of Programming Fundamentals ⭐️

Curriculum

  • Introduction to programming languages and paradigms
  • Variables, data types, operators, and control structures
  • Functions, recursion, and modular programming

Databases ⭐️

Data Management Curriculum

• Introduction to databases and data models • Relational database management systems (RDBMS) • Query languages (e.g., SQL) and database design

Advanced
  • Nominalization
  • Transactions
  • Indexes
  • Views
  • Transactions
  • Replication
  • Sharding

Specialised Platform Development ⭐️

Curriculum | Five Worlds

  1. Web development MOC
Mobile development MOC
  1. Android Development MOC
  2. iOS Development MOC
  1. Embedded Systems MOC
  2. Game Development MOC

Artificial Intelligence

  1. Introduction to artificial intelligence (AI) and machine learning
  2. Problem-solving techniques and search algorithms
  3. Neural networks and deep learning
  4. Artificial Intelligence and Machine Learning
  5. Natural Language Processing and Computer Vision
  6. Deep Learning

Ethical and Social Implications of Computing

Curriculum

• Ethical considerations in computer science • Privacy, security, and cyberethics • Social impact of technology 2. Impact of Technology on society and daily life


References

Computer Science Roadmap: Curriculum for the self taught developer
Knowledge Areas – CS2023