Computer Science
- Reading material
- Computer Science
- Theoretical Foundations:
- Practical Applications
- Computer Architecture
- Operating Systems
- Computer Networking and Cyber Security
- Databases
- Software Engineering
- Artificial Intelligence
- Concurrency Control
- Human-Computer Interaction
- Computer Graphics
- Parallel and Distributed Computing
- Security and Information Assurance
- Machine Learning
- Data Science
- Big Data Analytics
- Internet of Things (IoT)
- Cloud Computing
- Quantum Computing
Reading material
- Computability theory https://en.m.wikipedia.org/wiki/Computability_theory
- Model of computation https://en.m.wikipedia.org/wiki/Model_of_computation
- Turing machine: https://en.m.wikipedia.org/wiki/Turing_machine
- Turing completeness https://en.m.wikipedia.org/wiki/Turing_completeness
- Open Source Society University https://github.com/ossu/computer-science
- Teach Yourself Computer Science https://teachyourselfcs.com/
- What kind of topics is taught in CS? https://www.reddit.com/r/computerscience/comments/1drd1nc/what_kind_of_topics_is_taught_in_cs/
Computer Science
Computer science encompasses a broad range of topics, from foundational theoretical concepts to practical applications in software and hardware. Key areas include algorithms and data structures, programming languages, computer architecture, operating systems, and artificial intelligence. Other important fields are software engineering, computer networks, databases, and human-computer interaction.
Theoretical Foundations:
Theory of Computation
Explores the limits of what computers can compute and the fundamental principles of computation.
Algorithms and Data Structures
Focuses on designing efficient methods for solving computational problems and organizing data.
- Analysis of Algorithms
- Divide, Conquer and Combine paradigm
- Dynamic Programming
- Pathfinding Algorithms
- Searching algorithms
- Sorting algorithms
Programming Languages
Deals with the design, implementation, and analysis of programming languages, including their syntax, semantics, and paradigms.
- Programming Languages
- Programming Paradigms
- Compiled, Interpreted and Hybrid (Portable Compiled) Programming Languages
- Programming Languages - Speed of development and Speed of execution
- Static vs Dynamic Programming Languages
- Java notes
- Rust - notes
- GoLang notes
- Haskell - notes
- Javascript and Typescript notes
- Python notes
- No Silver Bullets
- Rosetta Code
- The idea is to present solutions to the same task in as many different languages as possible, to demonstrate how languages are similar and different, and to aid a person with a grounding in one approach to a problem in learning another.
- https://rosettacode.org/wiki/Rosetta_Code
Formal Languages and Automata Theory
Studies formal languages, their properties, and abstract machines that recognize them.
Information and Coding Theory
Focuses on the mathematical theory of information and methods for efficient and reliable data transmission and storage.
Practical Applications
Computer Architecture
Examines the structure and organization of computer systems, including hardware components and their interaction.
Operating Systems
Deals with the software that manages a computer’s resources and provides services to applications.
Computer Networking and Cyber Security
Databases
Focuses on the design, management, and use of databases for storing and retrieving information.
Software Engineering
Covers the principles and practices of developing large and complex software systems.
Artificial Intelligence
Explores the development of intelligent agents that can perform tasks that typically require human intelligence.
Artificial intelligence (AI) and machine learning (ML)
Concurrency Control
Human-Computer Interaction
Focuses on the design, evaluation, and implementation of user interfaces and the interaction between humans and computers.
Computer Graphics
Deals with the creation, manipulation, and display of images using computers.
Parallel and Distributed Computing
Explores the design and implementation of systems that can perform computations using multiple processors or computers.
Security and Information Assurance
Focuses on protecting computer systems and data from unauthorized access, use, disclosure, disruption, modification, or destruction.
Machine Learning
A subfield of AI that focuses on enabling systems to learn from data without being explicitly programmed.
Artificial intelligence (AI) and machine learning (ML)
Data Science
A multidisciplinary field that uses scientific methods, processes, algorithms, and systems to extract knowledge and insights from structured and unstructured data.
Big Data Analytics
Focuses on analyzing large and complex datasets to discover patterns, trends, and other useful information.
Internet of Things (IoT)
Deals with the network of physical devices, vehicles, home appliances, and other items embedded with electronics, software, sensors, actuators, and connectivity which enables these things to connect and exchange data.
Cloud Computing
The delivery of computing services—including servers, storage, databases, networking, software, analytics, and intelligence—over the Internet (“the cloud”) to offer faster innovation, flexible resources, and economies of scale according to IBM.