{"id":14109291,"url":"https://github.com/apeman/awesome_computer_science","last_synced_at":"2025-05-16T03:07:07.658Z","repository":{"id":37543887,"uuid":"275515916","full_name":"apeman/awesome_computer_science","owner":"apeman","description":"The complete syllabus of Computer Science and Engineering. Roadmap, Checklist for Beginners.","archived":false,"fork":false,"pushed_at":"2025-03-25T08:15:28.000Z","size":162,"stargazers_count":416,"open_issues_count":0,"forks_count":42,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-03T23:01:35.626Z","etag":null,"topics":["algorithms","artificial-intelligence","assembly-language","awesome-list","browsers","cloud","compiler-design","compression","computer-networks","computer-science","computer-vision","cryptography","css","data-structures","database-management","game-development","graphics","operating-systems","programming","ui-design"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apeman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-06-28T05:44:55.000Z","updated_at":"2025-05-02T09:38:22.000Z","dependencies_parsed_at":"2023-09-25T07:17:36.858Z","dependency_job_id":"ab90bb5e-1d90-4833-b4b4-845ac86d02b1","html_url":"https://github.com/apeman/awesome_computer_science","commit_stats":{"total_commits":158,"total_committers":3,"mean_commits":"52.666666666666664","dds":0.03797468354430378,"last_synced_commit":"edce27f2ab96dade9d6f3bbb742be3110976e0ed"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apeman%2Fawesome_computer_science","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apeman%2Fawesome_computer_science/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apeman%2Fawesome_computer_science/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apeman%2Fawesome_computer_science/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apeman","download_url":"https://codeload.github.com/apeman/awesome_computer_science/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254459088,"owners_count":22074605,"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":["algorithms","artificial-intelligence","assembly-language","awesome-list","browsers","cloud","compiler-design","compression","computer-networks","computer-science","computer-vision","cryptography","css","data-structures","database-management","game-development","graphics","operating-systems","programming","ui-design"],"created_at":"2024-08-14T10:02:12.634Z","updated_at":"2025-05-16T03:07:02.645Z","avatar_url":"https://github.com/apeman.png","language":null,"funding_links":[],"categories":["Computer Science","Others","Other Lists","📦 Miscellaneous"],"sub_categories":["Code Review","TeX Lists","🏆 Top 25"],"readme":"# Computer Science and Engineering Roadmap and Checklist\n\n\u003e This is the complete syllabus of _Computer Science and Engineering UG_.\n\n#### Computer Science is divided in 4 parts\n - [Computer Science 1](#computer-science---1) : Hardware and Engineering part.\n - [Computer Science 2](#computer-science---2) : Everything that is required to write Programs.\n - [Computer Science 3](#computer-science---3) : Daily Computer Science.\n - [Computer Science 4](#computer-science---4) : Real Life Applications of CS.\n\n[**Discrete Mathematics**](http://home.iitk.ac.in/~arlal/book/mth202.pdf)\u003csup\u003ePDF\u003c/sup\u003e is necessary for understanding Graphs.\n\n - [Mathematics Syllabus can be found here](https://github.com/apeman/awesome_computer_science/blob/master/Mathematics.md)\n - Cloud computing can be a subject in itself. The basics are listed under Computer Networks \n\n## Table of Contents\n\n #### [Computer Science 1](#computer-science---1)\n- [Digital Electronics](#digital-electronics)\n- [Computer Organization and Architecture](#computer-organization-and-architecture)\n- [Theory of Computation and Automata](#theory-of-computation-and-automata)\n #### [Computer Science 2](#computer-science---2)\n- [Compiler Design](#compiler-design)\n- [Programming](#programming)\n- [Data Structures](#data-structures)\n- [Algorithms](#algorithms)\n- [Artificial Intelligence](#artificial-intelligence)\n #### [Computer Science 3](#computer-science---3)\n- [Design and Analysis of Algorithms](https://ocw.mit.edu/courses/6-046j-design-and-analysis-of-algorithms-spring-2015/video_galleries/lecture-videos/)\u003csup\u003eOpens in new Tab\u003c/sup\u003e\n- [Operating Systems](#operating-systems)\n- [Computer Networks](#computer-networks)\n- [DBMS and SQL](#dbms-and-sql)\n- [Software Engineering](#software-engineering-after-learning-the-above)\n #### [Computer Science 4](#computer-science---4)\n- [Cryptography](#cryptography)\n- [Machine Learning](#machine-learning)\n- [Computer Graphics](#computer-graphics)\n- [Web Dev](#web-dev)\n\n## Computer Science - 1\n\n## Digital Electronics\n\n- [ ] **[Boolean Algebra](http://www.uop.edu.pk/ocontents/ELEC-DIGE-S3%20Boolean%20Algebra%20Laws%20.pdf)**\n   - Number System\n   - Addition, Subtraction\n   - Multiplication, Division\n   - 1's, 2's compliments\n   - k-maps\n\n- [ ] **Hardware**\n   - Logic Gates\n   - Flip-Flops and Latches\n   - Adder - Subtractor\n   - Encoder - Decoder\n   - Multiplexer - Demultiplexer\n   - Integrated Circuits\n   - [Printed Circuit Boards](https://www.youtube.com/watch?v=ljOoGyCso8s)\n\n## Computer Organization and Architecture\n\n- [ ] **Computer Organization**\n   - Address Bus, Data Bus\n   - ROM, EPROM, RAM\n   - Memory Hierarchy, Cache Memory, Virtual Memory\n   - Secondary Storage\n   - Programmable Logic Devices and Controllers\n   - Input - Output Devices\n\n- [ ] **Computer Architecture**\n   - Stack\n   - Registers\n   - Endianness (Big, Little)\n   - Floating Point Numbers\n   - Addressing Modes\n   - Pipelining\n   - Interrupts\n   - RISC - CISC\n   - aarch64, Intel_x86 / AMD64, MIPS / RISC-V (learn the differences)\n   - [Assembly Language](https://stackoverflow.com/questions/1933801/x86-assembly-reference-sheet) (basic instructions)\n\n## Theory of Computation and Automata\n\n- [ ] **Automata and Languages**\n   - [NFA](https://www.javatpoint.com/non-deterministic-finite-automata) - [DFA](https://www.javatpoint.com/deterministic-finite-automata)\n   - [Regular Expressions](https://www.javatpoint.com/examples-of-regular-expression)\n   - [Context-Free Languages and Grammers](https://www.javatpoint.com/automata-context-free-grammar)\n   - [Pushdown Automata](https://www.javatpoint.com/pushdown-automata)\n   - [Turing Machines](https://www.javatpoint.com/automata-basic-model-of-turing-machine)\n   - [Decidability of Languages](https://www.javatpoint.com/introduction-to-undecidability)\n   - [Reducibility of Languages](http://www2.lawrence.edu/fast/GREGGJ/CMSC515/chapt05/Reducibility.html#:~:text=We%20say%20that%20a%20language,that%20B%20must%20be%20undecidable.)\u003csup\u003eIgnore if too complex\u003c/sup\u003e\n   - [Complexity Theory : P vs NP](https://stackoverflow.com/questions/111307/whats-p-np-and-why-is-it-such-a-famous-question)\n\n## Computer Science - 2\n\n## Compiler Design\n\n- [ ] **Compiler Design**\n   - Lexical analysis\n   - Syntax analysis\n   - Type Checking\n   - Intermediate code generation\n   - Machine code generation\n   - Assembly and linking\n   - Analysis and optimisation\n   - Memory management\n   - Interpreters\n   - [Golang reference specifications](https://go.dev/ref/spec)\u003csup\u003eIf you want to read an easy specification\u003c/sup\u003e\n\n## Programming\n\n- [ ] **[Learn C](https://codescracker.com/c/)**\n    \u003e The language almost every computer knows\n    - [Character constants, escape sequences, string constants](https://www.cs.fsu.edu/~myers/c++/notes/basics1.html)\n    - [Data types and Type conversion](https://www.cs.fsu.edu/~myers/c++/notes/basics2.html)\n    - [Precedence and associativity](https://learn.microsoft.com/en-us/cpp/cpp/cpp-built-in-operators-precedence-and-associativity?source=apeman) of [Operators](https://learn.microsoft.com/en-us/cpp/cpp/cpp-built-in-operators-precedence-and-associativity?source=apeman)\n    - [Functions](https://www.cs.fsu.edu/~myers/c++/notes/functions1.html)\n    - [storage class](https://learn.microsoft.com/en-us/cpp/cpp/storage-classes-cpp?source=apeman) and [variable scope](https://learn.microsoft.com/en-us/cpp/cpp/scope-visual-cpp?source=apeman)\n    - [if, for, while, switch_case](https://www.cs.fsu.edu/~myers/c++/notes/control1.html)\n    - [break, continue, goto](https://codescracker.com/c/c-jump-statements.htm?source=apeman)\n    - [Arrays](https://www.cs.fsu.edu/~myers/c++/notes/arrays.html), [Strings](https://www.cs.fsu.edu/~myers/c++/notes/strings.html), [Pointers](https://www.cs.fsu.edu/~myers/c++/notes/pointers1.html)\n    - [Structs](https://www.cs.fsu.edu/~myers/c++/notes/structs1.html), [Union, enum, typedef](http://www.cs.cornell.edu/courses/cs2022/2009fa/lectures/lec06.pdf)\n    - [Header files, #MACROS](https://learn.microsoft.com/en-us/cpp/cpp/header-files-cpp?source=apeman)\n    - [malloc, calloc, realloc](https://www.cs.cmu.edu/~ab/15-123S09/lectures/Lecture%2008%20-%20%20Dealing%20with%20Dynamic%20Memory.pdf) | [2](https://manpages.ubuntu.com/manpages/xenial/man3/malloc.3.html), [new](https://www.cs.fsu.edu/~myers/c++/notes/dma.html), [argc argv](https://learn.microsoft.com/en-us/cpp/cpp/main-function-command-line-args?source=apeman)\n    - [input/output](https://www.cs.fsu.edu/~myers/c++/notes/c_io.html), [file io](https://www.cs.fsu.edu/~myers/c++/notes/fileio.html), [streams](https://www.cs.fsu.edu/~myers/c++/notes/formatting.html)\n    - [\u003cMath.h\u003e](https://pubs.opengroup.org/onlinepubs/009695399/basedefs/math.h.html)\n    \n    \n- [ ] **[C++](https://www.cs.nmsu.edu/~jcook/tags/c/c++/)** (You can try **[Python](https://docs.python.org/3/tutorial/index.html)** for same topics)\n    \u003e Used in almost everything from Games to Browsers to Machine learning and beyond\n    - [Everything mentioned in C](https://google.github.io/styleguide/cppguide.html)\n    - [namespaces](https://learn.microsoft.com/en-us/cpp/cpp/namespaces-cpp?source=apeman)\n    - [Classes](https://learn.microsoft.com/en-us/cpp/cpp/class-cpp?source=apeman) and [Objects](https://en.cppreference.com/w/cpp/language/object)\n    - [Access Controls : Public, Private, Protected](https://learn.microsoft.com/en-us/cpp/cpp/member-access-control-cpp?source=apeman)\n    - [Member Functions](https://learn.microsoft.com/en-us/cpp/cpp/overview-of-member-functions?source=apeman) and [Friend Functions](https://learn.microsoft.com/en-us/cpp/cpp/friend-cpp?source=apeman)\n    - [Function Overloading](https://learn.microsoft.com/en-us/cpp/cpp/function-overloading?source=apeman)\n    - [Constructor](https://learn.microsoft.com/en-us/cpp/cpp/constructors-cpp?source=apeman) and [Destructors](https://learn.microsoft.com/en-us/cpp/cpp/destructors-cpp?source=apeman)\n    - [Inheritence](https://learn.microsoft.com/en-us/cpp/cpp/inheritance-cpp?source=apeman), [Polymorphism](https://www.cs.nmsu.edu/~jcook/posts/cpp-polymorphism/)\n    - [Templates](https://learn.microsoft.com/en-us/cpp/cpp/templates-cpp?source=apeman)\n\n## Data Structures\n\n- **[Arrays](https://www.digitalocean.com/community/tutorials/how-to-work-with-arrays-in-ruby)**\n- **[Linked Lists](https://www.cs.cmu.edu/~adamchik/15-121/lectures/Linked%20Lists/linked%20lists.html)**\n- **[Skip Lists](https://www.cs.cmu.edu/~ckingsf/bioinfo-lectures/skiplists.pdf)**\u003csup\u003ePDF\u003c/sup\u003e\n  - [Skip-Lists done right](http://ticki.github.io/blog/skip-lists-done-right/)\u003csup\u003eSuggested Reading\u003c/sup\u003e\n- **[Hash Tables](https://www.cs.cornell.edu/courses/cs3110/2014fa/lectures/13/lec13.html), [2](https://www.eecs.umich.edu/courses/eecs380/ALG/hash_tables.html)**\n- **stack** and **queue** and **set**\n- [ ] **[Trees](http://math.hws.edu/eck/cs225/s03/binary_trees/)** and **Tries**\n    - [ ] Self Balancing Trees (BST, AVL, Splay)\n    - [ ] n-ary Trees\n    - [ ] Segment Trees\n- [ ] **[Graphs](https://www.softwaretestinghelp.com/graph-implementation-cpp/) , [Some Code](http://www-h.eng.cam.ac.uk/help/tpl/talks/C++graphs.html)**\n    - [ ] Adjacency matrix vs Adjacency list\n\n## [Algorithms](https://xlinux.nist.gov/dads/)\n\n- [ ] **Searching**\n    - [ ] Binary Search\n    - [ ] Priority Queues\n- [ ] **[Sorting](https://en.wikipedia.org/wiki/Sorting_algorithm)**\n    - [ ] Merge Sort\n    - [ ] Quick Sort\n    - [ ] Insertion Sort\n    - [ ] Selection Sort\n- [ ] **Graph Traversal**\n    - [ ] Breadth First Search\n    - [ ] Depth First Search\n    - [ ] Dijkstra's Algorithm\n    - [ ] Bellman Ford (Cycle detection \u0026 Negative edges)\n    - [ ] Shortest Paths\n    - [ ] Minimum Spanning Trees\n- [ ] **space-time Complexity** \n\n\n## [Design and Analysis of Algorithms](https://ocw.mit.edu/courses/6-046j-design-and-analysis-of-algorithms-spring-2015/video_galleries/lecture-videos/)\n- [ ] Book Recommendations: \n    - **The Algorithm Design Manual** by Steven Skiena\n    - **Algorithms** by Jeff Erickson\n    \n## Artificial Intelligence\n\n- [ ] **Knowledge Representation** and **Reasoning**\n- [ ] **First Order Logic**\n    - Predicate Logic\n    - Forward Chaining and backward chaining\n- [ ] **State Space**\n    - [State Space Search](https://formal.kastel.kit.edu/~beckert/teaching/Einfuehrung-KI-WS0304/04ProblemSolving.pdf)\n- [ ] **Search**\n    - [Simulated annealing](https://en.wikipedia.org/wiki/Simulated_annealing)\n    - [Hill Climbing](https://www.javatpoint.com/hill-climbing-algorithm-in-ai)\u003csup\u003eMust know\u003c/sup\u003e\n    - [A*](https://www.ics.uci.edu/~kkask/Fall-2016%20CS271/slides/03-InformedHeuristicSearch.pdf)\u003csup\u003eMust know\u003c/sup\u003e\n    - [MinMax](http://web.mit.edu/sp.268/www/gamesearch.pdf)\n- [ ] Bayes' Theorem of Probability\n- [ ] **[Neural Networks](https://stackoverflow.com/questions/2019056/getting-a-simple-neural-network-to-work-from-scratch-in-c)**\n    - Weights and Layers (Neural Networks)\n    - Gradient Descent\n    - Convolutional neural networks(https://towardsdatascience.com/convolutional-neural-networks-from-the-ground-up-c67bb41454e1)\n- [ ] [Backpropagation](http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html)\n- [ ] [Game Dev Basics](https://sheepolution.com/learn/book/contents)\n\n## Computer Science - 3\n\n## DBMS and SQL\n[FCC quick commands](https://www.freecodecamp.org/news/basic-sql-commands/) | [Graphical view](https://www.guru99.com/sql-commands-dbms-query.html) | [ALL SQL Commands](https://www.postgresql.org/docs/17/sql-commands.html)\n- [ ] **[SQL](https://www.javatpoint.com/sql-tutorial)**\n    - [ ] **Data Definition Language**\n     - [CREATE](https://www.1keydata.com/sql/sqlcreate.html)\n     - [DROP](https://www.1keydata.com/sql/drop-table.html)\n     - [ALTER](https://www.1keydata.com/sql/sql-alter-table.html)\n     - [TRUNCATE](https://www.1keydata.com/sql/sqltruncate.html)\n    - [ ] **Data Query Language**\n     - [SELECT](https://www.1keydata.com/sql/sqlselect.html)\n    - [ ] **Data Manipulation Language**\n     - [INSERT](https://www.1keydata.com/sql/sqlinsert.html)\n     - [UPDATE](https://www.1keydata.com/sql/update.html)\n     - [DELETE](https://www.1keydata.com/sql/sqldelete.html)\n    - [ ] **Data Control Language**\n     - [GRANT](https://www.1keydata.com/sql/sql-grant.html)\n     - [REVOKE](https://www.1keydata.com/sql/sql-revoke.html)\n    - [ ] **Transction Control Language**\n     - [COMMIT](https://www.1keydata.com/sql/sql-commit.html)\n     - [ROLLBACK](https://dev.mysql.com/doc/refman/8.0/en/savepoint.html)\n     - [SAVEPOINT](https://www.postgresql.org/docs/current/sql-savepoint.html)\n    - [ ] **AGGREGATE FUNCTIONS**\n     - [COUNT](https://www.1keydata.com/sql/sqlcount.html) | [SUM](https://www.1keydata.com/sql/sum-function.html) | [AVG](https://www.1keydata.com/sql/sql-average.html) | [MAX](https://www.1keydata.com/sql/max-function.html) | [MIN](https://www.1keydata.com/sql/min-function.html)\n    - [ ] **JOINS**\n     - [FULL OUTER JOIN](https://www.ibm.com/docs/en/db2-for-zos/12?topic=jdfmtot-full-outer-join)\n     - [INNER JOIN](https://www.ibm.com/docs/en/db2-for-zos/12?topic=table-inner-joins)\n     - [LEFT JOIN](https://stackoverflow.com/questions/5706437/) | [RIGHT JOIN](https://stackoverflow.com/questions/5706437/)\n     - [NATURAL JOIN](https://docs.oracle.com/javadb/10.6.2.1/ref/rrefsqljnaturaljoin.html)\n     - [LEFT OUTER JOIN](https://www.1keydata.com/sql/left-outer-join.html)\n     - [RIGHT OUTER JOIN](https://docs.oracle.com/javadb/10.6.2.1/ref/rrefsqlj57522.html)\n    - [ ] **SUBQUERIES**\n     - [Subqueries](https://www.ibm.com/docs/en/qmf/13.1.0?topic=ddfmtuss-creating-subquery-retrieve-data-from-more-than-one-table)\n    - [ ] **WINDOW FUNCTIONS**\u003csup\u003e(Optional) Advanced SQL\u003c/sup\u003e\n     - [Window Functions](https://mode.com/sql-tutorial/sql-window-functions)\n\n- **[DataBase Management Systems](https://www.javatpoint.com/dbms-tutorial)**\n    - Entity-Relationship model.\n    - [ ] **Integrity Constraints**\n     - Primary Key and Foreign key\n     - Composite keys\n     - All other types of keys\n    - [ ] Normal Forms : 1NF to 4 NF\n    - [ ] File Organization.\n    - [ ] Indexing ([B- Trees and B+ Trees](https://www.javatpoint.com/b-tree-vs-bplus-tree))\n    - [ ] **Transactions and Concurrency Control**\n    - Conflict Serializability\n    - Locking\n    - ACID | BASE\n    - Database security\n    - SQL Injection\n    - Flat file / document database\n    - Object / JSON based database\n    \n## [Operating Systems](http://pages.cs.wisc.edu/~remzi/OSTEP/)\n   - The Boot Process\n- [ ] **Processes and Threads**\n  - Process Control Block\n  - Dispatcher and Scheduler\n- [ ] **Inter Process Communication**\n  - Mesage Passing\n  - Shared Memory \n- [ ] **Scheduling Algorithms**\n  - Round Robin.\n  - Shortest Remaining Time First.\n  - Least Recently Used.  \n- [ ] **Deadlocks**\n  - MutEx and Locks\n  - Semaphores\n  - Banker's Algorithm\n- [ ] **Memory Management**\n  - Paging and Page tables\n  - Segmentation\n  - First Fit, Next Fit, Best Fit\n  - Non-continuous Allocation\n- [ ] **Virtual memory**\n  - Page Faults\n  - Page Replacement Algorithms\n  - Belady’s Anomaly\n- [ ] **[IO Scheduling](https://en.wikipedia.org/wiki/I/O_scheduling)**\n  - Shortest Seek Time First\n  - Disk Scheduling Algorithms\n- [ ] **File Systems**\n  - File Allocation Tables.\n- [ ] **OS Security**\n  - Firewall\n  - Malware and Antiviruses\n- [ ] [Unix commands](http://www.ee.surrey.ac.uk/Teaching/Unix/)\n- [ ] Multithreading and Context Passing in Programming languages\n\n## Computer Networks\n\n- [ ] **Layers of TCP and OSI**\n    - Application.\n    - Presentation.\n    - Session.\n    - Transport.\n    - Network.\n    - Data.\n    - Physical.\n\n- [ ] **Flow and Congestion Control**\n    - Flow Control\n    - Congestion Control\n    - Error Control\n    \n- [ ] **Routers and Routing Algorithms**\n    - DHCP and static routing\n    - DHCP | ICMP\n    - Bellman Ford\n    - Round Robin and others\n    \n- [ ] **UDP and Sockets**\n\n- [ ] **IPv4 | IPv6**\n    \n- [ ] **Autonomous Systems**\n    - [Border Gateway Protocol](https://www.cloudflare.com/learning/security/glossary/what-is-bgp/)\n    - OSPF\n    \n- [ ] **Application Layer Protocols**\n    - HTTP | FTP\n    - DNS | SMTP\n    - Email MIME Types | POP | IMAP\n\n- [ ] **Cloud Computing**   \n    - SAAS | PAAS | IAAS (AAS : As A Service)\n    - Full and Para Virtualization : KVM/QEMU\n    - Virtual Machines and Hypervisors ( Bare Metal | Hosted )\n    - Clones | Snapshots | Scaling\n\n## Software Engineering\n\n- [ ] **Software development models**\n    - Waterfall\n    - Spiral\n    - Iterative\n    - Agile\n\n- [ ] **Software Cost Estimation**\n\n- [ ] **COCOMO Model**\n\n- [ ] **Risk Management**\n\n- [ ] **Software Requirement**\n    - Software Requirement Specifications\n    - Data Flow Diagrams\n\n- [ ] **Software Quality**\n    - ISO standards 9001, 14001\n    - SEICMM\n    - Six Sigma\n\n- [ ] **Software Design**\n    - Software Design Principles\n    - **Coupling and Cohesion**\n    - Object-Oriented Design\n    - User Interface Design\n\n- [ ] **Testing**\n\n## Computer Science - 4 \n_You will need these when you make projects_\n\n## Cryptography and Network Security\n\n- [ ] **[Encryption Algorithms](https://pdf.sciencedirectassets.com/280203/1-s2.0-S1877050916X00026/1-s2.0-S1877050916001101/main.pdf)**\n    - DES, AES, Blowfish, Whirlpool, One Time Pad\n    - Avalanche effect, Entropy\n- [ ] **Hashing Algorithms**\n    - SHA family, MD5\n- [ ] **Key Distribution**\n    - RSA, Kerberos\n- [ ] **[Digital Signatures](https://cloud.google.com/kms/docs/digital-signatures#:~:text=A%20digital%20signature%20is%20a,a%20signature%20over%20raw%20data)**\n    - [Message Digest](https://www.ibm.com/docs/en/ibm-mq/7.5?topic=concepts-message-digests)    \n - [ ] **Compression**\n    - [History](https://www.hanshq.net/zip.html#huffman).\n - [ ] **Firewalls**\n - [ ] **Steganography**\n - [ ] **Network Security**\n    - [Honeypots](https://en.wikipedia.org/wiki/Honeypot_(computing))\n    - [Man in the middle attacks](https://owasp.org/www-community/attacks/Manipulator-in-the-middle_attack)\n    - [DDOS prevention](https://www.researchgate.net/figure/DDoS-Mitigation-Module_fig3_220939734)\n    - [SSL and TLS](https://www.ibm.com/docs/en/ibm-mq/7.5?topic=mechanisms-cryptographic-security-protocols-tls-ssl)\n\n\n### Data Science and Machine Learning\n\n- [ ] **[Bias and Variance](https://svivek.com/teaching/lectures/slides/loss-minimization/bias-variance.pdf)**\n\n- [ ] **Supervised Learning**\n   - [ ] [Classification](https://cogitoai.home.blog/2019/08/21/what-is-classification-in-machine-learning/)\n   - [ ] [Regression](https://www.topcoder.com/thrive/articles/introduction-to-linear-regression)\n\n- [ ] **Un-supervised Learning**\n   - [ ] [Clustering](https://scikit-learn.org/stable/modules/clustering.html)\n   - [ ] [k-Nearest Neighbours](https://web.iitd.ac.in/~bspanda/KNN%20presentation.pdf)\n\n- [ ] **[Image Processing](https://homepages.inf.ed.ac.uk/rbf/HIPR2/wksheets.htm)**\u003csup\u003eWorth learning\u003c/sup\u003e\n    - [Transformation](http://www.it.hiof.no/~borres/j3d/math/twod/p-twod.html) and [Translation](https://homepages.inf.ed.ac.uk/rbf/HIPR2/translte.htm)\n    \n\n## Web Development\n\u003e You can study Web Development from [Mozilla Developer Network Website](https://developer.mozilla.org/en-US/docs/Web/Tutorials).\n\n- [MDN Getting Started Guide](https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web)\n- [ ] **Front-End**\n    - [HTML5](https://developer.mozilla.org/en-US/docs/Learn/HTML)\n    - [CSS3](https://developer.mozilla.org/en-US/docs/Learn/CSS)\n    - [JavaScript](https://developer.mozilla.org/en-US/docs/Learn/JavaScript)\n    - [Web Forms](https://developer.mozilla.org/en-US/docs/Learn/Forms)\n    - [Browser APIs](https://developer.mozilla.org/en-US/docs/Web/API)\n    - [Accessibility](https://developer.mozilla.org/en-US/docs/Learn/Accessibility) \n    - [Tools and Testing](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing)\n    - [DNS and Domain Names](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_domain_name)\n    - [JSON and other formats](https://www.zionandzion.com/json-vs-xml-vs-toml-vs-cson-vs-yaml/) and [YAML](https://yaml.org/)\n\n- [ ] **BackEnd** \u003csup\u003eChoose any language\u003c/sup\u003e\n    - [Golang](https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/) OR [Todd Mcleod's Udemy Course](https://www.udemy.com/course/learn-how-to-code/)\n    - [Python Flask](https://flask.palletsprojects.com/en/stable/)\n    - [Git internals](https://eagain.net/articles/git-for-computer-scientists/)\n    - Messaging Queues\n\n\n## [Computer Graphics](https://www.cs.uic.edu/~jbell/CourseNotes/ComputerGraphics/)\n\n\u003e Not mandatory, just get the overview\n\n- [ ] **Concepts and principles**\n    - [OpenGL basics : lines, planes, vertex and edges](https://learnopengl.com/)\n    - [Pixels](http://math.hws.edu/graphicsbook/c2/s1.html)\n    - [Rendering](https://github.com/ssloy/tinyrenderer/wiki)\n    - [Shading](https://www.cs.uic.edu/~jbell/CourseNotes/ComputerGraphics/LightingAndShading.html)\n    - [Texturing](https://www.cs.uic.edu/~jbell/CourseNotes/ComputerGraphics/TextureMapping.html)\n    - [Ray Tracing](https://raytracing.github.io/books/RayTracingInOneWeekend.html)\n    - [Raycasting](http://web.cs.wpi.edu/~matt/courses/cs563/talks/powwie/p1/ray-cast.htm)\n\n\nAfter you are done with all this and want to make projects, check out [Projects you can make](https://github.com/apeman/awesome_computer_science/blob/master/what-should-i-code.md)\n\n## LICENSE\n\n[Mozilla-Public-License](./LICENSE.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapeman%2Fawesome_computer_science","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapeman%2Fawesome_computer_science","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapeman%2Fawesome_computer_science/lists"}