Note-taker: Baksi
This repository curates divers computer science notes. Its scope is bounded by my own interests, and it will keep updating as limited knowledge will never suffice.
If you are looking for a structured CS course, you should probably go for a programme offered by accredited organisations. However, I will advice some courses/books for the subjects that are not covered but important.
Anyone is more than welcomed to give suggestions, or even raise a PR.
Lastly, please feel free to star this repository if you found it interesting or boring (yeah, p ∨ ¬p).
According to Curriculum Guidelines for Undergraduate Programs in Computer Science (p. 14) by ACM and IEEE Computer Society, there are eighteen knowledge areas (KA) that consist the body of knowledge, which are used to label notes in this collection for reference.
Keyword Table
Code | Knowledge Area | (continued) | |
---|---|---|---|
AL | Algorithms and Complexity | OS | Operating Systems |
AR | Architecture and Organization | PBD | Platform-base Development |
CN | Computational Science | PD | Parallel and Distributed Computing |
DS | Discrete Structures | PL | Programming Languages |
GV | Graphics and Visualization | SDF | Software Development Fundamentals |
HCI | Human Computer Interaction | SE | Software Engineering |
IAS | Information Assurance and Security | SF | Systems Fundamentals |
IM | Information Management | SP | Social Issues and Professional Practice |
NC | Networking and Communication |
About learning gives more details on the structure of knowledge.
- Introduction to Computer Science
Note based on CS50 course blended with some theoretical flavour. It covers the basics of C, Python, SQL, Web Programming content like Javascript, HTML and CSS, and important concepts in theoretical computer science.
For reading materials, Algorithms by S. Dasgupta et al is a good and concise book recommended by UC San Diego courses;
Introduction to Algorithms by T. H. Cormen recommended by MIT courses is quite detailed in proofs (solutions of the exercises also available). *
There are also many open-source collections of algorithm implementations, which are useful during study, e.g. in Python and Java.
In addition, for visualizations there is Data Structure Visualizations.
-
Graph Theory and Algorithms (with Python)
This note is uploaded but still upon editing for mathematical details.
A summary note from NET04x (IMTx) and ALGS202x (UCSanDiegoX) with a nicely balanced theoretical and practical content. In the end, an example on applying combinatorial game theory to win a game described by graph is provided.
For anyone who wishes to go deeper in the computational theory (esp. after studied Chapter IV), reading of Complexity and NP-Complete Problems is highly recommended. -
Complexity and NP-Complete Problems
A note from ALGS203x (UCSanDiegoX). It covers NP problems, approximate algorithms and algorithm analysis.
Mathematical prerequisites are covered in Mathematics for Computer Science (MIT).
- Coding theory (with Python)
This is a coding theory text (thanks to Prof. PPM) with Python implementations. Not ready to upload so far.
- High-Performance Computing Case Studies
- Learn Mathematica by Example
I wrote this notebook alongside with learning. The official tutorial, [Fast Introduction for math students](http://www.wolfram.com/language/fast- - WolfLang Workshops
This is a collection of notebooks, each has its own topic. For more inspiring notebooks, cf. Notebook Archive by Wolfram Foundation.
Others
-
Zsh (Z shell) Introduction with Comparison to Bash
This is a Learn X in Y minutes-styled tutorial of Zsh. It act as a fast introduction for programmers, esp. those who have knowledge about Bash. -
Introduction to Web Development
Note based on CS50w course structure. It covers Git, HTML/CSS, JavaScript, Web Frameworks like Flask, Django et.c.
For reading materials, Quantum Computation and Quantum Information (Cambridge, 2010) is the choice, though a bit dated, it is a classical reference for stepping into the field.
Others
- D-Wave machine Introduction
This was part of my undergraduate thesis topic. The code is available now, see here.
Unless otherwise specified, the repository CS-Hypomnema and its contents are Copyright BaksiLi, and are licenced under the Creative Commons BY-NC-SA (Attribution-NonCommercial-ShareAlike 4.0 International) Licence.
I used Byword (with Standard Markdown Syntax) for taking notes. However, it might encounter problems of compilation on GitHub, esp. with LaTeX. I will try to tackle this in the future.
Copyright (c) 2019 BaksiLi