Self study files based on "What every computer science major should know" from matt.might.net
- Haskell
- Latex
- Emacs
- Portfolio
- Resume
- Technical Communication
- LaTeX
- Emacs
- Vim
###Systems administration
###Programming Languages
-
C - Haskell
- C++
- Assembly
- JavaScript
- Java
- Squeak
- Standard ML
- Prolog
- Scala
- Racket
###Discrete mathematics
###Data structures and algorithms
-
hash tables -
linked lists -
trees -
binary search trees -
directed and undirected graphs
###Theory
- finite-state automata
- regular languages (and regular expressions)
- pushdown automata
- context-free languages
- formal grammars
- Turing machines
- the lambda calculus
- undecidability
- P, NP, NP-Hard and NP-Complete.
###Architecture
- transistors, gates, adders, muxes, flip flops
- ALUs, control units, caches and RAM
- GPU model of high-performance computing
- caches
- buses
- hardware memory management
- design and simulate a small CPU
###Operating systems
- how kernels handle system calls, paging, scheduling, context-switching, filesystems and internal resource management.
- runtime systems
- print "hello world" during the boot process;
- design their own scheduler;
- modify the page-handling policy; and
- create their own filesystem.
###Networking
- 802.3 and 802.11;
- IPv4 and IPv6; and
- DNS, SMTP and HTTP.
- an HTTP client and daemon;
- a DNS resolver and server;
- a command-line SMTP mailer.
###Security
- social engineering;
- buffer overflows;
- integer overflow;
- code injection vulnerabilities;
- race conditions; and
- privilege confusion.
###Criptography
- symmetric-key cryptosystems;
- public-key cryptosystems;
- secure hash functions;
- challenge-response authentication;
- digital signature algorithms; and
- threshold cryptosystems.
- create their own digital certificate and set up https in apache
- write a console web client that connects over SSL.
- how to use GPG;
- how to use public-key authentication for ssh;
- how to encrypt a directory or a hard disk.
###User experience design
- HTML
- CSS
- JavaScript
###Parallelism
- multicore, caches
- buses, GPUs
- CUDA and OpenCL
- MPI
- map-reduce
###Databases
- LAMP stack
###Software engineering
- SVN
- Git
- gdb
- valgrind
###Formal methods
- theorem prover
###Machine Learning
- Bayesian networks
- Clustering
- Decision-tree learning
That's all folks!