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
- Software Verification and Vali…
- Mantenance
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
Mobile development MOC
- Embedded Systems MOC
- Game Development MOC
Artificial Intelligence
- Introduction to artificial intelligence (AI) and machine learning
- Problem-solving techniques and search algorithms
- Neural networks and deep learning
- Artificial Intelligence and Machine Learning
- Natural Language Processing and Computer Vision
- 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