Added Intro CS section (h2) to follow initial ierarchy of the document.
Made Introduction to Programming and Introduction to Computer Science sub-sections (h3).
Also fixed Contents and Curriculum links to reflect these changes.
Add assignments to Computer Networking course. See here:
https://github.com/ossu/computer-science/issues/520#issuecomment-515740803
Add an extra column to the Core Systems courses chart so that it can
hold information previously written above and below. Centralizing
information should improve readability.
This books contains easy to understand introduction to the automata theory, which is missing in "Introduction to computing" book by David Evans. It does not require complicated math, so it can be useful to students who do not want to become theoretical computer scientists, but want do have general understanding of it's topics. Also, it almost perfectly matches The Automata Theory course we have in the curriculum.
This is probably the best introduction to computer systems for programmers. It contains all needed essentials of computer architecture, describes how C language works internally (e.g. how data structures are organized in memory and managed on machine language level) and even describes essentials of operating systems.
GTx CS1301, "Computing In Python" is proposed as a supplemental course in the OSSU curriculum and as a potential future candidate for the Introduction to Computer Science course. It is an online-adapted version of the on-campus Introduction to Computing course for Georgia Tech computer science students. The online version is comprised of four parts, delivered on-demand via edX. The course is self-paced with 16 weeks of effort, and is 100% free to audit with all materials included. It covers all introductory CS topics discussed in MIT 6.00.1x from a language-agnostic perspective, while providing additional instruction and support in learning Python as a language. Students who complete this course will have an understanding of basic CS topics **and** a working knowledge of Python 3 they can immediately apply to interesting problems.
PBRT is an amazing book detailing the implementation of a real, well-developed path tracer and is used in many real Computer Graphics courses. The authors have no released it for free, so it would make a great addition to the curriculum.
Resolves#440: It has been decided to keep CS50 as required for
now, but moving it later in the curriculum to match its high
degree of challenge and very low-level orientation.
Resolves#463: It has been decided to retain CS50's dynamic
programming assignment due to the positive feedback it received
as well as the fact that the additional challenge of this problem
is acceptable now that the course is later in the curriculum.
* updating link to LAFF – On Programming for Correctness
It seems like the most recent (and still available) course session added "On" to the course title. Previous link directed to the unavailable version of the course.
* update course name