{"id":25469946,"url":"https://github.com/thinkphp/computer-science-in-c","last_synced_at":"2025-11-04T18:30:25.362Z","repository":{"id":19875823,"uuid":"23139753","full_name":"thinkphp/computer-science-in-c","owner":"thinkphp","description":"Computer Science in C / C++","archived":false,"fork":false,"pushed_at":"2024-10-29T17:30:27.000Z","size":3721,"stargazers_count":7,"open_issues_count":1,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-29T18:54:00.901Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thinkphp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-08-20T07:22:19.000Z","updated_at":"2024-10-29T17:30:30.000Z","dependencies_parsed_at":"2024-11-06T16:37:17.900Z","dependency_job_id":null,"html_url":"https://github.com/thinkphp/computer-science-in-c","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thinkphp%2Fcomputer-science-in-c","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thinkphp%2Fcomputer-science-in-c/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thinkphp%2Fcomputer-science-in-c/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thinkphp%2Fcomputer-science-in-c/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thinkphp","download_url":"https://codeload.github.com/thinkphp/computer-science-in-c/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239436959,"owners_count":19638402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-18T08:31:28.169Z","updated_at":"2025-11-04T18:30:25.071Z","avatar_url":"https://github.com/thinkphp.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Computer Science\n\nComputer Science is the theory and practice of computation, algorithms, software systems, data organization, knowledge representation, language, intelligence, learning, and consciousness.\n\nComputer science is no more about computers than astronomy is about telescopes, biology is about microscopes or chemistry is about beakers and test tubes. Science is not about tools, it is about how we use them and what we find out when we do. (Michael Fellows and Ian Parberry, “SIGACT trying to get children excited about CS”)\n\n## Academic Level: University (Oxford Standard)\n*A rigorous academic program designed to develop profound understanding of computational thinking and problem-solving across theoretical and practical domains.*\nThis courseware meets the exacting standards of Oxford University, emphasizing deep theoretical understanding alongside practical application and research excellence.\n\n### Course Overview\nComputer Science, as presented in this courseware, transcends the mere study of computers to explore the fundamental nature of computation, information, and algorithmic thinking. Drawing from the philosophy that computer science is about ideas rather than tools, this curriculum builds a comprehensive understanding of how we can solve complex problems through computational methods.\n\n### Course Structure\nThe curriculum is designed to progress from fundamental concepts to advanced applications, with each component building upon previous knowledge. Every module is structured to ensure both theoretical mastery and practical competency.\n\n#### Module Components:\n- **Theoretical foundations**: Core concepts and mathematical underpinnings\n- **Practical implementations**: Hands-on application of theories\n- **Problem-solving exercises**: Real-world challenges and solutions\n- **Research assignments**: Independent exploration of advanced topics\n- **Assessment criteria**: Clear evaluation metrics for each learning objective\n\n### Core Modules\n\n#### 1. Foundations of Computation\n*The mathematical and theoretical bedrock upon which all computer science is built*\n\n- **Mathematical Foundations**\n  A rigorous exploration of the mathematical concepts essential to computer science, providing the logical framework for understanding computation.\n  - Set Theory: The study of collections, relationships, and operations on sets\n  - Logic and Boolean Algebra: Fundamental principles of reasoning and digital logic\n  - Number Theory: Mathematical properties crucial for cryptography and algorithms\n  - Graph Theory: Study of relationships and connections in discrete structures\n  - Probability and Statistics: Quantitative tools for analyzing algorithmic behavior\n\n- **Computational Theory**\n  Exploration of the fundamental limits and capabilities of computation itself.\n  - Automata Theory: Study of abstract machines and their computational capabilities\n  - Computability: Understanding what problems can and cannot be solved algorithmically\n  - Complexity Theory: Analysis of resource requirements for solving computational problems\n  - Formal Languages: Study of mathematical models for defining languages\n  - Lambda Calculus: Theoretical framework for studying functions and computation\n\n#### 2. Algorithms and Data Structures\n*The art and science of organizing data and designing efficient problem-solving procedures*\n\n- **Algorithm Analysis**\n  Systematic study of algorithm efficiency and performance characteristics.\n  - Complexity Analysis: Mathematical framework for measuring algorithm efficiency\n  - Space-Time Tradeoffs: Understanding and optimizing resource usage\n  - Algorithm Design Paradigms: Systematic approaches to problem-solving\n  - Optimization Techniques: Methods for improving algorithm performance\n\n- **Advanced Data Structures**\n  Sophisticated methods for organizing and managing data efficiently.\n  - Trees and Graphs: Complex data relationships and hierarchical structures\n  - Hash Tables: Efficient data retrieval and storage\n  - Priority Queues: Managing data with varying importance levels\n  - Advanced Search Structures: Sophisticated data retrieval mechanisms\n  - Probabilistic Data Structures: Space-efficient approximate data representation\n\n[Continued due to length - Additional modules will follow in the same detailed format]\n\n#### 3. Software Engineering and Systems\n*The principles and practices of building reliable, maintainable, and scalable software systems*\n\n- **Software Design**\n  Methodologies and principles for creating robust software architectures.\n  - Design Patterns: Reusable solutions to common software design problems\n  - Architecture Patterns: Large-scale software structure organization\n  - Clean Code Principles: Writing maintainable and efficient code\n  - Testing Methodologies: Ensuring software reliability and correctness\n  - Version Control: Managing software evolution and collaboration\n\n- **Operating Systems**\n  Understanding the fundamental software that manages hardware and software resources.\n  - Process Management: Controlling program execution and resource allocation\n  - Memory Management: Efficient use of system memory resources\n  - File Systems: Organization and management of persistent data\n  - Concurrent Programming: Managing simultaneous execution of programs\n  - Distributed Systems: Coordinating multiple networked computers\n\n#### 4. Data Science and Knowledge Representation\n*Methods for extracting, organizing, and deriving insights from data*\n\n- **Database Systems**\n  Theory and practice of organized data management.\n  - Relational Database Theory: Mathematical foundations of data organization\n  - Query Optimization: Efficient data retrieval techniques\n  - Transaction Processing: Maintaining data consistency in concurrent operations\n  - NoSQL Systems: Alternative data storage paradigms\n  - Data Warehousing: Large-scale data storage and analysis\n\n- **Knowledge Engineering**\n  Techniques for representing and manipulating complex information.\n  - Ontologies: Formal representation of domain knowledge\n  - Semantic Web: Structured data for machine processing\n  - Knowledge Graphs: Representing relationships between entities\n  - Information Retrieval: Finding relevant information efficiently\n  - Data Mining: Discovering patterns in large datasets\n\n#### 5. Artificial Intelligence and Machine Learning\n*The study of creating intelligent systems that can learn and adapt*\n\n- **AI Foundations**\n  Core principles and techniques of artificial intelligence.\n  - Search Algorithms: Methods for finding solutions in large spaces\n  - Knowledge Representation: Storing and manipulating information\n  - Expert Systems: Rule-based decision making\n  - Natural Language Processing: Understanding and generating human language\n  - Computer Vision: Understanding visual information\n\n- **Machine Learning**\n  Algorithms and systems that improve through experience.\n  - Supervised Learning: Learning from labeled examples\n  - Unsupervised Learning: Finding patterns in unlabeled data\n  - Reinforcement Learning: Learning through interaction\n  - Deep Learning: Advanced neural network architectures\n  - Neural Networks: Brain-inspired computing models\n\n### Research and Project Work\n*Practical application of theoretical knowledge through independent and collaborative projects*\n\nEach student undertakes:\n- Independent research project: Original investigation in a chosen area\n- Team-based software development: Collaborative real-world project\n- Industry collaboration: Working with external partners\n- Academic paper review: Critical analysis of current research\n- Conference participation: Engaging with the wider academic community\n\n### Assessment Methods\n*Comprehensive evaluation of theoretical understanding and practical skills*\n\nMultiple assessment types ensure thorough evaluation:\n- Written examinations: Testing theoretical knowledge\n- Programming assignments: Practical skill assessment\n- Project evaluations: Applied knowledge demonstration\n- Research papers: Academic writing capability\n- Oral presentations: Communication skills\n\n### Learning Outcomes\n*Clear objectives that demonstrate mastery of computer science principles*\n\nGraduates will possess:\n1. Deep understanding of computer science theories\n2. Practical algorithm design and analysis skills\n3. Software development expertise\n4. AI and machine learning application abilities\n5. Independent research capabilities\n6. Technical communication skills\n7. Problem-solving proficiency\n8. Computing ethics awareness\n\n---\n## 1. Introduction to C++\n- History and evolution of C++\n- Setting up the development environment\n- Writing and compiling your first C++ program\n\n## 2. Basic Syntax and Data Types\n- Variables and constants\n- Basic data types (int, float, double, char, bool)\n- Operators and expressions\n- Input/output operations\n\n## 3. Control Structures\n- If-else statements\n- Switch statements\n- Loops (for, while, do-while)\n- Break and continue statements\n\n## 4. Functions\n- Function declaration and definition\n- Parameters and return values\n- Function overloading\n- Inline functions\n\n## 5. Arrays and Strings\n- One-dimensional and multi-dimensional arrays\n- C-style strings\n- Introduction to std::string\n\n## 6. Pointers and References\n- Understanding memory addresses\n- Pointer declaration and initialization\n- Dynamic memory allocation (new and delete)\n- References and their uses\n\n## 7. Object-Oriented Programming Basics\n- Classes and objects\n- Constructors and destructors\n- Access specifiers (public, private, protected)\n- Member functions and data members\n\n## 8. Inheritance and Polymorphism\n- Single and multiple inheritance\n- Virtual functions\n- Abstract classes and pure virtual functions\n- Runtime polymorphism\n\n## 9. Exception Handling\n- Try, catch, and throw keywords\n- Standard exceptions\n- Creating custom exceptions\n\n## 10. Templates and the Standard Template Library (STL)\n- Function templates\n- Class templates\n- Introduction to STL containers (vector, list, map)\n- STL algorithms and iterators\n\n## 11. File Handling\n- Reading from and writing to files\n- Binary file operations\n- Working with streams\n\n## 12. Advanced Topics\n- Namespaces\n- Friend functions and classes\n- Operator overloading\n- Smart pointers\n\n## 13. Final Project\n- Applying learned concepts to create a comprehensive C++ application\n\n**Getting Started**\n-------------------\n\nTo get started with the course, please:\n\n1. Install a C++ compiler (e.g., GCC) on your computer.\n2. Choose a code editor or IDE (e.g., Visual Studio Code, CLion).\n3. Familiarize yourself with the course materials and resources.\n4. Join the course discussion forum to connect with instructors and peers.\n\n\n### Educational Codeforces \n\nRound  1 https://codeforces.com/contest/598\n\nRound 26 https://codeforces.com/contest/837\n\nExperimental Educational Round: VolBIT Formulas Blitz https://codeforces.com/contest/630\n\nVK Cup 2015 - Wild Card Round 1 https://codeforces.com/contest/530\n\nCodeforces Alpha Round 20 https://codeforces.com/contest/20 (A. BerOS file system1, B. Equation, C. Dijkstra?)\n\nApril Fools Day Contest 2024 https://codeforces.com/contest/1952\n\n#### Div. 1\n\nCodeforces Round 808 (Div. 1) https://codeforces.com/contest/1707\nCodeforces Beta Round 93 (Div. 1 Only) https://codeforces.com/contest/126\n\n#### Div. 2\n\nCodeforces Round 213 (Div. 2) https://codeforces.com/contest/365\n\nCodeforces Round 934 (Div. 2) https://codeforces.com/contest/1944\n\nCodeforces Round 726 (Div. 2) https://codeforces.com/contest/1537\n\nCodeforces Round 926 (Div. 2) https://codeforces.com/contest/1929\n\nCodeforces Beta Round 9 (Div. 2) https://codeforces.com/contest/9\n\nEducational Codeforces Round 161 (Div. 2) https://codeforces.com/contest/1922\n\nCodeforces Beta Round 91 (Div. 2) https://codeforces.com/contest/122\n\nCodeforces Round 948 (Div. 2) https://codeforces.com/contest/1977\n\nCodeforces Beta Round 82 (Div. 2) https://codeforces.com/contest/106\n\nCodeforces Round 907 (Div. 2) https://codeforces.com/contest/1891\n\nCodeforces Round 134 (Div. 2) https://codeforces.com/contest/218\n\n#### Div.3 \nCodeforces Round 946 (Div. 3) https://codeforces.com/contest/1974\n\nCodeforces Round 920 (Div. 3) https://codeforces.com/contest/1921\n\nCodeforces Round 587 (Div. 3) https://codeforces.com/contest/1216\n\nCodeforces Round 486 (Div. 3) https://codeforces.com/contest/988\n\nCodeforces Round 479 (Div. 3) https://codeforces.com/contest/977\n\nCodeforces Round 481 (Div. 3) https://codeforces.com/contest/978\n\nCodeforces Round 929 (Div. 3) https://codeforces.com/contest/1933\n\nCodeforces Round 923 (Div. 3) https://codeforces.com/contest/1927\n\nCodeforces Round 535 (Div. 3) https://codeforces.com/contest/1108\n\nCodeforces Round 529 (Div. 3) https://codeforces.com/contest/1095\n\n#### Div. 4\n\nCodeforces Round 799 (Div. 4) https://codeforces.com/contest/1692\n\nCodeforces Round 928 (Div. 4) https://codeforces.com/contest/1926\n\nCodeforces Round 640 (Div. 4) https://codeforces.com/contest/1352\n\nCodeforces Round 784 (Div. 4) https://codeforces.com/contest/1669\n\nCodeforces Round 835 (Div. 4) https://codeforces.com/contest/1760\n\nCodeforces Round 849 (Div. 4) https://codeforces.com/contest/1791\n\nCodeforces Round 859 (Div. 4) https://codeforces.com/contest/1807\n\nCodeforces Round 827 (Div. 4) https://codeforces.com/contest/1742\n\nCodeforces Round 817 (Div. 4) https://codeforces.com/contest/1722\n\nCodeforces Round 790 (Div. 4) https://codeforces.com/contest/1676\n\nCodeforces Round 898 (Div. 4) https://codeforces.com/contest/1873\n\nCodeforces Round 937 (Div. 4) https://codeforces.com/contest/1950\n\n\n####  Happy New Year\n\nGood Bye 2014 https://codeforces.com/contest/500 Editorial: https://codeforces.com/blog/entry/15513\n\nGood Bye 2015 https://codeforces.com/contest/611 Editorial: https://codeforces.com/blog/entry/22441\n\nGood Bye 2016 https://codeforces.com/contest/611 Editorial: https://codeforces.com/blog/entry/49412\n\nGood Bye 2017 https://codeforces.com/contest/908 Editorial: https://codeforces.com/blog/entry/56713 https://codeforces.com/blog/entry/56848\n\nGood Bye 2018 https://codeforces.com/contest/1091 Editorial: https://codeforces.com/blog/entry/64196\n\nGood Bye 2019 https://codeforces.com/contest/1270 Editorial: https://codeforces.com/blog/entry/72611\n                                                  \nGood Bye 2020 https://codeforces.com/contest/1466 Editorial: https://codeforces.com/blog/entry/86126\n\nGood Bye 2021 https://codeforces.com/contest/1616  Editorial: https://codeforces.com/blog/entry/98501\n\nGood Bye 2022 https://codeforces.com/contest/1770 Editorial: https://codeforces.com/blog/entry/110754\n\nGood Bye 2023 https://codeforces.com/contest/1916 Editorial: https://codeforces.com/blog/entry/124138 \n\n### EDU Codeforces\nhttps://codeforces.com/edu/courses\n\n\n### Baltic Olympiad in Informatics 2020\nDay 1: https://codeforces.com/contest/1386\n\nDay 2: https://codeforces.com/contest/1387\n\n### AtCoder\nhttps://atcoder.jp/contests/abc272/tasks\n\nhttps://atcoder.jp/contests/abc356/tasks\n\nhttps://atcoder.jp/contests/abc354/tasks\n\nhttps://atcoder.jp/contests/abc349/tasks\n\nhttps://atcoder.jp/contests/abc224/tasks\n\nhttps://atcoder.jp/contests/abc381/tasks\n\nhttps://atcoder.jp/contests/abc382/tasks\n\nhttps://atcoder.jp/contests/abc365\n\n\n\n\n### Educational Codeforces\n\nhttps://codeforces.com/contest/600\n\n\n### Math:\n\n* https://brilliant.org/wiki/bezouts-identity/\n* https://www.intmath.com/quadratic-equations/sum-product-roots-quadratic-equation.php\n* https://codeforces.com/blog/entry/97623\n* https://www.cuemath.com/algebra/nature-of-roots/#What-Do-You-Mean-By-Nature-of-Roots\n* https://www.cuemath.com/geometry/x-intercept/\n* https://brilliant.org/wiki/vietas-formula/#vietas-formula-problem-solving-easy\n* https://artofproblemsolving.com/wiki/index.php/Euclidean_algorithm\n* https://artofproblemsolving.com/wiki/index.php/Goldbach_Conjecture\n* https://artofproblemsolving.com/wiki/index.php/Math_books\n\n### References:\n\nhttps://www.cs.princeton.edu/\n\n[Introduction to Algorithms](https://canvas.projekti.info/ebooks/Introduction_to_algorithms_3rd_edition.pdf) Cormen\n\n[Computer Algorithms](https://www.amazon.com/Ellis-Horowitz/dp/0929306414?ref_=ast_author_dp) Ellis Horowitz\n\n[Fundamentals of Computer Algorithms](https://www.amazon.com/dp/B01FGIRFCG?ref_=ast_author_dp) Ellis Horowitz\n\n[Fundamentals of Data Structures in C++ ](https://www.amazon.com/dp/B01FIZZFU6?ref_=ast_author_dp) Ellis Horowitz\n\n[Books](https://cs.stanford.edu/people/eroberts/books/index.html) Eric Roberts\n\n[Books](https://canvas.projekti.info/ebooks/Algorithm%20Design%20and%20Applications%5bA4%5d.pdf) GoodRich\n\nhttps://www.cs.princeton.edu/courses/archive/spr02/cs226/lectures.html (Robert Sedgewick)\n\nhttps://web.stanford.edu/class/cs97si/\n\nhttps://www.cs.cmu.edu/~15451-f20/LectureNotes/\n\nhttps://www.geeksforgeeks.org/learn-data-structures-and-algorithms-dsa-tutorial/?ref=shm\n\nhttps://www.enjoyalgorithms.com/\n\nhttps://www.best-books.dev/list/best-programming-books\n\nhttps://conan.iwr.uni-heidelberg.de/data/people/oklein/pdf/klein_modern_cpp.pdf\n\nhttps://changkun.de/modern-cpp/pdf/modern-cpp-tutorial-en-us.pdf\n\nhttps://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list The Definitive C++ Book Guide and List \n\nhttps://www.w3schools.com/dsa/index.php\n\nhttps://cs.lmu.edu/~ray/notes/cpp/\n\nhttps://cs.lmu.edu/~ray/notes/computerscience/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthinkphp%2Fcomputer-science-in-c","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthinkphp%2Fcomputer-science-in-c","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthinkphp%2Fcomputer-science-in-c/lists"}