Date: Sun, 5 Mar 2017 14:40:03 -0500
Subject: [PATCH 128/558] Change to shorter image
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index e4c0463e0..80241fd29 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-
+
Open Source Society University
From ed0519cf884cc17c2cf2b36b91d313a963098a5b Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Sun, 5 Mar 2017 16:42:45 -0500
Subject: [PATCH 129/558] Condense readme
---
CHANGELOG.md | 8 +-
LICENSE | 2 +-
README.md | 233 ++++++++++++++++++---------------------------
REQUIREMENTS.md | 3 +
extras/readings.md | 1 +
5 files changed, 107 insertions(+), 140 deletions(-)
create mode 100644 REQUIREMENTS.md
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d7d9dbfee..ac20047e0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,13 @@
# Change Log
All notable changes to this project will be documented in this file.
-This project adheres to [Semantic Versioning](http://semver.org/).
+This project adheres *in spirit* to [Semantic Versioning](http://semver.org/):
+- "MAJOR" updates correspond to changing the topics studied
+- "MINOR" updates correspond to fulfilling a topical requirement using a different class
+- "PATCH" updates correspond to purely aesthetic and non-essential additions/removals
+
+## [7.0] 2017-03-05
+TODO
## [6.0] 2016-10-09
### Updated
diff --git a/LICENSE b/LICENSE
index 05434d246..2b7761ff0 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2015 Open Source Society
+Copyright (c) 2017 Open Source Society
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index 80241fd29..6b7e0c2bd 100644
--- a/README.md
+++ b/README.md
@@ -15,36 +15,71 @@
# Contents
-- [About](#about)
-- [Motivation & Preparation](#motivation--preparation)
+- [Summary](#summary)
- [Curriculum](#curriculum)
-- [How to use this guide](#how-to-use-this-guide)
-- [Prerequisites](#prerequisites)
-- [Changelog](#changelog)
-- [How to collaborate](#how-to-collaborate)
+ - [Prerequisites](#prerequisites)
+ - [Intro CS](#intro-cs)
+ - [Core CS](#core-cs)
+ - [Advanced CS](#advanced-cs)
+ - [Final project](#final-project)
+ - [Pro CS](#pro-cs)
- [Community](#community)
-- [Team](#team)
+ - [How to show your progress](#how-to-show-your-progress)
+ - [Team](#team)
- [References](#references)
-# About
-
-This is a solid path for those of you who want to complete a **Computer Science** curriculum on your own time, at little to no cost, with courses from the best universities in the world.
-
-In our curriculum, we give preference to MOOC (Massive Open Online Course) style courses because these courses were created with our style of learning in mind;
-but we include readings where appropriate.
-The curriculum then concludes with a final project to show off your skills to your friends and future employers.
-
-# Motivation & Preparation
-
-Here is an interesting link that can make all the difference in your journey.
-It's a motivational video that shows a guy that went through the "MIT Challenge", which consists of learning the entire 4-year MIT curriculum for Computer Science in *1 year*.
-
-- [MIT Challenge](https://www.scotthyoung.com/blog/myprojects/mit-challenge-2/)
-
-**Are you ready to get started?**
+# Summary
+
+The OSSU curriculum is a **complete education in computer science** using online materials.
+It's not merely for career training or professional development.
+It's for those who want a proper, *well-rounded* grounding in concepts fundamental to all computing disciplines,
+and for those who have the discipline, will, and (most importantly!) good habits to obtain this education largely on their own,
+but with support from a worldwide community of fellow learners.
+
+It is designed according to the degree requirements of undergraduate computer science majors, minus general education (non-CS) requirements,
+as it is assumed most of the people following this curriculum are already educated outside the field of CS.
+The courses themselves are among the very best in the world, often coming from Harvard, Princeton, MIT, etc.,
+but specifically chosen to meet the following criteria.
+
+**Courses must**:
+- Be open for enrollment
+- Run regularly (ideally in self-paced format, otherwise running at least once a month or so)
+- Fulfill the [academic requirements](REQUIREMENTS.md) of OSSU
+- Fit neatly into the progression of the curriculum with respect to topics and difficulty level
+- Be of generally high quality in teaching materials and pedagogical principles
+
+When no course meets the above criteria, the coursework is supplemented with a book.
+When there are courses or books that don't fit into the curriculum but are otherwise of high quality,
+they belong in [extras/courses](extras/courses.md) or [extras/readings](extras/readings.md).
+
+**Organization**. The curriculum is designed as follows:
+- *Intro CS*: for students to try out CS and see if it's right for them
+- *Core CS*: corresponds roughly to the first three years of a computer science curriculum, taking classes that all majors would be required to take
+- *Advanced CS*: corresponds roughly to the final year of a computer science curriculum, taking electives according to the student's interests
+- *Final Project*: a project for students to validate, consolidate, and display their knowledge, to be evaluated by their peers worldwide
+- *Pro CS*: graduate-level specializations students can elect to take after completing the above curriculum if they want to maximize their chances of getting a good job
+
+**Duration**. It is possible to finish Core CS within about 2 years if you plan carefully and devote roughly 18-22 hours/week to your studies.
+Courses in Core CS should be taken linearly if possible, but since a perfectly linear progression is rarely possible,
+each class's prerequisites is specified so that you can design a logical but non-linear progression
+based on the class schedules and your own life plans.
+
+**Cost**. All or nearly all course material prior to Pro CS is available for free,
+however some courses may charge money for assignments/tests/projects to be graded.
+Note that Coursera offers [financial aid](https://learner.coursera.help/hc/en-us/articles/209819033-Apply-for-Financial-Aid).
+Decide how much or how little to spend based on your own time and budget;
+just remember that you can't purchase success!
+
+**Content policy**: If you plan on showing off some of your coursework publicly, you must share only files that you are allowed to.
+*Do NOT disrespect the code of conduct* that you signed in the beginning of each course!
+
+**How to contribute**: please see [CONTRIBUTING](CONTRIBUTING.md).
# Curriculum
+**Curriculum version**: `7.0` (see [CHANGELOG](CHANGELOG.md))
+
+- [Prerequisites](#prerequisites)
- [Intro CS](#intro-cs)
- [Core CS](#core-cs)
- [Core programming](#core-programming)
@@ -61,10 +96,16 @@ It's a motivational video that shows a guy that went through the "MIT Challenge"
- [Final project](#final-project)
- [Pro CS](#pro-cs)
-See also: [Prerequisites](#prerequisites)
-
---
+## Prerequisites
+
+- [Core CS](#core-cs) assumes the student has already taken high school math and physics, including algebra, geometry, and pre-calculus.
+Some high school graduates will have already taken AP Calculus, but this is usually only about 3/4 of a college calculus class, so the calculus courses in the curriculum are still recommended.
+- [Advanced CS](#advanced-cs) assumes the student has already taken the entirety of Core CS
+and is knowledgeable enough now to decide which electives to take.
+- Note that [Advanced systems](#advanced-systems) assumes the student has taken a basic physics course (e.g. AP Physics in high school).
+
## Intro CS
Use the first course, CS50, to determine if Computer Science is right for you.
@@ -85,12 +126,14 @@ and more.
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Introduction to Computer Science - CS50](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!) | 12 weeks | 10-20 hours/week | none
+[Introduction to Computer Science - CS50](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!) ([alt](https://cs50.harvard.edu/)) | 12 weeks | 10-20 hours/week | none
[Learning How to Learn](https://www.coursera.org/learn/learning-how-to-learn) | 4 weeks | 2 hours/week | none
[Effective Thinking Through Mathematics](https://www.edx.org/course/effective-thinking-through-mathematics-utaustinx-ut-9-01x-0) | 4 weeks | 2 hours/week | none
## Core CS
+All coursework under Core CS is **required**, unless otherwise indicated.
+
### Core programming
**Topics covered**:
functional programming;
@@ -143,8 +186,8 @@ and more.
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-frontiers-utaustinx-ut-5-04x#!)| 15 weeks | 8 hours/week | pre-calculus
-[Calculus One](https://www.coursera.org/learn/calculus1)| 16 weeks | 8-10 hours/week | pre-calculus
+[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-frontiers-utaustinx-ut-5-04x#!) ([alt](http://ulaff.net/)) | 15 weeks | 8 hours/week | pre-calculus
+[Calculus One](https://www.coursera.org/learn/calculus1) ([alt](https://mooculus.osu.edu/)) | 16 weeks | 8-10 hours/week | pre-calculus
[Calculus Two: Sequences and Series](https://www.coursera.org/learn/advanced-calculus)| 7 weeks | 9-10 hours/week | Calculus One
[Mathematics for Computer Science](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/index.htm) | 13 weeks | 5 hours/week | single variable calculus (Calculus Two)
@@ -167,7 +210,7 @@ and more.
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) | 6 weeks | 7-13 hours/week | none
+[Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) ([alt](http://www.nand2tetris.org/)) | 6 weeks | 7-13 hours/week | none
[Build a Modern Computer from First Principles: Nand to Tetris Part II ](https://www.coursera.org/learn/nand2tetris2) | 6 weeks | 12-18 hours/week | From Nand to Tetris Part I
[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| - | 4–12 hours/week | algebra, probability, basic CS
@@ -371,6 +414,17 @@ Put the OSSU-CS badge in the README of your repository!
- Markdown: `[](https://github.com/open-source-society/computer-science)`
- HTML: `
`
+### Evaluation
+
+Upon completing your final project, use our [community](#community) channels to announce it.
+Your peers and mentors from OSSU will then informally evaluate your project.
+You will not be "graded" in the traditional sense — everyone has their own measurements for what they consider a success.
+The purpose of the evaluation is to act as your first announcement to the world that you are a computer scientist,
+and to get experience listening to feedback — both positive and negative — and taking it in stride.
+
+The final project evaluation has a second purpose: to evaluate whether OSSU,
+through its community and curriculum, is successful in its mission to guide independent learners in obtaining a world-class computer science education.
+
### Cooperative work
You can create this project alone or with other students!
@@ -390,7 +444,7 @@ My friend, here is the best part of liberty!
You can use **any** language that you want to complete the final project.
The important thing is to **internalize** the core concepts and to be able to use them with whatever tool (programming language) that you wish.
-
+
## Pro CS
After completing the requirements of the curriculum above, you will have completed the equivalent of a full bachelor's degree in Computer Science, or quite close to one.
@@ -420,45 +474,18 @@ These aren't the only specializations you can choose. Check the following websit

-# How to use this guide
-
-## Order of the classes
-
-This guide was developed to be flexible.
-Ideally, Core CS can be consumed in a linear approach, i.e. you complete one course at a time, but in reality different people have different preferences with regard to how many courses they wish to take at once.
-Plus, different courses are available at different times and have wildly different time requirements.
-
-Therefore, many students will take the courses in a non-linear order, based on availability and how much time they have to devote to each class.
-However, with very few exceptions, everything in Core CS should be completed before you begin Advanced CS.
-Pay attention to prerequisites.
-
-## Cost of the classes
-
-No promises are made about the cost of any of the courses.
-
-The web is utterly filled with free educational material if you are willing to spend the time looking for it;
-this curriculum has specifically been designed to prioritize *quality* over low cost.
-Nevertheless, the reality is that the professors who have made these courses and the platforms who host them are extraordinarily generous.
-The content of virtually every course on Coursera and edX is available at no charge, but if you want graded assignments and quizzes, you may have to pay, depending on the course;
-yet, these sums of money are nothing compared to the cost of attending their prestigious instutitions.
-Coursera is the platform upon which you are most likely to encounter paywalled features, but they offer
-[financial aid](https://learner.coursera.help/hc/en-us/articles/209819033-Apply-for-Financial-Aid)
-to those eligible.
+# Community
-Some course materials are also available separate from these platforms, such as on YouTube.
-Below is a list of courses from the curriculum which have dedicated websites with freely available materials separate from the platforms:
-- [Introduction to Computer Science - CS50](https://cs50.harvard.edu/)
-- [Linear Algebra: Foundations to Frontiers](http://ulaff.net/)
-- [From Nand to Tetris: Building a Modern Computer from First Principles](http://www.nand2tetris.org/)
-- [How to Design Programs](http://www.ccs.neu.edu/home/matthias/HtDP2e/)
-(Note: This is the **book** upon which *How to Code: Systematic Program Design* is based, but the course is not taught by the book's author; they are completely separate)
-- [Mooculus: Calculus One](https://mooculus.osu.edu/)
+- Subscribe to [/r/opensourcesociety](https://www.reddit.com/r/opensourcesociety/)!
+- Join us in our [group](https://groups.google.com/forum/#!forum/open-source-society-university)!
+- You can also interact through [GitHub issues](https://github.com/open-source-society/computer-science/issues).
+- We also have a chat room! [](https://gitter.im/open-source-society/computer-science?utm_campaign=pr-badge&utm_content=badge&utm_medium=badge&utm_source=badge)
+- Add **Open Source Society University** to your [Facebook](https://www.facebook.com/ossuniversity) profile!
-Just remember that purchasing a course might save you some time and give you some extra motivation, but you cannot buy your way to success in this field.
-It's encouraged more as a way to thank the professor for their work.
-The most diligent students will be the most successful, regardless of how much or how little they spend.
+> **PS**: A forum is an ideal way to interact with other students as we do not lose important discussions, which usually occur in communication via chat apps.
+**Please use our subreddit/group for important discussions**.
-## How to track and show your progress
+## How to show your progress
1. Create an account in [Trello](https://trello.com/).
1. Copy [this](https://trello.com/b/9DPXYv5f) board to your personal account.
@@ -482,78 +509,7 @@ You should put the *Course's cards* below its respective *Section's card*.
The intention of this board is to provide our students a way to track their progress, and also the ability to show their progress through a public page for friends, family, employers, etc.
You can change the status of your board to be *public* or *private*.
-### Content Policy
-
-If you plan on showing off some of your coursework publicly, you must share **only** files that you are **allowed** to!
-**Do NOT disrespect the code of conduct** that you signed in the beginning of some courses!
-
-## Should I take all courses?
-
-If you are serious about getting an online education comparable to a bachelor's degree in Computer Science, you should absolutely take **all** of the courses under the 'Core CS' section.
-
-These courses are equivalent to about 3/4 of a full bachelor's degree in CS.
-So if you want to really complete your studies, then you should select one of the specializations to finish out your program, such as one in Artificial Intelligence or Big Data.
-
-## Duration of the project
-
-If you are able to devote 18-20 hours per week to this curriculum, taking 1-3 clases at a time, you could hypothetically finish the Core CS section in under 2 years.
-A specialization would then take you a few more months.
-
-It will probably take longer if you go slower, but regardless, your reward will be proportional to your effort.
-
-You must focus on your habit, and forget about goals.
-Try to invest 1 ~ 2 hours every day studying this curriculum.
-If you do this, inevitably you'll finish this curriculum.
-
-> See more about "Commit to a process, not a goal" [here](http://jamesclear.com/goals-systems).
-
-## Stay tuned
-
-[Watch](https://help.github.com/articles/watching-repositories/) this repository for futures improvements and general information.
-
-# Prerequisites
-
-This curriculum assumes the student has already taken high school math, including algebra, geometry, and pre-calculus.
-Some high school students will have taken calculus, but this is usually only about 3/4 of a college calculus class, so the calculus courses listed above are still recommended.
-
-Apart from those, the only things that you need to know are how to use **Git** and **GitHub**. Here are some resources to learn about them:
-
-**Note**: Just pick one of the resources below to learn the basics. You will learn a lot more once you get started!
-
-- [Try Git](https://try.github.io/levels/1/challenges/1)
-- [Ry's Git Tutorial](http://rypress.com/tutorials/git/index)
-- [Git - the simple guide](http://rogerdudler.github.io/git-guide/)
-- [GitHub Training & Guides](https://www.youtube.com/playlist?list=PLg7s6cbtAD15G8lNyoaYDuKZSKyJrgwB-)
-- [GitHub Hello World](https://guides.github.com/activities/hello-world/)
-- [Git Immersion](http://gitimmersion.com/index.html)
-- [How to Use Git and GitHub](https://www.udacity.com/course/how-to-use-git-and-github--ud775)
-
-# Changelog
-
-**Curriculum Version**: `6.0`
-
-To show respect to all of our students, we will keep a [CHANGELOG](CHANGELOG.md) file that contains all the alterations that our curriculum may suffer.
-
-Now we have a stable version of the curriculum, which won't change anymore, only in exceptional cases (outdated courses, broken links, etc).
-
-Our students can trust in this curriculum because it has been carefully planned and covers the major core topics that a conventional Computer Science program covers.
-
-# Community
-
-Subscribe to [/r/opensourcesociety](https://www.reddit.com/r/opensourcesociety/)!
-
-Join us in our [group](https://groups.google.com/forum/#!forum/open-source-society-university)!
-
-You can also interact through [GitHub issues](https://github.com/open-source-society/computer-science/issues).
-
-We also have a chat room! [](https://gitter.im/open-source-society/computer-science?utm_campaign=pr-badge&utm_content=badge&utm_medium=badge&utm_source=badge)
-
-Add **Open Source Society University** to your [Facebook](https://www.facebook.com/ossuniversity) profile!
-
-> **PS**: A forum is an ideal way to interact with other students as we do not lose important discussions, which usually occur in communication via chat apps.
-**Please use our subreddit/group for important discussions**.
-
-# Team
+## Team
* **Curriculum Founder**: [Eric Douglas](https://github.com/ericdouglas)
* **Curriculum Maintainer**: [Eric Douglas](https://github.com/ericdouglas)
@@ -566,6 +522,7 @@ Add **Open Source Society University** to your [Facebook](https://www.facebook.c
- [edX](https://www.edx.org)
- [Udacity](https://www.udacity.com/)
- [Stanford University](https://lagunita.stanford.edu/)
+- [Carnegie Mellon University: Computer Science Major Requirements](https://www.csd.cs.cmu.edu/academics/undergraduate/requirements)
- [MIT Open Courseware](http://ocw.mit.edu/courses/#electrical-engineering-and-computer-science)
- [A DIY Computer Science Education](https://bradfieldcs.com/diy/)
- [Obtaining a Thorough CS Background Online](http://spin.atomicobject.com/2015/05/15/obtaining-thorough-cs-background-online/)
\ No newline at end of file
diff --git a/REQUIREMENTS.md b/REQUIREMENTS.md
new file mode 100644
index 000000000..bc4ae0805
--- /dev/null
+++ b/REQUIREMENTS.md
@@ -0,0 +1,3 @@
+# OSSU Academic Requirements
+
+TODO
\ No newline at end of file
diff --git a/extras/readings.md b/extras/readings.md
index 3e26a9540..d29a07497 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -11,6 +11,7 @@ Name | Author(s)
:-- | :--:
[Introduction to Computation and Programming Using Python](https://www.amazon.com/Introduction-Computation-Programming-Using-Python/dp/0262525003/) | John V. Guttag
[Discrete Mathematics with Applications (4th Edition)](http://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0495391328/) | Susanna S. Epp
+[How to Design Programs](http://www.ccs.neu.edu/home/matthias/HtDP2e/) | Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
[Transaction Processing: Concepts and Techniques](https://www.amazon.com/Transaction-Processing-Concepts-Techniques-Management/dp/1558601902) | Jim Gray, Andreas Reuter
[Data and Reality: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World](https://www.amazon.com/Data-Reality-Perspective-Perceiving-Information/dp/1935504215) | William Kent
[Architecture of a Database System](http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf) | Joseph M. Hellerstein, Michael Stonebraker, James Hamilton
From 278546a1e142c024c707cdd86ed4ed76f5355a04 Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Sun, 5 Mar 2017 16:44:08 -0500
Subject: [PATCH 130/558] Fix formatting inconsistencies
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 6b7e0c2bd..d5f7b84ed 100644
--- a/README.md
+++ b/README.md
@@ -70,10 +70,10 @@ Note that Coursera offers [financial aid](https://learner.coursera.help/hc/en-us
Decide how much or how little to spend based on your own time and budget;
just remember that you can't purchase success!
-**Content policy**: If you plan on showing off some of your coursework publicly, you must share only files that you are allowed to.
+**Content policy**. If you plan on showing off some of your coursework publicly, you must share only files that you are allowed to.
*Do NOT disrespect the code of conduct* that you signed in the beginning of each course!
-**How to contribute**: please see [CONTRIBUTING](CONTRIBUTING.md).
+**How to contribute**. Please see [CONTRIBUTING](CONTRIBUTING.md).
# Curriculum
From 2432d8581657dac00dec15f8c7bdbd03e3183728 Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Sun, 5 Mar 2017 16:53:51 -0500
Subject: [PATCH 131/558] Remove project suggestions
---
README.md | 7 -------
1 file changed, 7 deletions(-)
diff --git a/README.md b/README.md
index d5f7b84ed..34611f6ec 100644
--- a/README.md
+++ b/README.md
@@ -431,13 +431,6 @@ You can create this project alone or with other students!
**We love cooperative work**!
Use our [channels](#community) to communicate with other fellows to combine and create new projects!
-### Project Suggestions
-
-- [Projects](https://github.com/karan/Projects): A list of practical projects that anyone can solve in any programming language.
-- [app-specs](https://github.com/ericdouglas/app-specs): A curated list of applications specifications and implementations to practice new technologies, improve your portfolio and sharpen your skills.
-- [FreeCodeCamp](http://www.freecodecamp.com/): Course that teaches you fullstack JavaScript development through a bunch of projects.
-- [JavaScript Projects](https://github.com/javascript-society/javascript-projects): List of projects related with the [JavaScript Path](https://github.com/javascript-society/javascript-path).
-
### Which programming languages should I use?
My friend, here is the best part of liberty!
From 407d68c78ed874ffdc81acbd31686a5e61603d2c Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Sun, 5 Mar 2017 16:58:37 -0500
Subject: [PATCH 132/558] Links to CodeTriage and FirstTimersOnly
---
README.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/README.md b/README.md
index 34611f6ec..c065e73ce 100644
--- a/README.md
+++ b/README.md
@@ -399,6 +399,10 @@ You are encouraged to do the assignments and exams for each course, but what rea
After you've gotten through all of Core CS and the parts of Advanced CS relevant to you, you should think about a problem that you can solve using the knowledge you've acquired.
Not only does real project work look great on a resume, the project will *validate* and *consolidate* your knowledge.
+You can create something entirely new, or you can find an existing project that needs help via websites like
+[CodeTriage](https://www.codetriage.com/)
+or
+[First Timers Only](http://www.firsttimersonly.com/).
Another option is using the Capstone project from taking one of the Specializations in [Advanced applications](#advanced-applications);
whether or not this makes sense depends on the course, the project, and whether or not the course's Honor Code permits you to display your work publicly.
From bd9809d83c76daa8fc77902015316e5ccf358f6b Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Sun, 5 Mar 2017 17:02:08 -0500
Subject: [PATCH 133/558] Clarify project submission process
---
README.md | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index c065e73ce..a929a4a15 100644
--- a/README.md
+++ b/README.md
@@ -409,9 +409,6 @@ whether or not this makes sense depends on the course, the project, and whether
In some cases, it may not be permitted;
do **not** violate your course's Honor Code!
-The final projects of all students will be listed in [this](PROJECTS.md) file.
-**Submit your project's information in that file after you conclude it**.
-
Put the OSSU-CS badge in the README of your repository!
[](https://github.com/open-source-society/computer-science)
@@ -420,7 +417,9 @@ Put the OSSU-CS badge in the README of your repository!
### Evaluation
-Upon completing your final project, use our [community](#community) channels to announce it.
+Upon completing your final project, submit your project's information to [PROJECTS](PROJECTS.md)
+via a pull request and use our [community](#community) channels to announce it to your fellow students.
+
Your peers and mentors from OSSU will then informally evaluate your project.
You will not be "graded" in the traditional sense — everyone has their own measurements for what they consider a success.
The purpose of the evaluation is to act as your first announcement to the world that you are a computer scientist,
From 13c1c8cfd287acf44e1a7b1efeccb0af4648c947 Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Tue, 7 Mar 2017 18:00:53 -0500
Subject: [PATCH 134/558] Wording update
---
CONTRIBUTING.md | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f7c6ba931..4f945c9f1 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,9 +1,7 @@
-# How to collaborate
+# Contributor guidelines
You can [open an issue](https://help.github.com/articles/creating-an-issue/) and give us your suggestions as to how we can improve this guide, or what we can do to improve the learning experience.
You can also [fork this project](https://help.github.com/articles/fork-a-repo/) and send a [pull request](https://help.github.com/articles/using-pull-requests/) to fix any mistakes that you have found.
-If you want to suggest a new resource, send a pull request adding such resource to the [extras](https://github.com/open-source-society/computer-science/tree/master/extras) section.
-
-The **extras** section is a place where all of us will be able to submit interesting additional articles, books, courses and specializations, keeping our curriculum *as immutable and concise as possible*.
\ No newline at end of file
+If you want to suggest a new resource, send a pull request adding such resource to the [extras](https://github.com/open-source-society/computer-science/tree/master/extras) section.
\ No newline at end of file
From 8ea2329707593b912e263490113eb164efbfac89 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 9 Mar 2017 19:58:25 -0500
Subject: [PATCH 135/558] Alt readings: Fix networking link
---
extras/readings.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/extras/readings.md b/extras/readings.md
index d29a07497..3d387b103 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -17,7 +17,7 @@ Name | Author(s)
[Architecture of a Database System](http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf) | Joseph M. Hellerstein, Michael Stonebraker, James Hamilton
[Introduction to Algorithms (3rd Edition)](http://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844/) | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
[Modern Operating Systems (4th Edition)](http://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X/) | Andrew S. Tanenbaum, Herbert Bos
-[Computer Networking: A Top-Down Approach (6th Edition)](http://www.chegg.com/textbooks/computer-networking-6th-edition-9780132856201-0132856204) | James F Kurose, Keith W Ross
+[Computer Networking: A Top-Down Approach (6th Edition)](https://www.amazon.com/Computer-Networking-A-Top-Down-Approach/dp/1292153598/) | James F Kurose, Keith W Ross
[Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612) | Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
[Refactoring](https://www.refactoring.com/) | Martin Fowler
[The Architecture of Open Source Applications](http://aosabook.org/en/) | Michael DiBernardo (editor)
From 2332baac0edbb7189c23cd7dfa23b13f5beeade5 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 9 Mar 2017 20:06:22 -0500
Subject: [PATCH 136/558] Alt readings: Re-organize
---
extras/readings.md | 54 ++++++++++++++++++++++++++++++++--------------
1 file changed, 38 insertions(+), 16 deletions(-)
diff --git a/extras/readings.md b/extras/readings.md
index 3d387b103..9dffac074 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -7,31 +7,53 @@ some are just great books that you should read at some point in your career.
Once you have made it through most of the curriculum, knowing whether a book is worth your time will become easier.
Or, if you are struggling in one of the courses, perhaps reading a book on the subject will help.
+## Programming
+
Name | Author(s)
:-- | :--:
[Introduction to Computation and Programming Using Python](https://www.amazon.com/Introduction-Computation-Programming-Using-Python/dp/0262525003/) | John V. Guttag
-[Discrete Mathematics with Applications (4th Edition)](http://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0495391328/) | Susanna S. Epp
[How to Design Programs](http://www.ccs.neu.edu/home/matthias/HtDP2e/) | Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
-[Transaction Processing: Concepts and Techniques](https://www.amazon.com/Transaction-Processing-Concepts-Techniques-Management/dp/1558601902) | Jim Gray, Andreas Reuter
-[Data and Reality: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World](https://www.amazon.com/Data-Reality-Perspective-Perceiving-Information/dp/1935504215) | William Kent
-[Architecture of a Database System](http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf) | Joseph M. Hellerstein, Michael Stonebraker, James Hamilton
-[Introduction to Algorithms (3rd Edition)](http://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844/) | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
-[Modern Operating Systems (4th Edition)](http://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X/) | Andrew S. Tanenbaum, Herbert Bos
-[Computer Networking: A Top-Down Approach (6th Edition)](https://www.amazon.com/Computer-Networking-A-Top-Down-Approach/dp/1292153598/) | James F Kurose, Keith W Ross
+[Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sicp/full-text/book/book.html) | Hal Abelson, Jerry Sussman, Julie Sussman
[Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612) | Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
[Refactoring](https://www.refactoring.com/) | Martin Fowler
-[The Architecture of Open Source Applications](http://aosabook.org/en/) | Michael DiBernardo (editor)
-[Compilers: Principles, Techniques, and Tools (2nd Edition)](http://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811/) | Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman
-[Computer Networks (5th Edition)](http://www.amazon.com/Computer-Networks-5th-Andrew-Tanenbaum/dp/0132126958/) | Andrew S. Tanenbaum, David J. Wetherall
[Clean Code](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882) | Robert Martin
[Code Complete](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) | Steve McConnell
[The Pragmatic Programmer](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X) | Andrew Hunt, David Thomas
-[The Mythical Man-Month](https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/) | Fred Brooks, Jr.
-[Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sicp/full-text/book/book.html) | Hal Abelson, Jerry Sussman, Julie Sussman
-[Introduction to Computing: Explorations in Language, Logic, and Machines](http://www.computingbook.org/) | David Evans
-[Applied Discrete Structures](http://faculty.uml.edu/klevasseur/ads2/) | Alan Doerr, Ken Levasseur
+
+## Math
+
+Name | Author(s)
+:-- | :--:
[Calculus Made Easy](http://www.gutenberg.org/ebooks/33283) | Silvanus P. Thompson
+[Discrete Mathematics with Applications (4th Edition)](http://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0495391328/) | Susanna S. Epp
+[Applied Discrete Structures](http://faculty.uml.edu/klevasseur/ads2/) | Alan Doerr, Ken Levasseur
[Grinstead and Snell’s Introduction to Probability](https://math.dartmouth.edu/~prob/prob/prob.pdf) |Charles M. Grinstead, J. Laurie Snell
-[Compiler Construction](http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf) | Niklaus Wirth
+
+## Systems
+
+Name | Author(s)
+:-- | :--:
+[Modern Operating Systems (4th Edition)](http://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X/) | Andrew S. Tanenbaum, Herbert Bos
+[Computer Networks (5th Edition)](http://www.amazon.com/Computer-Networks-5th-Andrew-Tanenbaum/dp/0132126958/) | Andrew S. Tanenbaum, David J. Wetherall
+[Computer Networking: A Top-Down Approach (6th Edition)](https://www.amazon.com/Computer-Networking-A-Top-Down-Approach/dp/1292153598/) | James F Kurose, Keith W Ross
+
+## Theory
+
+Name | Author(s)
+:-- | :--:
+[Introduction to Computing: Explorations in Language, Logic, and Machines](http://www.computingbook.org/) | David Evans
+[Introduction to Algorithms (3rd Edition)](http://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844/) | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
+
+## Applications
+
+Name | Author(s)
+:-- | :--:
+[Transaction Processing: Concepts and Techniques](https://www.amazon.com/Transaction-Processing-Concepts-Techniques-Management/dp/1558601902) | Jim Gray, Andreas Reuter
+[Data and Reality: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World](https://www.amazon.com/Data-Reality-Perspective-Perceiving-Information/dp/1935504215) | William Kent
+[Architecture of a Database System](http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf) | Joseph M. Hellerstein, Michael Stonebraker, James Hamilton
+[The Architecture of Open Source Applications](http://aosabook.org/en/) | Michael DiBernardo (editor)
[Deep Learning](http://www.deeplearningbook.org/) | Ian Goodfellow, Yoshua Bengio and Aaron Courville
-[Bayesian Reasoning and Machine Learning](http://web4.cs.ucl.ac.uk/staff/D.Barber/pmwiki/pmwiki.php?n=Brml.HomePage) | David Barber
\ No newline at end of file
+[Bayesian Reasoning and Machine Learning](http://web4.cs.ucl.ac.uk/staff/D.Barber/pmwiki/pmwiki.php?n=Brml.HomePage) | David Barber
+[Compilers: Principles, Techniques, and Tools (2nd Edition)](http://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811/) | Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman
+[Compiler Construction](http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf) | Niklaus Wirth
+[The Mythical Man-Month](https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/) | Fred Brooks, Jr.
\ No newline at end of file
From 535d89d338afa2e40f4f3c5f0d505f6d98a0fc38 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 9 Mar 2017 20:49:52 -0500
Subject: [PATCH 137/558] Update CONTRIBUTING
---
CONTRIBUTING.md | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 4f945c9f1..622b53e99 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,7 +1,12 @@
# Contributor guidelines
-You can [open an issue](https://help.github.com/articles/creating-an-issue/) and give us your suggestions as to how we can improve this guide, or what we can do to improve the learning experience.
-
-You can also [fork this project](https://help.github.com/articles/fork-a-repo/) and send a [pull request](https://help.github.com/articles/using-pull-requests/) to fix any mistakes that you have found.
-
-If you want to suggest a new resource, send a pull request adding such resource to the [extras](https://github.com/open-source-society/computer-science/tree/master/extras) section.
\ No newline at end of file
+This project primarily uses GitHub for collaboration, however not all discussions are appropriate for GitHub.
+Please follow these guidelines:
+1. If you need help with the *academic* content of a course or are having general technical difficulties, please do not use GitHub for this.
+The best place to ask these types of questions is on the [subreddit](https://www.reddit.com/r/opensourcesociety/).
+2. If you have general problems with the program not specific to any course, such as preferring textbook-style learning over MOOCs,
+the subreddit is recommended as there people may be able to give you suggested alternatives.
+3. If you have *specific* and *substantive* criticisms of the curriculum, i.e. problems related to the progression/content of courses it would be appropriate to [open an issue](https://help.github.com/articles/creating-an-issue/) and give us your suggestions.
+4. If you have *non-substantive* updates to make to the curriculum, such as a course's URL having been moved, spelling/syntax errors, etc., please send a [pull request](https://help.github.com/articles/using-pull-requests/) to fix any mistakes that you have found.
+5. If you want to customize the curriculum for yourself, do of course [fork this project](https://help.github.com/articles/fork-a-repo/).
+6. If you want to suggest a new resource, send a pull request adding such resource to the [extras](https://github.com/open-source-society/computer-science/tree/master/extras) section.
\ No newline at end of file
From 70890e0983bad0cc51b0d9a2cc85cc1771dffbcc Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 9 Mar 2017 21:27:52 -0500
Subject: [PATCH 138/558] REQUIREMENTS: Initial content
---
REQUIREMENTS.md | 61 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 60 insertions(+), 1 deletion(-)
diff --git a/REQUIREMENTS.md b/REQUIREMENTS.md
index bc4ae0805..9e101120c 100644
--- a/REQUIREMENTS.md
+++ b/REQUIREMENTS.md
@@ -1,3 +1,62 @@
# OSSU Academic Requirements
-TODO
\ No newline at end of file
+This document contains the subjects the student must master to pass through this curriculum.
+The subject requirements are based on topics, rather than specific courses, because sometimes a certain course isn't available at the right time or doesn't fit the student's learning style.
+
+## Subjects
+
+### Programming
+
+#### Paradigms
+- Imperative programming
+- Procedural programming
+- Object-oriented programming
+- Functional programming
+- Logic programming
+
+#### Languages
+- C and/or C-derived languages
+- SQL
+- XML/HTML
+- JavaScript and/or related language
+- An ML-family language
+- A Lisp-family langauge
+- Python and/or Ruby
+
+### Math
+
+- Logic and proofs
+- Discrete structures
+- Graph theory
+- Discrete probability
+- Linear algebra
+
+### Systems
+
+- Memory
+- Caching
+- Virtualization
+- Concurrency
+- Compilers
+- Assembly
+- Networking
+
+### Theory
+
+- Data structures
+- Sorting
+- Searching
+- Divide and conquer
+- Algorithms on graphs
+- Greedy algorithms
+- Trees
+- P and NP
+
+### Applications
+
+- Software product management
+- REST
+- Databases
+- Computer graphics
+- Cybersecurity
+- Machine learning
\ No newline at end of file
From a8b6e30bef5c010149e4a3e4f727103d049249d2 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 9 Mar 2017 21:42:27 -0500
Subject: [PATCH 139/558] Update project requirements
---
README.md | 5 +----
REQUIREMENTS.md | 16 ++++++++++++++--
2 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index a929a4a15..688494102 100644
--- a/README.md
+++ b/README.md
@@ -266,10 +266,7 @@ Courses | Duration | Effort | Prerequisites
[Computer Graphics](https://www.edx.org/course/computer-graphics-uc-san-diegox-cse167x)| 6 weeks | 12 hours/week | C++ or Java, linear algebra
[Cryptography I](https://www.coursera.org/course/crypto)| 6 weeks | 5-7 hours/week | linear algebra, probability
[Software Engineering: Introduction](https://www.edx.org/course/software-engineering-introduction-ubcx-softeng1x) | 6 weeks | 8-10 hours/week | Software Construction - Object-Oriented Design
-[Software Development Capstone Project](https://www.edx.org/course/software-development-capstone-project-ubcx-softengprjx)**1** | 6-7 weeks | 8-10 hours/week | Software Engineering: Introduction
-
-**1 Required** if you intend not to go past Core CS;
-**strongly recommended** even for those who will continue on to Advanced CS.
+[Software Development Capstone Project](https://www.edx.org/course/software-development-capstone-project-ubcx-softengprjx) | 6-7 weeks | 8-10 hours/week | Software Engineering: Introduction
## Advanced CS
diff --git a/REQUIREMENTS.md b/REQUIREMENTS.md
index 9e101120c..c2d54a766 100644
--- a/REQUIREMENTS.md
+++ b/REQUIREMENTS.md
@@ -1,6 +1,6 @@
# OSSU Academic Requirements
-This document contains the subjects the student must master to pass through this curriculum.
+This document contains the subjects and projects the student must master to pass through this curriculum.
The subject requirements are based on topics, rather than specific courses, because sometimes a certain course isn't available at the right time or doesn't fit the student's learning style.
## Subjects
@@ -59,4 +59,16 @@ The subject requirements are based on topics, rather than specific courses, beca
- Databases
- Computer graphics
- Cybersecurity
-- Machine learning
\ No newline at end of file
+- Machine learning
+
+## Projects
+
+Students are required to complete a project at the end of [Core CS](README.md#core-cs) and at the end of [Advanced CS](README.md#advanced-cs).
+
+For Core CS, students have two options:
+- They can use the Capstone course at the end of [Core applications](#core-applications) as their Core CS Project, in which case they are not required to share their project code.
+- They can skip that Capstone project and make their own project, in which case they *are* required to share the project code.
+
+For the Advanced CS Project (also known as the Final Project), students again have two options:
+- They can take one of the Specializations under [Advanced applications](#advanced-applications), all of which include Capstone Projects. Students *must* share their project code unless the course's honor code forbids it.
+- They can create their own Final Project, and must share the project code to be evaluated by the community.
\ No newline at end of file
From 592b0ea77136b6cc05c26bde8f369dc6a1408dfb Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 9 Mar 2017 22:13:01 -0500
Subject: [PATCH 140/558] Update changelog for 7.0
---
CHANGELOG.md | 64 +++++++++++++++++++++++++++++++++++++++++++++----
REQUIREMENTS.md | 2 +-
2 files changed, 60 insertions(+), 6 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ac20047e0..599690fa1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,12 +2,66 @@
All notable changes to this project will be documented in this file.
This project adheres *in spirit* to [Semantic Versioning](http://semver.org/):
-- "MAJOR" updates correspond to changing the topics studied
-- "MINOR" updates correspond to fulfilling a topical requirement using a different class
-- "PATCH" updates correspond to purely aesthetic and non-essential additions/removals
+- "MAJOR" updates correspond to changing the topics studied within a subject
+- "MINOR" updates correspond to changing courses without changing the topics
+- "PATCH" updates correspond to aesthetic and non-essential additions/removals or changing order of classes for better progression
-## [7.0] 2017-03-05
-TODO
+## [7.0] 2017-03-09
+Complete overhaul of program structure
+
+### Updated
+- Clarified contributor guidelines and moved them to separated file
+- Switched from many subjects to just four subjects with many topics
+- Consolidated free-books.md and paid-books.md into readings.md
+- Consolidated free-courses.md and paid-courses.md into courses.md
+- Replace old "How to Code" with new "How to Code" (Software Development MicroMasters)
+- Replace Princeton Algorithms (moved to [alternative courses](#extras/courses.md)) with Stanford Algorithms
+
+### Added
+- Indicate prerequisites for all courses
+- Requirements: subject/topic requirements and project requirements
+- Required readings on Haskell, Prolog, Operating Systems
+- Courses: Dan Grossman's Programming Languages
+- Courses: From Nand to Tetris
+- Elective course: Intro to Parallel Programming
+- Elective course: LAFF: Programming for Correctness
+- Elective course: Introduction to Mathematical Thinking
+- Elective courses: Electricity and Magnetism
+- Elective courses: MIT's Computation Structures
+- Elective course: Multivariable Calculus
+- Elective course: ops-class.org
+- Elective course: Automata Theory
+- Elective course: Introduction to Logic
+- Elective course: Computational Geometry
+- Elective course: Formal Concept Analysis
+- Elective course: Game Theory
+- Elective specializations:
+ - Robotics
+ - Data Minig
+ - Big Data
+ - Internet of Things
+ - Cloud Computing
+ - Full Stack Web Development
+ - Data Science
+- Pro specializations:
+ - Mastering Software Development in R
+ - Artificial Intelligence Engineer
+ - Machine Learning Engineer
+ - Cybersecurity
+ - Android Developer
+
+### Removed
+- Removed many dead links and obsolete courses
+- Removed per-course project requirement
+- Course: Object-Oriented Programming in Java
+- Course: Funtional Programming in Scala
+- Course: Computer Architecture (but left as a footnote)
+- Course: Intro to Theoretical Computer Science
+- Course: Software Processes and Agile Practices
+- Course: Operating Systems & System Programming
+- Course: Introduction to Cyber Security
+- Course: Parallel Computer Architecture and Programming
+- Course: UX Design for Mobile Developers
## [6.0] 2016-10-09
### Updated
diff --git a/REQUIREMENTS.md b/REQUIREMENTS.md
index c2d54a766..7e03e9a08 100644
--- a/REQUIREMENTS.md
+++ b/REQUIREMENTS.md
@@ -1,6 +1,6 @@
# OSSU Academic Requirements
-This document contains the subjects and projects the student must master to pass through this curriculum.
+This document contains the subjects (e.g. programming), topics (e.g. imperative programming), and projects the student must master to pass through this curriculum.
The subject requirements are based on topics, rather than specific courses, because sometimes a certain course isn't available at the right time or doesn't fit the student's learning style.
## Subjects
From e80d088bf7c1acefe09a4714caa1e08b4d651702 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sat, 11 Mar 2017 19:02:09 -0500
Subject: [PATCH 141/558] Calc One: Add link to errata
---
README.md | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 688494102..6da28c70e 100644
--- a/README.md
+++ b/README.md
@@ -187,10 +187,16 @@ and more.
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-frontiers-utaustinx-ut-5-04x#!) ([alt](http://ulaff.net/)) | 15 weeks | 8 hours/week | pre-calculus
-[Calculus One](https://www.coursera.org/learn/calculus1) ([alt](https://mooculus.osu.edu/)) | 16 weeks | 8-10 hours/week | pre-calculus
+[Calculus One](https://www.coursera.org/learn/calculus1)*1* ([alt](https://mooculus.osu.edu/)) | 16 weeks | 8-10 hours/week | pre-calculus
[Calculus Two: Sequences and Series](https://www.coursera.org/learn/advanced-calculus)| 7 weeks | 9-10 hours/week | Calculus One
[Mathematics for Computer Science](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/index.htm) | 13 weeks | 5 hours/week | single variable calculus (Calculus Two)
+**1 Note**: When you are enrolled, please see this
+[list of errors](https://www.coursera.org/learn/calculus1/discussions/forums/WcY9_8ayEeSWEiIAC0wC5g/threads/CgOJwV-jEeWncxKXIFxpFQ/replies/kH6u_2FPEeWukw4fFhIvKw)
+and
+[these recommendations](https://www.coursera.org/learn/calculus1/discussions/all/threads/W5P9mFY8EeWbVQrsfyQbuw/replies/XyyJflZDEeWBRg5dvElQww/comments/l-bON17nEeW9lgqcHapJBw)
+for how to progress through the course.
+
### Core systems
**Topics covered**:
From 5c22406f5334542a43703318540ee814b05f4b98 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Mon, 13 Mar 2017 17:45:25 -0400
Subject: [PATCH 142/558] Update Bradfield DIY CS link
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 688494102..e2eb8cbd5 100644
--- a/README.md
+++ b/README.md
@@ -517,5 +517,5 @@ You can change the status of your board to be *public* or *private*.
- [Stanford University](https://lagunita.stanford.edu/)
- [Carnegie Mellon University: Computer Science Major Requirements](https://www.csd.cs.cmu.edu/academics/undergraduate/requirements)
- [MIT Open Courseware](http://ocw.mit.edu/courses/#electrical-engineering-and-computer-science)
-- [A DIY Computer Science Education](https://bradfieldcs.com/diy/)
+- [Teach Yourself Computer Science](https://teachyourselfcs.com/)
- [Obtaining a Thorough CS Background Online](http://spin.atomicobject.com/2015/05/15/obtaining-thorough-cs-background-online/)
\ No newline at end of file
From c2ab7cf5b0acaa025ba773c033c4fa63a0c15e45 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Mon, 13 Mar 2017 17:53:17 -0400
Subject: [PATCH 143/558] extras/courses: add Berkeley's SICP
---
extras/courses.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/courses.md b/extras/courses.md
index ec985a084..a180f2741 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -17,6 +17,7 @@ Courses | Duration | Effort
[Object-Oriented Programming](https://www.edx.org/course/object-oriented-programming-iitbombayx-cs101-2x)| 4 weeks | 8 hours/week
[Introduction to Programming with MATLAB](https://www.coursera.org/learn/matlab)| - | -
[Introduction to Functional Programming](https://www.edx.org/course/introduction-functional-programming-delftx-fp101x-0)| 7 weeks | 4-6 hours/week
+[The Structure and Interpretation of Computer Programs](http://cs61a.org/) | - | -
## Math
From f59f86a99dfdfe312d7d7bc1efc767c83ccdd8d1 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Mon, 13 Mar 2017 17:58:50 -0400
Subject: [PATCH 144/558] extras/readings: Add Van Roy book
---
extras/readings.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/readings.md b/extras/readings.md
index 9dffac074..0703c6aaa 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -14,6 +14,7 @@ Name | Author(s)
[Introduction to Computation and Programming Using Python](https://www.amazon.com/Introduction-Computation-Programming-Using-Python/dp/0262525003/) | John V. Guttag
[How to Design Programs](http://www.ccs.neu.edu/home/matthias/HtDP2e/) | Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
[Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sicp/full-text/book/book.html) | Hal Abelson, Jerry Sussman, Julie Sussman
+[Concepts, Techniques, and Models of Computer Programming](https://www.amazon.com/gp/product/0262220695) | Peter Van Roy, Seif Haridi
[Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612) | Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
[Refactoring](https://www.refactoring.com/) | Martin Fowler
[Clean Code](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882) | Robert Martin
From 5e2b2e2d5f6113d892e3016327f76ce0b97efc9a Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Mon, 13 Mar 2017 18:00:37 -0400
Subject: [PATCH 145/558] extras/readings: Add P&H comp arch book
---
extras/readings.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/readings.md b/extras/readings.md
index 0703c6aaa..483fe00ee 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -35,6 +35,7 @@ Name | Author(s)
Name | Author(s)
:-- | :--:
[Modern Operating Systems (4th Edition)](http://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X/) | Andrew S. Tanenbaum, Herbert Bos
+[Computer Organization and Design: The Hardware/Software Interface](https://www.amazon.com/gp/product/0124077269) | David Patternson, John Hennessy
[Computer Networks (5th Edition)](http://www.amazon.com/Computer-Networks-5th-Andrew-Tanenbaum/dp/0132126958/) | Andrew S. Tanenbaum, David J. Wetherall
[Computer Networking: A Top-Down Approach (6th Edition)](https://www.amazon.com/Computer-Networking-A-Top-Down-Approach/dp/1292153598/) | James F Kurose, Keith W Ross
From c0f2007522bc6fe82d0f68b360e436e58b7807eb Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Mon, 13 Mar 2017 18:03:19 -0400
Subject: [PATCH 146/558] extras/readings: Add Skiena algorithms
---
extras/readings.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/readings.md b/extras/readings.md
index 483fe00ee..1b0f3e1b2 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -45,6 +45,7 @@ Name | Author(s)
:-- | :--:
[Introduction to Computing: Explorations in Language, Logic, and Machines](http://www.computingbook.org/) | David Evans
[Introduction to Algorithms (3rd Edition)](http://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844/) | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
+[The Algorithm Design Manual](https://www.amazon.com/gp/product/1848000693) | Steven Skiena
## Applications
From d53fdff52afe876d3683285b56299ad64d31583a Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Mon, 13 Mar 2017 18:09:01 -0400
Subject: [PATCH 147/558] extras: Add Strang's linear algebra
---
extras/courses.md | 1 +
extras/readings.md | 1 +
2 files changed, 2 insertions(+)
diff --git a/extras/courses.md b/extras/courses.md
index a180f2741..1023bc9e1 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -24,6 +24,7 @@ Courses | Duration | Effort
Courses | Duration | Effort
:-- | :--: | :--:
[Introduction to Probability and Data](https://www.coursera.org/learn/probability-intro)| - | -
+[Linear Algebra (Strang)](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/index.htm) | - | -
## Systems
diff --git a/extras/readings.md b/extras/readings.md
index 1b0f3e1b2..f399d7153 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -29,6 +29,7 @@ Name | Author(s)
[Discrete Mathematics with Applications (4th Edition)](http://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0495391328/) | Susanna S. Epp
[Applied Discrete Structures](http://faculty.uml.edu/klevasseur/ads2/) | Alan Doerr, Ken Levasseur
[Grinstead and Snell’s Introduction to Probability](https://math.dartmouth.edu/~prob/prob/prob.pdf) |Charles M. Grinstead, J. Laurie Snell
+[Introduction to Linear Algebra](https://www.amazon.com/Introduction-Linear-Algebra-Gilbert-Strang/dp/0980232775/) | Gilbert Strang
## Systems
From 47b4838e989634e45886f36b0dfe739703a9ccb4 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Mon, 13 Mar 2017 18:13:43 -0400
Subject: [PATCH 148/558] extras/readings: Add Red Book
---
extras/readings.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/extras/readings.md b/extras/readings.md
index f399d7153..02d8e67fd 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -52,9 +52,10 @@ Name | Author(s)
Name | Author(s)
:-- | :--:
+[Architecture of a Database System](http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf) | Joseph M. Hellerstein, Michael Stonebraker, James Hamilton
+[Readings in Database Systems](http://www.redbook.io/) | Peter Bailis, Joseph M. Hellerstein, Michael Stonebraker, editors
[Transaction Processing: Concepts and Techniques](https://www.amazon.com/Transaction-Processing-Concepts-Techniques-Management/dp/1558601902) | Jim Gray, Andreas Reuter
[Data and Reality: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World](https://www.amazon.com/Data-Reality-Perspective-Perceiving-Information/dp/1935504215) | William Kent
-[Architecture of a Database System](http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf) | Joseph M. Hellerstein, Michael Stonebraker, James Hamilton
[The Architecture of Open Source Applications](http://aosabook.org/en/) | Michael DiBernardo (editor)
[Deep Learning](http://www.deeplearningbook.org/) | Ian Goodfellow, Yoshua Bengio and Aaron Courville
[Bayesian Reasoning and Machine Learning](http://web4.cs.ucl.ac.uk/staff/D.Barber/pmwiki/pmwiki.php?n=Brml.HomePage) | David Barber
From 9a9bbc9c5fb3b04ce7f3a44415802859b8867328 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Mon, 13 Mar 2017 18:15:04 -0400
Subject: [PATCH 149/558] extras/readings: Add DB Management Systems book
---
extras/readings.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/readings.md b/extras/readings.md
index 02d8e67fd..6c45155f5 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -54,6 +54,7 @@ Name | Author(s)
:-- | :--:
[Architecture of a Database System](http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf) | Joseph M. Hellerstein, Michael Stonebraker, James Hamilton
[Readings in Database Systems](http://www.redbook.io/) | Peter Bailis, Joseph M. Hellerstein, Michael Stonebraker, editors
+[Database Management Systems](https://www.amazon.com/gp/product/0072465638) | Raghu Ramakrishnan, Johannes Gehrke
[Transaction Processing: Concepts and Techniques](https://www.amazon.com/Transaction-Processing-Concepts-Techniques-Management/dp/1558601902) | Jim Gray, Andreas Reuter
[Data and Reality: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World](https://www.amazon.com/Data-Reality-Perspective-Perceiving-Information/dp/1935504215) | William Kent
[The Architecture of Open Source Applications](http://aosabook.org/en/) | Michael DiBernardo (editor)
From 36a8ce35b6012e794ddab0a18496bf97d799ad27 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Mon, 13 Mar 2017 18:17:09 -0400
Subject: [PATCH 150/558] extras/readings: Add Tarr's DSL book
---
extras/readings.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/readings.md b/extras/readings.md
index 6c45155f5..3426cdbda 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -60,6 +60,7 @@ Name | Author(s)
[The Architecture of Open Source Applications](http://aosabook.org/en/) | Michael DiBernardo (editor)
[Deep Learning](http://www.deeplearningbook.org/) | Ian Goodfellow, Yoshua Bengio and Aaron Courville
[Bayesian Reasoning and Machine Learning](http://web4.cs.ucl.ac.uk/staff/D.Barber/pmwiki/pmwiki.php?n=Brml.HomePage) | David Barber
+[Language Implementation Patterns](https://www.amazon.com/gp/product/193435645X) | Terence Parr
[Compilers: Principles, Techniques, and Tools (2nd Edition)](http://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811/) | Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman
[Compiler Construction](http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf) | Niklaus Wirth
[The Mythical Man-Month](https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/) | Fred Brooks, Jr.
\ No newline at end of file
From 69a626e73e86206ddc9228da837244372c57bca7 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Mon, 13 Mar 2017 18:19:29 -0400
Subject: [PATCH 151/558] extras/readings: Add distributed systems readings
---
extras/readings.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/extras/readings.md b/extras/readings.md
index 3426cdbda..eaec39b69 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -39,6 +39,8 @@ Name | Author(s)
[Computer Organization and Design: The Hardware/Software Interface](https://www.amazon.com/gp/product/0124077269) | David Patternson, John Hennessy
[Computer Networks (5th Edition)](http://www.amazon.com/Computer-Networks-5th-Andrew-Tanenbaum/dp/0132126958/) | Andrew S. Tanenbaum, David J. Wetherall
[Computer Networking: A Top-Down Approach (6th Edition)](https://www.amazon.com/Computer-Networking-A-Top-Down-Approach/dp/1292153598/) | James F Kurose, Keith W Ross
+[Distributed Systems: Principles and Paradigms](https://www.amazon.com/Distributed-Systems-Principles-Andrew-Tanenbaum/dp/153028175X) | Andrew Tanenbaum
+[Distributed Systems Reading Group](http://dsrg.pdos.csail.mit.edu/papers/) | Various
## Theory
From 1245834303d7f722bde40900968073b11d3eb47e Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Mon, 13 Mar 2017 18:25:45 -0400
Subject: [PATCH 152/558] Update to 7.0.1
---
CHANGELOG.md | 18 ++++++++++++++++++
README.md | 2 +-
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 599690fa1..692b2f9d9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,24 @@ This project adheres *in spirit* to [Semantic Versioning](http://semver.org/):
- "MINOR" updates correspond to changing courses without changing the topics
- "PATCH" updates correspond to aesthetic and non-essential additions/removals or changing order of classes for better progression
+## [7.0.1] 2017-03-11
+### Updated
+- Fixed link to Bradfield's DIY computer science page
+
+### Added
+- Note under Calculus One with links to errata and course progression recommendations
+- Optional courses under extras:
+ - Strang's course on linear algebra
+ - Berkeley's Structure and Interpretation of Computer Programs
+- Optional readings under extras:
+ - Van Roy's advanced programming book
+ - P&H's computer architecture book
+ - Skiena's algorithms book
+ - Strang's linear algebra book
+ - Database Management Systems book
+ - Tarr's book on creating your own Domain-specific language
+ - Readings from various authors on distributed systems
+
## [7.0] 2017-03-09
Complete overhaul of program structure
diff --git a/README.md b/README.md
index e2eb8cbd5..b1a9ea8a2 100644
--- a/README.md
+++ b/README.md
@@ -77,7 +77,7 @@ just remember that you can't purchase success!
# Curriculum
-**Curriculum version**: `7.0` (see [CHANGELOG](CHANGELOG.md))
+**Curriculum version**: `7.0.1` (see [CHANGELOG](CHANGELOG.md))
- [Prerequisites](#prerequisites)
- [Intro CS](#intro-cs)
From 253860e76e6b79de010af118d4ae9e251cd26ff1 Mon Sep 17 00:00:00 2001
From: Eric Douglas
Date: Tue, 28 Mar 2017 07:18:08 -0300
Subject: [PATCH 153/558] Update free-books.md
---
extras/free-books.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/extras/free-books.md b/extras/free-books.md
index 260726b74..09ff63bed 100644
--- a/extras/free-books.md
+++ b/extras/free-books.md
@@ -77,7 +77,6 @@ Name | Author(s)
[Grinstead and Snell’s Introduction to Probability](https://math.dartmouth.edu/~prob/prob/prob.pdf) |Charles M. Grinstead, J. Laurie Snell
### Computer Architecture
-[The Elements of Computer Systems - From NAND to Tetris](http://www.nand2tetris.org/course.php) |Noam Nisan, Shimon Schocken
### Operating Systems
:-- | :--:
From 62cb5c42ce5b17fc8e6b2bc1438831d549122b73 Mon Sep 17 00:00:00 2001
From: Eric Douglas
Date: Tue, 28 Mar 2017 07:18:42 -0300
Subject: [PATCH 154/558] Update free-books.md
---
extras/free-books.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/free-books.md b/extras/free-books.md
index 09ff63bed..af27cb090 100644
--- a/extras/free-books.md
+++ b/extras/free-books.md
@@ -79,6 +79,7 @@ Name | Author(s)
### Computer Architecture
### Operating Systems
+Name | Author(s)
:-- | :--:
[Operating Systems: Three Easy Pieces](http://pages.cs.wisc.edu/~remzi/OSTEP/) |Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau
From 3885a2d3e8714cad0090b46865d08e241cc93617 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 30 Mar 2017 17:45:30 -0400
Subject: [PATCH 155/558] Move optional Intro CS courses to extras
Since we want every course in Intro CS and Core CS to be required, I have removed
the optional courses from Intro CS. But they are still good courses so I made
a new section in extras/courses.md to house courses on online learning.
I also added a new course under this new section, the sequel to Learning How
to Learn.
---
README.md | 6 +-----
extras/courses.md | 10 +++++++++-
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index 077ae8d2d..44784441d 100644
--- a/README.md
+++ b/README.md
@@ -109,9 +109,7 @@ and is knowledgeable enough now to decide which electives to take.
## Intro CS
Use the first course, CS50, to determine if Computer Science is right for you.
-Only proceed in the curriculum if it really excites you.
-Feel free to use the second and third **optional** courses to gain the fundamental skills you need to excel at teaching yourself Computer Science;
-they are very lightweight courses so it's suggested take them concurrently with another course.
+Only proceed in the curriculum if it really excites you!
**Topics covered**:
imperative programming;
@@ -127,8 +125,6 @@ and more.
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Introduction to Computer Science - CS50](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!) ([alt](https://cs50.harvard.edu/)) | 12 weeks | 10-20 hours/week | none
-[Learning How to Learn](https://www.coursera.org/learn/learning-how-to-learn) | 4 weeks | 2 hours/week | none
-[Effective Thinking Through Mathematics](https://www.edx.org/course/effective-thinking-through-mathematics-utaustinx-ut-9-01x-0) | 4 weeks | 2 hours/week | none
## Core CS
diff --git a/extras/courses.md b/extras/courses.md
index 1023bc9e1..e1b52a8e6 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -23,6 +23,7 @@ Courses | Duration | Effort
Courses | Duration | Effort
:-- | :--: | :--:
+[Effective Thinking Through Mathematics](https://www.edx.org/course/effective-thinking-through-mathematics-utaustinx-ut-9-01x-0) | 4 weeks | 2 hours/week | none
[Introduction to Probability and Data](https://www.coursera.org/learn/probability-intro)| - | -
[Linear Algebra (Strang)](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/index.htm) | - | -
@@ -62,4 +63,11 @@ Courses | Duration | Effort
[Intro to Machine Learning](https://www.udacity.com/course/intro-to-machine-learning--ud120)| 10 weeks | 6-10 hours/week
[Machine Learning for Data Science and Analytics](https://www.edx.org/course/machine-learning-data-science-analytics-columbiax-ds102x-0)| 5 weeks | 7-10 hours/week
[Processing Big Data with Azure HDInsight](https://www.edx.org/course/processing-big-data-azure-hdinsight-microsoft-dat202-1x-0)| 5 weeks | 3-4 hours/week
-[Big Data Science with the BD2K-LINCS Data Coordination and Integration Center](https://www.coursera.org/course/bd2klincs)| 7 weeks | 4-5 hours/week
\ No newline at end of file
+[Big Data Science with the BD2K-LINCS Data Coordination and Integration Center](https://www.coursera.org/course/bd2klincs)| 7 weeks | 4-5 hours/week
+
+# Online Learning - Great Courses
+
+Courses | Duration | Effort
+:-- | :--: | :--:
+[Learning How to Learn](https://www.coursera.org/learn/learning-how-to-learn) | 4 weeks | 2 hours/week
+[Mindshift](https://www.coursera.org/learn/mindshift) | 4 weeks | 2 hours/week
\ No newline at end of file
From 034c5419fb1bd1785a30f76f84cfa7f1c1781a94 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 30 Mar 2017 17:59:47 -0400
Subject: [PATCH 156/558] Add Scala specialization
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 44784441d..8b67b2e18 100644
--- a/README.md
+++ b/README.md
@@ -390,6 +390,7 @@ Courses | Duration | Effort | Prerequisites
[Cloud Computing (Specialization)](https://www.coursera.org/specializations/cloud-computing) | 30 weeks | 2-6 hours/week | C++ programming
[Full Stack Web Development (Specialization)](https://www.coursera.org/specializations/full-stack) | 27 weeeks | 2-6 hours/week | programming, databases
[Data Science (Specialization)](https://www.coursera.org/specializations/jhu-data-science) | 43 weeks | 1-6 hours/week | none
+[Functional Programming in Scala (Specialization)](https://www.coursera.org/specializations/scala) | 29 weeks | 4-5 hours/weeks | One year programming experience
## Final project
From 12e69f545226c4060d00ce1a334bf9b6e2954a8c Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 30 Mar 2017 18:06:02 -0400
Subject: [PATCH 157/558] Removed all but one Prolog reading
---
README.md | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 8b67b2e18..c00e536d6 100644
--- a/README.md
+++ b/README.md
@@ -156,10 +156,7 @@ Programming Languages ([A](https://www.coursera.org/learn/programming-languages)
#### Readings
- **Required** to learn about monads, laziness, purity: [Learn You a Haskell for a Great Good!](http://learnyouahaskell.com/)
-- **Required**, to learn about logic programming, backtracking, unification, any resource on Prolog covering these topics, such as:
- - [Prolog Programming for Artificial Intelligence](https://www.amazon.com/Programming-Artificial-Intelligence-International-Computer/dp/0321417461)
- - [Learn Prolog Now](http://www.learnprolognow.org/)
- - [Art of Prolog](https://mitpress.mit.edu/books/art-prolog)
+- **Required**, to learn about logic programming, backtracking, unification: [Learn Prolog Now!](http://www.learnprolognow.org/)
### Core math
From e8b6b2540b86b6228d56d1c0a0c5cb685d7d6f09 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 30 Mar 2017 18:08:00 -0400
Subject: [PATCH 158/558] Move alt comparch course to extras
---
README.md | 6 +-----
extras/courses.md | 1 +
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index c00e536d6..aba048c95 100644
--- a/README.md
+++ b/README.md
@@ -335,7 +335,7 @@ Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Electricity and Magnetism, Part 1](https://www.edx.org/course/electricity-magnetism-part-1-ricex-phys102-1x-0)1 | 7 weeks | 8-10 hours/week | calculus, basic mechanics
[Electricity and Magnetism, Part 2](https://www.edx.org/course/electricity-magnetism-part-2-ricex-phys102-2x-0) | 7 weeks | 8-10 hours/week | Electricity and Magnetism, Part 1
-[Computation Structures 1: Digital Circuits](https://www.edx.org/course/computation-structures-part-1-digital-mitx-6-004-1x-0)2 | 10 weeks | 6 hours/week | electricity, magnetism
+[Computation Structures 1: Digital Circuits](https://www.edx.org/course/computation-structures-part-1-digital-mitx-6-004-1x-0) | 10 weeks | 6 hours/week | electricity, magnetism
[Computation Structures 2: Computer Architecture](https://www.edx.org/course/computation-structures-2-computer-mitx-6-004-2x) | 10 weeks | 6 hours/week | Computation Structures 1
[Computation Structures 3: Computer Organization](https://www.edx.org/course/computation-structures-3-computer-mitx-6-004-3x-0) | 10 weeks | 6 hours/week | Computation Structures 2
[ops-class.org - Hack the Kernel](https://www.ops-class.org/) | 15 weeks | 6 hours/week | algorithms
@@ -345,10 +345,6 @@ These courses assume knowledge of basic physics;
if you are struggling, you can find a physics MOOC or utilize the materials from Khan Academy:
[Khan Academy - Physics](https://www.khanacademy.org/science/physics)
-**2 Note**:
-A shorter, less intense (but still very advanced) alternative to Computation Structures is here:
-[Computer Architecture](https://www.coursera.org/learn/comparch)
-
### Advanced theory
**Topics covered**:
diff --git a/extras/courses.md b/extras/courses.md
index e1b52a8e6..fc0645fc3 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -31,6 +31,7 @@ Courses | Duration | Effort
Courses | Duration | Effort
:-- | :--: | :--:
+[Computer Architecture](https://www.coursera.org/learn/comparch) | - | 5-8 hours/week
[Operating System Engineering](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/) | - | -
[Introduction to Operating Systems](https://www.udacity.com/course/introduction-to-operating-systems--ud923)| 8 weeks | 5-8 hours/week
[Advanced Operating Systems](https://www.udacity.com/course/advanced-operating-systems--ud189)| 5 weeks | 5-8 hours/week
From 6e2354cbf2a2bf9122c567c98cb1d67f028dceb2 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 30 Mar 2017 18:17:27 -0400
Subject: [PATCH 159/558] Update to 7.0.2
---
CHANGELOG.md | 11 +++++++++++
README.md | 2 +-
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 692b2f9d9..694e93dad 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,17 @@ This project adheres *in spirit* to [Semantic Versioning](http://semver.org/):
- "MINOR" updates correspond to changing courses without changing the topics
- "PATCH" updates correspond to aesthetic and non-essential additions/removals or changing order of classes for better progression
+## [7.0.2] 2017-03-30
+### Updated
+- Moved optional online learning courses to extras/courses in a new section
+- Moved alternate computer architecture course to extras/courses
+
+### Added
+- Scala specialization under Advanced applications
+
+### Removed
+- Removed all but one choice for required readings to make the curriculum simpler
+
## [7.0.1] 2017-03-11
### Updated
- Fixed link to Bradfield's DIY computer science page
diff --git a/README.md b/README.md
index aba048c95..4775a1a57 100644
--- a/README.md
+++ b/README.md
@@ -77,7 +77,7 @@ just remember that you can't purchase success!
# Curriculum
-**Curriculum version**: `7.0.1` (see [CHANGELOG](CHANGELOG.md))
+**Curriculum version**: `7.0.2` (see [CHANGELOG](CHANGELOG.md))
- [Prerequisites](#prerequisites)
- [Intro CS](#intro-cs)
From fd19e0927487248e0f97189c05711005d16d5e89 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sat, 1 Apr 2017 15:23:17 -0400
Subject: [PATCH 160/558] Revert reformat of ProgLang courses
---
README.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 4775a1a57..4d93bb4b6 100644
--- a/README.md
+++ b/README.md
@@ -152,7 +152,9 @@ Courses | Duration | Effort | Prerequisites
[How to Code - Complex Data](https://www.edx.org/course/how-code-complex-data-ubcx-htc2x) | 6 weeks | 8-10 hours/week | How to Code: Simple Data
[Software Construction - Data Abstraction](https://www.edx.org/course/software-construction-data-abstraction-ubcx-softconst1x) | 6 weeks | 8-10 hours/week | How to Code - Complex Data
[Software Construction - Object-Oriented Design](https://www.edx.org/course/software-construction-object-oriented-ubcx-softconst2x) | 6 weeks | 8-10 hours/week | Software Construction - Data Abstraction
-Programming Languages ([A](https://www.coursera.org/learn/programming-languages), [B](https://www.coursera.org/learn/programming-languages-part-b), [C](https://www.coursera.org/learn/programming-languages-part-c)) | 10 weeks | 8-16 hours/week | recommended: C and Java
+[Programming Languages, Part A](https://www.coursera.org/learn/programming-languages) | 4 weeks | 8-16 hours/week | recommended: Java, C
+[Programming Languages, Part B](https://www.coursera.org/learn/programming-languages-part-b) | 3 weeks | 8-16 hours/week | Programming Languages, Part A
+[Programming Languages, Part C](https://www.coursera.org/learn/programming-languages-part-c) | 3 weeks | 8-16 hours/week | Programming Languages, Part B
#### Readings
- **Required** to learn about monads, laziness, purity: [Learn You a Haskell for a Great Good!](http://learnyouahaskell.com/)
From 2ff72f7c18fa2640d038f0581ad6f57199ba1619 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 9 Apr 2017 14:26:46 -0400
Subject: [PATCH 161/558] Added new MIT intro course
---
README.md | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 4d93bb4b6..e6628102b 100644
--- a/README.md
+++ b/README.md
@@ -108,8 +108,8 @@ and is knowledgeable enough now to decide which electives to take.
## Intro CS
-Use the first course, CS50, to determine if Computer Science is right for you.
-Only proceed in the curriculum if it really excites you!
+These courses will introduce you to the world of computer science.
+Both are required, but feel free to skip straight to the second course when CS50 (the first course) moves away from C.
**Topics covered**:
imperative programming;
@@ -117,7 +117,7 @@ procedural programming;
C;
manual memory management;
basic data structures and algorithms;
-basic Python;
+Python;
SQL;
basic HTML, CSS, JavaScript;
and more.
@@ -125,6 +125,7 @@ and more.
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Introduction to Computer Science - CS50](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!) ([alt](https://cs50.harvard.edu/)) | 12 weeks | 10-20 hours/week | none
+[Introduction to Computer Science and Programming using Python](https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-10) | 9 weeks | 15 hours/week | high school algebra
## Core CS
From 236acc84e88a206d5c690c6b8acf01260132a4a6 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 9 Apr 2017 14:32:07 -0400
Subject: [PATCH 162/558] Added Reliable Distributed Algorithms
---
README.md | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/README.md b/README.md
index 4d93bb4b6..7e8d9b7c6 100644
--- a/README.md
+++ b/README.md
@@ -353,6 +353,11 @@ if you are struggling, you can find a physics MOOC or utilize the materials from
formal languages;
Turing machines;
computability;
+event-driven concurrency;
+automata;
+distributed shared memory;
+consensus algorithms;
+state machine replication;
computational geometry theory;
propositional logic;
relational logic;
@@ -365,6 +370,8 @@ Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Introduction to Logic](https://www.coursera.org/learn/logic-introduction) | 10 weeks | 4-8 hours/week | set theory
[Automata Theory](https://lagunita.stanford.edu/courses/course-v1:ComputerScience+Automata+Fall2016/about) | 8 weeks | 10 hours/week | discrete mathematics, logic, algorithms
+[Reliable Distributed Systems, Part 1](https://www.edx.org/course/reliable-distributed-algorithms-part-1-kthx-id2203-1x) | 5 weeks | 5 hours/week | Scala, intermediate CS
+[Reliable Distributed Systems, Part 2](https://www.edx.org/course/reliable-distributed-algorithms-part-2-kthx-id2203-2x) | 5 weeks | 5 hours/week | Part 1
[Computational Geometry](https://www.edx.org/course/computational-geometry-tsinghuax-70240183x) | 16 weeks | 8 hours/week | algorithms, C++
[Introduction to Formal Concept Analysis](https://www.coursera.org/learn/formal-concept-analysis) | 6 weeks | 4-6 hours/week | logic, probability
[Game Theory](https://www.coursera.org/learn/game-theory-1) | 8 weeks | x hours/week | mathematical thinking, probability, calculus
From 117516124049a81bbb9c8c27b612f8c1286c5829 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Mon, 10 Apr 2017 17:55:24 -0400
Subject: [PATCH 163/558] Update to 7.1.0
---
CHANGELOG.md | 8 ++++++++
README.md | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 694e93dad..ea2683d26 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,14 @@ This project adheres *in spirit* to [Semantic Versioning](http://semver.org/):
- "MINOR" updates correspond to changing courses without changing the topics
- "PATCH" updates correspond to aesthetic and non-essential additions/removals or changing order of classes for better progression
+## [7.1.0] 2017-04-10
+### Updated
+- Reverted reformat of programming languages course
+
+### Added
+- Reliable Distributed Algorithms courses
+- New Introduction to CS course
+
## [7.0.2] 2017-03-30
### Updated
- Moved optional online learning courses to extras/courses in a new section
diff --git a/README.md b/README.md
index e328a065b..a933fb81f 100644
--- a/README.md
+++ b/README.md
@@ -77,7 +77,7 @@ just remember that you can't purchase success!
# Curriculum
-**Curriculum version**: `7.0.2` (see [CHANGELOG](CHANGELOG.md))
+**Curriculum version**: `7.1.0` (see [CHANGELOG](CHANGELOG.md))
- [Prerequisites](#prerequisites)
- [Intro CS](#intro-cs)
From c7b3396c9fd55ce5749b126782ce747d1f0c7aff Mon Sep 17 00:00:00 2001
From: Eric Douglas
Date: Tue, 11 Apr 2017 08:57:07 -0300
Subject: [PATCH 164/558] Update label
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index daa98972e..41336ad09 100644
--- a/README.md
+++ b/README.md
@@ -167,7 +167,7 @@ Courses | Duration | Effort | Prerequisites
`linear transformations`
`matrices`
`vectors`
-mathematical proofs;
+`mathematical proofs`
`number theory`
`differential calculus`
`integral calculus`
From 9656e01c8609e5247054c2f04c917a98911d3ff5 Mon Sep 17 00:00:00 2001
From: Eric Douglas
Date: Sat, 22 Apr 2017 09:57:54 -0300
Subject: [PATCH 165/558] Add reference to Mega project list #397
---
CHANGELOG.md | 3 +++
PROJECTS.md | 2 ++
README.md | 2 +-
3 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5de6dd0e4..615a46318 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,9 @@ This project adheres *in spirit* to [Semantic Versioning](http://semver.org/):
- "MINOR" updates correspond to changing courses without changing the topics
- "PATCH" updates correspond to aesthetic and non-essential additions/removals or changing order of classes for better progression
+## [7.1.2] 2017-04-22
+### Updated
+- Add link to Mega Project List in the introduction of the Projects section
## [7.1.1] 2017-04-11
### Updated
diff --git a/PROJECTS.md b/PROJECTS.md
index 69ef68163..5f134acde 100644
--- a/PROJECTS.md
+++ b/PROJECTS.md
@@ -3,6 +3,8 @@
Projects created by OSSU's students for each course of our [**Computer Science**](https://github.com/open-source-society/computer-science) curriculum.
+For more project ideas, check the [Mega Project List](https://github.com/karan/Projects).
+
- [Introduction to Computer Science](#introduction-to-computer-science)
- [Programming](#programming)
- [Math](#math)
diff --git a/README.md b/README.md
index 41336ad09..b2b67359b 100644
--- a/README.md
+++ b/README.md
@@ -77,7 +77,7 @@ just remember that you can't purchase success!
# Curriculum
-**Curriculum version**: `7.1.1` (see [CHANGELOG](CHANGELOG.md))
+**Curriculum version**: `7.1.2` (see [CHANGELOG](CHANGELOG.md))
- [Prerequisites](#prerequisites)
- [Introduction to Computer Science](#introduction-to-computer-science)
From 6f206699551b22a6ef1ec9dc53619cb17bb07b6d Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 23 Apr 2017 16:12:01 -0400
Subject: [PATCH 166/558] Add Software Testing
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index b2b67359b..d3f0c0002 100644
--- a/README.md
+++ b/README.md
@@ -297,6 +297,7 @@ Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Compilers](https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/about)| 9 weeks | 6-8 hours/week | none
[Software Debugging](https://www.udacity.com/course/software-debugging--cs259)| 8 weeks | 6 hours/week | Python, object-oriented programming
+[Software Testing](https://www.udacity.com/course/software-testing--cs258) | 4 weeks | 6 hours/week | programming experience
[LAFF: Programming for Correctness](https://www.edx.org/course/laff-programming-correctness-utaustinx-ut-p4c-14-01x) | 7 weeks | 6 hours/week | linear algebra
[Introduction to Parallel Programming](https://www.udacity.com/course/intro-to-parallel-programming--cs344) | 12 weeks | - | C, algorithms
[Software Architecture & Design](https://www.udacity.com/course/software-architecture-design--ud821)| 8 weeks | 6 hours/week | software engineering in Java
From 17edc61704739573e2f84a738f58356b25585a19 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sat, 29 Apr 2017 11:53:10 -0400
Subject: [PATCH 167/558] Add link to Stanford Lagunita Algorithms
---
README.md | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index d3f0c0002..fc42b4056 100644
--- a/README.md
+++ b/README.md
@@ -236,11 +236,16 @@ Courses | Duration | Effort | Prerequisites
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Algorithms (1/4)](https://www.coursera.org/learn/algorithms-divide-conquer) | 4 weeks | 4-8 hours/week | one programming language, proofs, probability
-[Algorithms (2/4)](https://www.coursera.org/learn/algorithms-graphs-data-structures) | 4 weeks | 4-8 hours/week | Algorithms (1/4)
+[Algorithms (1/4)](https://www.coursera.org/learn/algorithms-divide-conquer)1 | 4 weeks | 4-8 hours/week | one programming language, proofs, probability
+[Algorithms (2/4)](https://www.coursera.org/learn/algorithms-graphs-data-structures)1 | 4 weeks | 4-8 hours/week | Algorithms (1/4)
[Algorithms (3/4)](https://www.coursera.org/learn/algorithms-greedy) | 4 weeks | 4-8 hours/week | Algorithms (2/4)
[Algorithms (4/4)](https://www.coursera.org/learn/algorithms-npcomplete) | 4 weeks | 4-8 hours/week | Algorithms (3/4)
+**1 Note**:
+Parts 1 and 2 of Stanford Algorithms is available as [Algorithms: Design and Analysis](https://lagunita.stanford.edu/courses/course-v1:Engineering+Algorithms1+SelfPaced/about) through Stanford Lagunita.
+Unlike the Coursera version, quizzes and tests are auto-graded for free.
+If you are pursuing an optional certificate from Coursera, you will still need to complete parts 1 and 2 through Coursera.
+
### Core applications
**Topics covered**:
From bb0d93e6af4e14a5dd2af79552d35b5906d9ce66 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sat, 29 Apr 2017 12:37:58 -0400
Subject: [PATCH 168/558] Added Parametric Equations and Polar Coordinates
This content isn't included in the Core Math Calculus Two course,
but it's necessary to learn it before moving on to Advanced Math
Multivariable Calculus. So the specific section is taken from
MIT's Single-variable Calculus is linked which saves us from needing
to change anything in Core CS.
---
README.md | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index fc42b4056..4312fdb6b 100644
--- a/README.md
+++ b/README.md
@@ -311,6 +311,8 @@ Courses | Duration | Effort | Prerequisites
**Topics covered**:
`real analysis`
+`parametric equations`
+`polar coordinate systems`
`multivariable integrals`
`multivariable differentials`
`probability theory`
@@ -319,8 +321,9 @@ Courses | Duration | Effort | Prerequisites
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Introduction to Mathematical Thinking](https://www.coursera.org/learn/mathematical-thinking) | 10 weeks | 10 hours/week | pre-calculus
-[Multivariable Calculus](https://ocw.mit.edu/courses/mathematics/18-02sc-multivariable-calculus-fall-2010/index.htm) | 13 weeks | 12 hours/week | single-variable calculus (Calculus Two)
-[Introduction to Probability - The Science of Uncertainty](https://www.edx.org/course/introduction-probability-science-mitx-6-041x-2) | 18 weeks | 12 hours/week | single- and multi-variable calculus
+[Calculus: Parametric Equations and Polar Coordinates](https://ocw.mit.edu/courses/mathematics/18-01sc-single-variable-calculus-fall-2010/unit-4-techniques-of-integration/part-c-parametric-equations-and-polar-coordinates/) | - | - | single-variable calculus (Calculus Two)
+[Multivariable Calculus](https://ocw.mit.edu/courses/mathematics/18-02sc-multivariable-calculus-fall-2010/index.htm) | 13 weeks | 12 hours/week | Parametric Equations and Polar Coordinates
+[Introduction to Probability - The Science of Uncertainty](https://www.edx.org/course/introduction-probability-science-mitx-6-041x-2) | 18 weeks | 12 hours/week | Multivariable Calculus
### Advanced systems
From 40d653c67ee09be8efd042b836444ad5e0711894 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sat, 29 Apr 2017 12:51:08 -0400
Subject: [PATCH 169/558] Update to 7.2.0
Closes open-source-society/computer-science#398 and
closes open-source-society/computer-science#399
---
CHANGELOG.md | 6 ++++++
README.md | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 615a46318..86365bb95 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,12 @@ This project adheres *in spirit* to [Semantic Versioning](http://semver.org/):
- "MINOR" updates correspond to changing courses without changing the topics
- "PATCH" updates correspond to aesthetic and non-essential additions/removals or changing order of classes for better progression
+## [7.2.0] 2017-04-28
+### Added
+- Software Testing course
+- Link to Stanford Lagunita's Algorithms: Design and Analysis
+- Added link to the section on parametric equations and polar coordinates from MIT's Single Variable Calculus course in order to properly prepare students for Multivariable Calculus
+
## [7.1.2] 2017-04-22
### Updated
- Add link to Mega Project List in the introduction of the Projects section
diff --git a/README.md b/README.md
index 4312fdb6b..33d893ccc 100644
--- a/README.md
+++ b/README.md
@@ -77,7 +77,7 @@ just remember that you can't purchase success!
# Curriculum
-**Curriculum version**: `7.1.2` (see [CHANGELOG](CHANGELOG.md))
+**Curriculum version**: `7.2.0` (see [CHANGELOG](CHANGELOG.md))
- [Prerequisites](#prerequisites)
- [Introduction to Computer Science](#introduction-to-computer-science)
From 4b2445dccfc9776fd47083ac099567f2ea490ec0 Mon Sep 17 00:00:00 2001
From: Oscar Yih
Date: Tue, 9 May 2017 02:12:55 -0700
Subject: [PATCH 170/558] Fixed spelling error in README.md
The word 'weeks' in the Full Stack Web Development (Specialization) had an extra e.
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 33d893ccc..6ed56d448 100644
--- a/README.md
+++ b/README.md
@@ -400,7 +400,7 @@ Courses | Duration | Effort | Prerequisites
[Big Data (Specialization)](https://www.coursera.org/specializations/big-data) | 30 weeks | 3-5 hours/week | none
[Internet of Things (Specialization)](https://www.coursera.org/specializations/internet-of-things) | 30 weeks | 1-5 hours/week | strong programming
[Cloud Computing (Specialization)](https://www.coursera.org/specializations/cloud-computing) | 30 weeks | 2-6 hours/week | C++ programming
-[Full Stack Web Development (Specialization)](https://www.coursera.org/specializations/full-stack) | 27 weeeks | 2-6 hours/week | programming, databases
+[Full Stack Web Development (Specialization)](https://www.coursera.org/specializations/full-stack) | 27 weeks | 2-6 hours/week | programming, databases
[Data Science (Specialization)](https://www.coursera.org/specializations/jhu-data-science) | 43 weeks | 1-6 hours/week | none
[Functional Programming in Scala (Specialization)](https://www.coursera.org/specializations/scala) | 29 weeks | 4-5 hours/weeks | One year programming experience
From bdbd0470db981be1358cb13211ab52bd5edc6db6 Mon Sep 17 00:00:00 2001
From: Yuchen Pei
Date: Tue, 9 May 2017 18:32:55 -0400
Subject: [PATCH 171/558] Add UPenn Intro to Haskell to extra courses (#404)
---
extras/courses.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/extras/courses.md b/extras/courses.md
index fc0645fc3..cab7295dc 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -18,6 +18,7 @@ Courses | Duration | Effort
[Introduction to Programming with MATLAB](https://www.coursera.org/learn/matlab)| - | -
[Introduction to Functional Programming](https://www.edx.org/course/introduction-functional-programming-delftx-fp101x-0)| 7 weeks | 4-6 hours/week
[The Structure and Interpretation of Computer Programs](http://cs61a.org/) | - | -
+[Introduction to Haskell](https://www.seas.upenn.edu/~cis194/fall16/) | 14 weeks | 4 hours/week
## Math
@@ -71,4 +72,4 @@ Courses | Duration | Effort
Courses | Duration | Effort
:-- | :--: | :--:
[Learning How to Learn](https://www.coursera.org/learn/learning-how-to-learn) | 4 weeks | 2 hours/week
-[Mindshift](https://www.coursera.org/learn/mindshift) | 4 weeks | 2 hours/week
\ No newline at end of file
+[Mindshift](https://www.coursera.org/learn/mindshift) | 4 weeks | 2 hours/week
From 560f1dc93d32822d6de6f54efdf14e165e035d03 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 14 May 2017 17:16:32 -0400
Subject: [PATCH 172/558] Update Networking course to include weeks
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 6ed56d448..1efde0f44 100644
--- a/README.md
+++ b/README.md
@@ -214,7 +214,7 @@ Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) ([alt](http://www.nand2tetris.org/)) | 6 weeks | 7-13 hours/week | none
[Build a Modern Computer from First Principles: Nand to Tetris Part II ](https://www.coursera.org/learn/nand2tetris2) | 6 weeks | 12-18 hours/week | From Nand to Tetris Part I
-[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| - | 4–12 hours/week | algebra, probability, basic CS
+[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| 8 weeks | 4–12 hours/week | algebra, probability, basic CS
#### Readings
- **Required** since Nand2Tetris does not go deep enough into operating systems: [Operating Systems: Three Easy Pieces](http://pages.cs.wisc.edu/~remzi/OSTEP/)
From d437fd320592adffdf5fbd23cd20cdec9cf0145b Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 14 May 2017 17:21:54 -0400
Subject: [PATCH 173/558] Update to 7.2.1
---
CHANGELOG.md | 8 ++++++++
README.md | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 86365bb95..fe27075b2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,14 @@ This project adheres *in spirit* to [Semantic Versioning](http://semver.org/):
- "MINOR" updates correspond to changing courses without changing the topics
- "PATCH" updates correspond to aesthetic and non-essential additions/removals or changing order of classes for better progression
+## [7.2.1] 2017-05-14
+### Updated
+- Networking course should take 8 weeks to complete
+- Fixed spelling error
+
+### Added
+- Introduction to Haskell course to [extras/courses](extras/courses.md)
+
## [7.2.0] 2017-04-28
### Added
- Software Testing course
diff --git a/README.md b/README.md
index 1efde0f44..cd33c1d62 100644
--- a/README.md
+++ b/README.md
@@ -77,7 +77,7 @@ just remember that you can't purchase success!
# Curriculum
-**Curriculum version**: `7.2.0` (see [CHANGELOG](CHANGELOG.md))
+**Curriculum version**: `7.2.1` (see [CHANGELOG](CHANGELOG.md))
- [Prerequisites](#prerequisites)
- [Introduction to Computer Science](#introduction-to-computer-science)
From 92ea0f265464d8b6574a753f32ebb31e1ecd15a7 Mon Sep 17 00:00:00 2001
From: Eric Douglas
Date: Tue, 16 May 2017 12:51:14 -0300
Subject: [PATCH 174/558] Remove duplicate course #406
---
extras/courses.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/extras/courses.md b/extras/courses.md
index cab7295dc..c97d8057a 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -8,7 +8,6 @@ or that there was an alternative that fit better into the curriculum.
Courses | Duration | Effort
:-- | :--: | :--:
-[Introduction to Computer Science and Programming Using Python](https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-5#!)| 9 weeks | 15 hours/week
[Introduction to Computational Thinking and Data Science](https://www.edx.org/course/introduction-computational-thinking-data-mitx-6-00-2x-2#!)| 10 weeks | 15 hours/week
[Introduction to Computer Science (Udacity)](https://www.udacity.com/course/intro-to-computer-science--cs101)| 7 weeks | 10-20 hours/week
[An Introduction to Interactive Programming in Python (Part 1)](https://www.coursera.org/learn/interactive-python-1)| 5 weeks | -
From 165ebf28b968ba2c0fa1f6d344be5dea11b81358 Mon Sep 17 00:00:00 2001
From: Harshit Kumar
Date: Fri, 26 May 2017 06:58:32 +0530
Subject: [PATCH 175/558] Add Think Python to programming readings (#408)
---
extras/readings.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/extras/readings.md b/extras/readings.md
index eaec39b69..0f9f692d4 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -12,6 +12,7 @@ Or, if you are struggling in one of the courses, perhaps reading a book on the s
Name | Author(s)
:-- | :--:
[Introduction to Computation and Programming Using Python](https://www.amazon.com/Introduction-Computation-Programming-Using-Python/dp/0262525003/) | John V. Guttag
+[Think Python 2e](http://greenteapress.com/wp/think-python-2e/) | Allen B. Downey
[How to Design Programs](http://www.ccs.neu.edu/home/matthias/HtDP2e/) | Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
[Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sicp/full-text/book/book.html) | Hal Abelson, Jerry Sussman, Julie Sussman
[Concepts, Techniques, and Models of Computer Programming](https://www.amazon.com/gp/product/0262220695) | Peter Van Roy, Seif Haridi
@@ -65,4 +66,4 @@ Name | Author(s)
[Language Implementation Patterns](https://www.amazon.com/gp/product/193435645X) | Terence Parr
[Compilers: Principles, Techniques, and Tools (2nd Edition)](http://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811/) | Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman
[Compiler Construction](http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf) | Niklaus Wirth
-[The Mythical Man-Month](https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/) | Fred Brooks, Jr.
\ No newline at end of file
+[The Mythical Man-Month](https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/) | Fred Brooks, Jr.
From d737b25ebbc5e3fc248d0a629f0a0ed27ba624ae Mon Sep 17 00:00:00 2001
From: Aman Roy
Date: Sat, 10 Jun 2017 19:49:21 +0530
Subject: [PATCH 176/558] Added Aman Roy's Intro project (#410)
---
PROJECTS.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/PROJECTS.md b/PROJECTS.md
index 5f134acde..bf6ca15ad 100644
--- a/PROJECTS.md
+++ b/PROJECTS.md
@@ -16,6 +16,7 @@ For more project ideas, check the [Mega Project List](https://github.com/karan/P
Project Title | Description | Author(s) | Repository
:-- | :-- | :--: | :--
Binary Machine | Convert decimal numbers to binary | [Eric Douglas](https://github.com/ericdouglas) | [binary-machine](https://github.com/ericdouglas/binary-machine)
+StalkHub | Stalk Github beautifully | [Aman Roy](https://github.com/aman-roy) | [StalkHub](https://github.com/aman-roy/StalkHub)
## Programming
From d72d063c37031b08ee3abcb788bae590db64c16b Mon Sep 17 00:00:00 2001
From: Eric Douglas
Date: Sun, 2 Jul 2017 08:11:03 -0300
Subject: [PATCH 177/558] Add "Haskell Programming from First Principles"
alternative #411
---
CHANGELOG.md | 4 ++++
README.md | 3 ++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fe27075b2..343d8d509 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,10 @@ This project adheres *in spirit* to [Semantic Versioning](http://semver.org/):
- "MINOR" updates correspond to changing courses without changing the topics
- "PATCH" updates correspond to aesthetic and non-essential additions/removals or changing order of classes for better progression
+## [7.2.2] 2017-07-02
+### Added
+- "Haskell Programming from First Principles" book as a paid alternative to learn Haskell
+
## [7.2.1] 2017-05-14
### Updated
- Networking course should take 8 weeks to complete
diff --git a/README.md b/README.md
index cd33c1d62..8c80a3650 100644
--- a/README.md
+++ b/README.md
@@ -77,7 +77,7 @@ just remember that you can't purchase success!
# Curriculum
-**Curriculum version**: `7.2.1` (see [CHANGELOG](CHANGELOG.md))
+**Curriculum version**: `7.2.2` (see [CHANGELOG](CHANGELOG.md))
- [Prerequisites](#prerequisites)
- [Introduction to Computer Science](#introduction-to-computer-science)
@@ -159,6 +159,7 @@ Courses | Duration | Effort | Prerequisites
#### Readings
- **Required** to learn about monads, laziness, purity: [Learn You a Haskell for a Great Good!](http://learnyouahaskell.com/)
+ - **OBS**: probably the best resource to learn Haskell: [Haskell Programming from First Principles](http://haskellbook.com/) `paid`
- **Required**, to learn about logic programming, backtracking, unification: [Learn Prolog Now!](http://www.learnprolognow.org/)
### Core math
From 9809809adf6c3113bd85e0f5a2a57b304c33f9f1 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 2 Jul 2017 15:04:13 -0400
Subject: [PATCH 178/558] Added main point of emerging technologies
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 8c80a3650..2cc6c63b7 100644
--- a/README.md
+++ b/README.md
@@ -477,9 +477,9 @@ These aren't the only specializations you can choose. Check the following websit
- Look for a job as a developer!
- Check out the [readings](extras/readings.md) for classic books you can read that will sharpen your skills and expand your knowledge.
- Join a local developer meetup (e.g. via [meetup.com](https://www.meetup.com/)).
-- Pay attention to emerging technologies in the world of software development, such as:
- - [Elixir](http://elixir-lang.org/), a new functional programming language for the web based on the battle-tested Erlang Virtual Machine!
- - [Rust](https://www.rust-lang.org/), a systems language which uses borrowing and lifetimes to achieve memory safety without a garbage collector!
+- Pay attention to emerging technologies in the world of software development:
+ + Explore the **actor model** through [Elixir](http://elixir-lang.org/), a new functional programming language for the web based on the battle-tested Erlang Virtual Machine!
+ + Explore **borrowing and lifetimes** through [Rust](https://www.rust-lang.org/), a systems language which achieves memory- and thread-safety without a garbage collector!

From 61609c95a9f9671cec4253e8bc5f6110b6de27a7 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 2 Jul 2017 15:04:46 -0400
Subject: [PATCH 179/558] Added dependent types (Idris) into emerging
technologies
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 2cc6c63b7..9b4da08c1 100644
--- a/README.md
+++ b/README.md
@@ -480,6 +480,7 @@ These aren't the only specializations you can choose. Check the following websit
- Pay attention to emerging technologies in the world of software development:
+ Explore the **actor model** through [Elixir](http://elixir-lang.org/), a new functional programming language for the web based on the battle-tested Erlang Virtual Machine!
+ Explore **borrowing and lifetimes** through [Rust](https://www.rust-lang.org/), a systems language which achieves memory- and thread-safety without a garbage collector!
+ + Explore **dependent type systems** through [Idris](https://www.idris-lang.org/), a new Haskell-inspired language with unprecedented support for type-driven development

From ae180113a996dd7aeec79f2b43edf135159e69c1 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 2 Jul 2017 19:21:25 -0400
Subject: [PATCH 180/558] Add initial Frequently Asked Questions
---
FAQ.md | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 101 insertions(+)
create mode 100644 FAQ.md
diff --git a/FAQ.md b/FAQ.md
new file mode 100644
index 000000000..8b55f7396
--- /dev/null
+++ b/FAQ.md
@@ -0,0 +1,101 @@
+# Frequently Asked Questions
+
+This page answers some questions that we frequently receive about the curriculum.
+If you have questions that aren't answered here, try asking through one of our [community channels](README.md#community).
+If it seems important enough or we get asked that question a lot, we will probably add it here.
+
+Alternatively, you could [contribute](#CONTRIBUTING.md) an answer yourself.
+
+## Contents
+
+- [Are Coursera courses free to access?](#are-coursera-courses-free-to-access)
+- [Does every resource in the main curriculum have to be free?](#does-every-resource-in-the-main-curriculum-have-to-be-free)
+- [In what order should I take the courses?](#in-what-order-should-i-take-the-courses)
+- [Is it necessary to purchase the Verified Upgrade for edX courses?](#is-it-necessary-to-purchase-the-verified-upgrade-for-edx-courses)
+- [Why do you recommend skipping the second half of CS50?](#why-do-you-recommend-skipping-the-second-half-of-cs50)
+- [Why doesn't the curriculum cover/ignore topic X?](#why-doesnt-the-curriculum-cover-ignore-topic-x)
+- [Why is the curriculum missing some pre-requisites?](#why-is-the-curriculum-missing-some-pre-requisites)
+
+## Questions
+
+### Are Coursera courses free to access?
+
+Some courses that require payment to access probably do exist on Coursera, but we don't put those on our curriculum.
+All Coursera courses that we put on the curriculum must, at minimum, be **free to audit**.
+For some courses, all course features are available for free;
+for others (especially those that are part of a specialization), you may only be able to access the lecture videos.
+(If you find the policies have changed for any courses on our curriculum, please tell us!)
+
+Unfortunately, for some courses, Coursera's interface is [very aggressive](https://darkpatterns.org/) about convincing you that you have to pay.
+
+You may see something like this on the course page:
+
+
+When attempting to enroll in such a course:
+- Click the blue "Enroll" or "Enroll Now" button.
+- A pop-up will appear.
+- **Do not click** "Start Free Trial", unless you do want to pay.
+- Find the text that says "Audit this course" at the bottom.
+- Click **Audit**.
+
+
+
+### Does every resource in the main curriculum have to be free?
+
+Yes, because we have to draw a line.
+As soon as we require paid resources in the main curriculum, we might as well tell people to pay half a million dollars to attend a university.
+We are an Internet-based community of learners, not a business, so free is the most sensible price and ensures that the only price you need pay is the price of Internet access.
+
+At the same time, we recognize that education is scarce resource and therefore requires payment to instructors to make it sustainable in the long term.
+Therefore, we respect the business model of websites like edX, which make their materials free but with some paid add-ons, like official certificates or extra interaction with course instructors.
+
+So we only require that the *learning materials* of a resource be free to access, not that every possible add-on be free.
+It would be ideal if graded assignments were always free but if we had this requirement, we would have to exclude any resource that doesn't have graded assignments at all.
+Plus, there are other ways to get feedback on your work, and OSSU is a do-it-yourself education.
+
+### In what order should I take the courses?
+
+You have a few different options:
+- You can progress linearly from top to bottom of the page.
+- You can progress linearly through each individual section, but studying different sections in parallel.
+- You can design your own custom progression using the pre-requisites to guide you.
+
+We have designed the curriculum to work for any of the above three styles.
+
+### Is it necessary to purchase the Verified Upgrade for edX courses?
+
+If you just want to watch the videos, it is never necessary for any edX course on our curriculum.
+
+CS50 doesn't use edX's grading system; it grades all assignments for free.
+
+The [Software Development](https://www.edx.org/micromasters/software-development) courses have mostly free quizzes and assignments, but their Final Projects will only be graded by a human if you pay.
+
+### Why do you recommend skipping the second half of CS50?
+
+The strongest and most useful part of CS50 is the part where they teach C.
+We wish to retain this in the curriculum for now because it is one of the few chances the student has to play with manual memory management in a (relatively) low-level language.
+Everything after that gets a bit too easy and shallow, to the point that we believe the student's time will be better spent in MIT's Introduction to Computer Science course.
+
+That being said, feel free to finish CS50 if you like it and want to.
+But don't skip the MIT Intro course.
+
+### Why doesn't the curriculum cover/ignore topic X?
+
+We have several goals that we have to balance:
+- Ensure students learn the timeless principles of computer science in the best possible way, pedagogically speaking.
+- Ensure students are given sufficient knowledge of today's systems to be employable in the near future.
+- Ensure students are exposed to enough cutting-edge knowledge that they won't be left behind when technology changes, which it always does.
+- Keep the curriculum brief enough that it can be completed in a reasonable amount of time.
+
+Therefore, not everything can be included, but we strive to be eclectic so that students are both employable and well-armed for change.
+
+### Why is the curriculum missing some pre-requisites?
+
+The curriculum assumes two things:
+- You are reasonably fluent in English.
+- You have gotten through a standard high school curriculum that included physics and pre-calculus.
+
+Without these assumptions, the curriculum would be out of control with trying to fill in your knowledge gaps.
+But those who for whatever reason didn't get all the way through high school math and physics are in luck: you can find the content you need on [Khan Academy](https://www.khanacademy.org/).
+
+Of course, if you find that the curriculum is missing a pre-requisite for a course that isn't part of a normal high school curriculum, please let us know!
\ No newline at end of file
From 93a3f68e301f60e7c3f07bef2daabce39827cb99 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 2 Jul 2017 19:32:31 -0400
Subject: [PATCH 181/558] Added initial relevant FAQ links
---
README.md | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 9b4da08c1..d7de044a9 100644
--- a/README.md
+++ b/README.md
@@ -75,6 +75,8 @@ just remember that you can't purchase success!
**How to contribute**. Please see [CONTRIBUTING](CONTRIBUTING.md).
+**Getting help**. Please check our [Frequently Asked Questions](FAQ.md), and if you cannot find the answer, file an issue or talk to our [friendly community](#community)!
+
# Curriculum
**Curriculum version**: `7.2.2` (see [CHANGELOG](CHANGELOG.md))
@@ -110,6 +112,7 @@ and is knowledgeable enough now to decide which electives to take.
These courses will introduce you to the world of computer science.
Both are required, but feel free to skip straight to the second course when CS50 (the first course) moves away from C.
+([Why?](FAQ.md#why-do-you-recommend-skipping-the-second-half-of-cs50))
**Topics covered**:
`imperative programming`
@@ -247,6 +250,9 @@ Parts 1 and 2 of Stanford Algorithms is available as [Algorithms: Design and Ana
Unlike the Coursera version, quizzes and tests are auto-graded for free.
If you are pursuing an optional certificate from Coursera, you will still need to complete parts 1 and 2 through Coursera.
+In spite of what it looks like, **these courses are free to access**.
+([How?](FAQ.md#are-coursera-courses-free-to-access))
+
### Core applications
**Topics covered**:
@@ -354,8 +360,9 @@ Courses | Duration | Effort | Prerequisites
[ops-class.org - Hack the Kernel](https://www.ops-class.org/) | 15 weeks | 6 hours/week | algorithms
**1 Note**:
-These courses assume knowledge of basic physics;
-if you are struggling, you can find a physics MOOC or utilize the materials from Khan Academy:
+These courses assume knowledge of basic physics.
+([Why?](FAQ.md#why-is-the-curriculum-missing-some-pre-requisites))
+If you are struggling, you can find a physics MOOC or utilize the materials from Khan Academy:
[Khan Academy - Physics](https://www.khanacademy.org/science/physics)
### Advanced theory
From dd6177d13c504d2b8890ab460000d24a5207f689 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 2 Jul 2017 19:36:03 -0400
Subject: [PATCH 182/558] Update changelog for 7.2.2
---
CHANGELOG.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 343d8d509..8ae9ae0d8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,8 @@ This project adheres *in spirit* to [Semantic Versioning](http://semver.org/):
## [7.2.2] 2017-07-02
### Added
- "Haskell Programming from First Principles" book as a paid alternative to learn Haskell
+- "Think Python" to extras/readings
+- FAQ entries and links under relevant courses
## [7.2.1] 2017-05-14
### Updated
From 8ff61e80957f5c45d67ef67f1a3cf0465a39fc62 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 2 Jul 2017 19:39:01 -0400
Subject: [PATCH 183/558] Fix question link in FAQ
---
FAQ.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/FAQ.md b/FAQ.md
index 8b55f7396..218a28977 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -13,7 +13,7 @@ Alternatively, you could [contribute](#CONTRIBUTING.md) an answer yourself.
- [In what order should I take the courses?](#in-what-order-should-i-take-the-courses)
- [Is it necessary to purchase the Verified Upgrade for edX courses?](#is-it-necessary-to-purchase-the-verified-upgrade-for-edx-courses)
- [Why do you recommend skipping the second half of CS50?](#why-do-you-recommend-skipping-the-second-half-of-cs50)
-- [Why doesn't the curriculum cover/ignore topic X?](#why-doesnt-the-curriculum-cover-ignore-topic-x)
+- [Why doesn't the curriculum cover/ignore topic X?](#why-doesnt-the-curriculum-coverignore-topic-x)
- [Why is the curriculum missing some pre-requisites?](#why-is-the-curriculum-missing-some-pre-requisites)
## Questions
From 377da12c4a26f8b0e990bf6c252a12e65476c2d7 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 2 Jul 2017 19:45:28 -0400
Subject: [PATCH 184/558] Added Category Theory introductory reading
---
CHANGELOG.md | 1 +
extras/readings.md | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8ae9ae0d8..33855be92 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ This project adheres *in spirit* to [Semantic Versioning](http://semver.org/):
- "Haskell Programming from First Principles" book as a paid alternative to learn Haskell
- "Think Python" to extras/readings
- FAQ entries and links under relevant courses
+- "Category Theory: A Gentle Introduction" to extras/readings
## [7.2.1] 2017-05-14
### Updated
diff --git a/extras/readings.md b/extras/readings.md
index 0f9f692d4..d31fddc8f 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -48,8 +48,9 @@ Name | Author(s)
Name | Author(s)
:-- | :--:
[Introduction to Computing: Explorations in Language, Logic, and Machines](http://www.computingbook.org/) | David Evans
-[Introduction to Algorithms (3rd Edition)](http://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844/) | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
+[Introduction to Algorithms (3rd Edition)](http://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844/) | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
[The Algorithm Design Manual](https://www.amazon.com/gp/product/1848000693) | Steven Skiena
+[Category Theory: A Gentle Introduction](http://www.logicmatters.net/resources/pdfs/GentleIntro.pdf) | Peter Smith
## Applications
From 255afd3f76347cf8d43ee912aeb8df81cbebcd83 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 2 Jul 2017 19:55:04 -0400
Subject: [PATCH 185/558] Fix huge image size in FAQ
---
FAQ.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/FAQ.md b/FAQ.md
index 218a28977..bbab7343f 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -29,7 +29,7 @@ for others (especially those that are part of a specialization), you may only be
Unfortunately, for some courses, Coursera's interface is [very aggressive](https://darkpatterns.org/) about convincing you that you have to pay.
You may see something like this on the course page:
-
+
When attempting to enroll in such a course:
- Click the blue "Enroll" or "Enroll Now" button.
From e9b6fa7a46c268299036f15652721db670e23cb1 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 2 Jul 2017 20:02:39 -0400
Subject: [PATCH 186/558] Second attempt at fixing image width...
---
FAQ.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/FAQ.md b/FAQ.md
index bbab7343f..2f2b525c3 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -29,7 +29,7 @@ for others (especially those that are part of a specialization), you may only be
Unfortunately, for some courses, Coursera's interface is [very aggressive](https://darkpatterns.org/) about convincing you that you have to pay.
You may see something like this on the course page:
-
+
When attempting to enroll in such a course:
- Click the blue "Enroll" or "Enroll Now" button.
From c42ad02ee3384222675a5b2a252ab7f966c5b5f8 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Sun, 2 Jul 2017 20:07:13 -0400
Subject: [PATCH 187/558] Add newline for slight aesthetic improvement
---
FAQ.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/FAQ.md b/FAQ.md
index 2f2b525c3..f0023f506 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -29,6 +29,7 @@ for others (especially those that are part of a specialization), you may only be
Unfortunately, for some courses, Coursera's interface is [very aggressive](https://darkpatterns.org/) about convincing you that you have to pay.
You may see something like this on the course page:
+
When attempting to enroll in such a course:
From 3be7a59e2de4d82754e77ac079f8633b1c4e75f1 Mon Sep 17 00:00:00 2001
From: Avish Cheetaram
Date: Mon, 10 Jul 2017 22:25:16 +0400
Subject: [PATCH 188/558] Added System Design to reading
Learning how to design scalable systems will help you become a better engineer.
---
extras/readings.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/extras/readings.md b/extras/readings.md
index d31fddc8f..3b28aa83b 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -42,7 +42,7 @@ Name | Author(s)
[Computer Networking: A Top-Down Approach (6th Edition)](https://www.amazon.com/Computer-Networking-A-Top-Down-Approach/dp/1292153598/) | James F Kurose, Keith W Ross
[Distributed Systems: Principles and Paradigms](https://www.amazon.com/Distributed-Systems-Principles-Andrew-Tanenbaum/dp/153028175X) | Andrew Tanenbaum
[Distributed Systems Reading Group](http://dsrg.pdos.csail.mit.edu/papers/) | Various
-
+[System Design: Design large-scale systems](https://github.com/donnemartin/system-design-primer) | Various
## Theory
Name | Author(s)
From 3b910e2617e2129b620bd0ecb2dd4bf78772453a Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Sat, 9 Sep 2017 11:37:54 -0400
Subject: [PATCH 189/558] Add Category Theory for Programmers to extra readings
---
extras/readings.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/readings.md b/extras/readings.md
index 3b28aa83b..3d1386efc 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -51,6 +51,7 @@ Name | Author(s)
[Introduction to Algorithms (3rd Edition)](http://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844/) | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
[The Algorithm Design Manual](https://www.amazon.com/gp/product/1848000693) | Steven Skiena
[Category Theory: A Gentle Introduction](http://www.logicmatters.net/resources/pdfs/GentleIntro.pdf) | Peter Smith
+[Category Theory for Programmers: The Preface](https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/) | Bartosz Milewski
## Applications
From dba5d8689c2139789e7633f7873746b4df4c30a9 Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Sat, 9 Sep 2017 13:13:20 -0400
Subject: [PATCH 190/558] Move Mathematical Thinking to extra courses
Closes #420
---
README.md | 2 --
extras/courses.md | 1 +
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/README.md b/README.md
index d7de044a9..6eb84dccf 100644
--- a/README.md
+++ b/README.md
@@ -317,7 +317,6 @@ Courses | Duration | Effort | Prerequisites
### Advanced math
**Topics covered**:
-`real analysis`
`parametric equations`
`polar coordinate systems`
`multivariable integrals`
@@ -327,7 +326,6 @@ Courses | Duration | Effort | Prerequisites
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Introduction to Mathematical Thinking](https://www.coursera.org/learn/mathematical-thinking) | 10 weeks | 10 hours/week | pre-calculus
[Calculus: Parametric Equations and Polar Coordinates](https://ocw.mit.edu/courses/mathematics/18-01sc-single-variable-calculus-fall-2010/unit-4-techniques-of-integration/part-c-parametric-equations-and-polar-coordinates/) | - | - | single-variable calculus (Calculus Two)
[Multivariable Calculus](https://ocw.mit.edu/courses/mathematics/18-02sc-multivariable-calculus-fall-2010/index.htm) | 13 weeks | 12 hours/week | Parametric Equations and Polar Coordinates
[Introduction to Probability - The Science of Uncertainty](https://www.edx.org/course/introduction-probability-science-mitx-6-041x-2) | 18 weeks | 12 hours/week | Multivariable Calculus
diff --git a/extras/courses.md b/extras/courses.md
index c97d8057a..1d8939102 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -24,6 +24,7 @@ Courses | Duration | Effort
Courses | Duration | Effort
:-- | :--: | :--:
[Effective Thinking Through Mathematics](https://www.edx.org/course/effective-thinking-through-mathematics-utaustinx-ut-9-01x-0) | 4 weeks | 2 hours/week | none
+[Introduction to Mathematical Thinking](https://www.coursera.org/learn/mathematical-thinking) | 10 weeks | 10 hours/week
[Introduction to Probability and Data](https://www.coursera.org/learn/probability-intro)| - | -
[Linear Algebra (Strang)](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/index.htm) | - | -
From 9fe6838ed83e8de98932753750093496770ec20a Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Sat, 9 Sep 2017 13:16:22 -0400
Subject: [PATCH 191/558] Remove unused pre-requisites from extra courses
---
extras/courses.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/extras/courses.md b/extras/courses.md
index 1d8939102..18ee99ec5 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -23,7 +23,7 @@ Courses | Duration | Effort
Courses | Duration | Effort
:-- | :--: | :--:
-[Effective Thinking Through Mathematics](https://www.edx.org/course/effective-thinking-through-mathematics-utaustinx-ut-9-01x-0) | 4 weeks | 2 hours/week | none
+[Effective Thinking Through Mathematics](https://www.edx.org/course/effective-thinking-through-mathematics-utaustinx-ut-9-01x-0) | 4 weeks | 2 hours/week
[Introduction to Mathematical Thinking](https://www.coursera.org/learn/mathematical-thinking) | 10 weeks | 10 hours/week
[Introduction to Probability and Data](https://www.coursera.org/learn/probability-intro)| - | -
[Linear Algebra (Strang)](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/index.htm) | - | -
@@ -42,8 +42,8 @@ Courses | Duration | Effort
Courses | Duration | Effort
:-- | :--: | :--:
-[Algorithms, Part I](https://www.coursera.org/learn/algorithms-part1) | 6 weeks | 6-12 hours/week | some programming
-[Algorithms, Part II](https://www.coursera.org/learn/algorithms-part2) | 6 weeks | 6-12 hours/week | Algorithms, Part I
+[Algorithms, Part I](https://www.coursera.org/learn/algorithms-part1) | 6 weeks | 6-12 hours/week
+[Algorithms, Part II](https://www.coursera.org/learn/algorithms-part2) | 6 weeks | 6-12 hours/week
[Analysis of Algorithms (Sedgewick)](https://www.coursera.org/learn/analysis-of-algorithms) | 6 weeks | 6-8 hours/week
[Analysis of Algorithms (Skiena)](http://www3.cs.stonybrook.edu/~skiena/373/) | 15 weeks | 6-8 hours/week
[Programming Challenges (Skiena)](http://www3.cs.stonybrook.edu/~skiena/392/) | 14 weeks | 6-8 hours/week
From e7519697e595f9262cfe2938c8c59798cac6e7b6 Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Sat, 9 Sep 2017 13:48:54 -0400
Subject: [PATCH 192/558] Add section on Learning Git to CONTRIBUTING
Closes #421
---
CONTRIBUTING.md | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 622b53e99..683b643f1 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -9,4 +9,10 @@ the subreddit is recommended as there people may be able to give you suggested a
3. If you have *specific* and *substantive* criticisms of the curriculum, i.e. problems related to the progression/content of courses it would be appropriate to [open an issue](https://help.github.com/articles/creating-an-issue/) and give us your suggestions.
4. If you have *non-substantive* updates to make to the curriculum, such as a course's URL having been moved, spelling/syntax errors, etc., please send a [pull request](https://help.github.com/articles/using-pull-requests/) to fix any mistakes that you have found.
5. If you want to customize the curriculum for yourself, do of course [fork this project](https://help.github.com/articles/fork-a-repo/).
-6. If you want to suggest a new resource, send a pull request adding such resource to the [extras](https://github.com/open-source-society/computer-science/tree/master/extras) section.
\ No newline at end of file
+6. If you want to suggest a new resource, send a pull request adding such resource to the [extras](https://github.com/open-source-society/computer-science/tree/master/extras) section.
+
+# Learning Git
+
+To be able to create high-quality pull requests, it is recommended that you learn how to use the Git version control system.
+One of the best primers on the subject is a free ebook called [Ry's Git Tutorial](https://www.amazon.com/dp/B00QFIA5OC/).
+If you prefer a course-style introduction, try [Introduction to Git and GitHub](https://www.udacity.com/course/how-to-use-git-and-github--ud775).
\ No newline at end of file
From f0e6b56e6986f2426b8dcfd82ae1798f41a0ab03 Mon Sep 17 00:00:00 2001
From: Eric Douglas
Date: Mon, 11 Sep 2017 08:09:36 -0300
Subject: [PATCH 193/558] Update cover
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index d7de044a9..4860a7537 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-
+
Open Source Society University
From 402e0ab94c9bf8f0afcfa906737503c8604ca241 Mon Sep 17 00:00:00 2001
From: Eric Douglas
Date: Mon, 11 Sep 2017 11:14:59 -0300
Subject: [PATCH 194/558] Update links to point to OSSU
---
CHANGELOG.md | 2 +-
CONTRIBUTING.md | 2 +-
LICENSE | 2 +-
PROJECTS.md | 2 +-
README.md | 12 ++++++------
REQUIREMENTS.md | 4 ++--
6 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 33855be92..1a674d951 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -240,7 +240,7 @@ Due to Coursera's platform changes, we had the following updates:
- **Cryptography**:
- Applied Cryptography
-**ps**: These removed courses are now in the [extras](https://github.com/open-source-society/computer-science/tree/master/extras) section.
+**ps**: These removed courses are now in the [extras](https://github.com/ossu/computer-science/tree/master/extras) section.
## [1.3.12] 2016-03-17
### Added
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 622b53e99..11b79093e 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -9,4 +9,4 @@ the subreddit is recommended as there people may be able to give you suggested a
3. If you have *specific* and *substantive* criticisms of the curriculum, i.e. problems related to the progression/content of courses it would be appropriate to [open an issue](https://help.github.com/articles/creating-an-issue/) and give us your suggestions.
4. If you have *non-substantive* updates to make to the curriculum, such as a course's URL having been moved, spelling/syntax errors, etc., please send a [pull request](https://help.github.com/articles/using-pull-requests/) to fix any mistakes that you have found.
5. If you want to customize the curriculum for yourself, do of course [fork this project](https://help.github.com/articles/fork-a-repo/).
-6. If you want to suggest a new resource, send a pull request adding such resource to the [extras](https://github.com/open-source-society/computer-science/tree/master/extras) section.
\ No newline at end of file
+6. If you want to suggest a new resource, send a pull request adding such resource to the [extras](https://github.com/ossu/computer-science/tree/master/extras) section.
diff --git a/LICENSE b/LICENSE
index 2b7761ff0..485e9c53f 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2017 Open Source Society
+Copyright (c) 2017 Open Source Society University
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/PROJECTS.md b/PROJECTS.md
index bf6ca15ad..189482bc9 100644
--- a/PROJECTS.md
+++ b/PROJECTS.md
@@ -1,7 +1,7 @@
# Projects
> Here, we are providing a list curated by the community of exercises and projects to practice and reinforce the skills we try to master.
-Projects created by OSSU's students for each course of our [**Computer Science**](https://github.com/open-source-society/computer-science) curriculum.
+Projects created by OSSU's students for each course of our [**Computer Science**](https://github.com/ossu/computer-science) curriculum.
For more project ideas, check the [Mega Project List](https://github.com/karan/Projects).
diff --git a/README.md b/README.md
index 4860a7537..240c336f2 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
-
+
@@ -430,10 +430,10 @@ In some cases, it may not be permitted;
do **not** violate your course's Honor Code!
Put the OSSU-CS badge in the README of your repository!
-[](https://github.com/open-source-society/computer-science)
+[](https://github.com/ossu/computer-science)
-- Markdown: `[](https://github.com/open-source-society/computer-science)`
-- HTML: `
`
+- Markdown: `[](https://github.com/ossu/computer-science)`
+- HTML: `
`
### Evaluation
@@ -495,7 +495,7 @@ These aren't the only specializations you can choose. Check the following websit
- Subscribe to [/r/opensourcesociety](https://www.reddit.com/r/opensourcesociety/)!
- Join us in our [group](https://groups.google.com/forum/#!forum/open-source-society-university)!
-- You can also interact through [GitHub issues](https://github.com/open-source-society/computer-science/issues).
+- You can also interact through [GitHub issues](https://github.com/ossu/computer-science/issues).
- We also have a chat room! [](https://gitter.im/open-source-society/computer-science?utm_campaign=pr-badge&utm_content=badge&utm_medium=badge&utm_source=badge)
- Add **Open Source Society University** to your [Facebook](https://www.facebook.com/ossuniversity) profile!
@@ -529,7 +529,7 @@ You can change the status of your board to be *public* or *private*.
* **Curriculum Founder**: [Eric Douglas](https://github.com/ericdouglas)
* **Curriculum Maintainer**: [Eric Douglas](https://github.com/ericdouglas) and [hanjiexi](https://github.com/hanjiexi)
-* **Contributors**: [contributors](https://github.com/open-source-society/computer-science/graphs/contributors)
+* **Contributors**: [contributors](https://github.com/ossu/computer-science/graphs/contributors)
# References
diff --git a/REQUIREMENTS.md b/REQUIREMENTS.md
index 7e03e9a08..9805ede54 100644
--- a/REQUIREMENTS.md
+++ b/REQUIREMENTS.md
@@ -1,4 +1,4 @@
-# OSSU Academic Requirements
+# OSSU-CS Academic Requirements
This document contains the subjects (e.g. programming), topics (e.g. imperative programming), and projects the student must master to pass through this curriculum.
The subject requirements are based on topics, rather than specific courses, because sometimes a certain course isn't available at the right time or doesn't fit the student's learning style.
@@ -71,4 +71,4 @@ For Core CS, students have two options:
For the Advanced CS Project (also known as the Final Project), students again have two options:
- They can take one of the Specializations under [Advanced applications](#advanced-applications), all of which include Capstone Projects. Students *must* share their project code unless the course's honor code forbids it.
-- They can create their own Final Project, and must share the project code to be evaluated by the community.
\ No newline at end of file
+- They can create their own Final Project, and must share the project code to be evaluated by the community.
From a2a7fb35210edc5f565757912e5fdb4d94fa5f54 Mon Sep 17 00:00:00 2001
From: Eric Douglas
Date: Fri, 29 Sep 2017 06:10:07 -0300
Subject: [PATCH 195/558] Add patreon badge
---
README.md | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 240c336f2..ce46405a4 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
Open Source Society University
- Path to a self-taught education in Computer Science!
+ Path to a free self-taught education in Computer Science!
@@ -11,6 +11,9 @@
+
+
+
# Contents
From 590f9cdecac01b0713cf9994c44bcbeda74aa981 Mon Sep 17 00:00:00 2001
From: asdevgit <32041546+asdevgit@users.noreply.github.com>
Date: Sun, 1 Oct 2017 01:21:26 +0100
Subject: [PATCH 196/558] Update CodeComplete book title
Updated to show 2nd edition
---
extras/readings.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/extras/readings.md b/extras/readings.md
index 3b28aa83b..e9c870baf 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -19,7 +19,7 @@ Name | Author(s)
[Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612) | Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
[Refactoring](https://www.refactoring.com/) | Martin Fowler
[Clean Code](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882) | Robert Martin
-[Code Complete](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) | Steve McConnell
+[Code Complete 2e](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) | Steve McConnell
[The Pragmatic Programmer](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X) | Andrew Hunt, David Thomas
## Math
From 52c8c9c4ee79a63e983425a9e5138aa4c0a10241 Mon Sep 17 00:00:00 2001
From: Eric Douglas
Date: Mon, 2 Oct 2017 19:47:32 -0300
Subject: [PATCH 197/558] Add link to newsletter
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index ce46405a4..2bec3b583 100644
--- a/README.md
+++ b/README.md
@@ -496,6 +496,7 @@ These aren't the only specializations you can choose. Check the following websit
# Community
+- Subscribe to our [newsletter](https://tinyletter.com/ossu)
- Subscribe to [/r/opensourcesociety](https://www.reddit.com/r/opensourcesociety/)!
- Join us in our [group](https://groups.google.com/forum/#!forum/open-source-society-university)!
- You can also interact through [GitHub issues](https://github.com/ossu/computer-science/issues).
From ae03d5abb75fd6c130791ac66cfe221cda72f1fd Mon Sep 17 00:00:00 2001
From: Eric Douglas
Date: Tue, 10 Oct 2017 11:39:18 -0300
Subject: [PATCH 198/558] Add new forum and code of conduct (#427)
* Add new forum and code of conduct
* Undo changes on headings
---
README.md | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index 2bec3b583..69b431a3d 100644
--- a/README.md
+++ b/README.md
@@ -26,6 +26,7 @@
- [Advanced CS](#advanced-cs)
- [Final project](#final-project)
- [Pro CS](#pro-cs)
+- [Code of conduct](#code-of-conduct)
- [Community](#community)
- [How to show your progress](#how-to-show-your-progress)
- [Team](#team)
@@ -494,17 +495,19 @@ These aren't the only specializations you can choose. Check the following websit

+# Code of conduct
+[OSSU's code of conduct](https://github.com/ossu/code-of-conduct).
+
# Community
- Subscribe to our [newsletter](https://tinyletter.com/ossu)
-- Subscribe to [/r/opensourcesociety](https://www.reddit.com/r/opensourcesociety/)!
-- Join us in our [group](https://groups.google.com/forum/#!forum/open-source-society-university)!
+- Use our [forum](https://github.com/ossu/forum) if you need some help.
- You can also interact through [GitHub issues](https://github.com/ossu/computer-science/issues).
- We also have a chat room! [](https://gitter.im/open-source-society/computer-science?utm_campaign=pr-badge&utm_content=badge&utm_medium=badge&utm_source=badge)
-- Add **Open Source Society University** to your [Facebook](https://www.facebook.com/ossuniversity) profile!
+- Add **Open Source Society University** to your [Linkedin](https://www.linkedin.com/school/11272443/) and [Facebook](https://www.facebook.com/ossuniversity) profile!
> **PS**: A forum is an ideal way to interact with other students as we do not lose important discussions, which usually occur in communication via chat apps.
-**Please use our subreddit/group for important discussions**.
+**Please use our forum for important discussions**.
## How to show your progress
@@ -531,8 +534,8 @@ You can change the status of your board to be *public* or *private*.
## Team
-* **Curriculum Founder**: [Eric Douglas](https://github.com/ericdouglas)
-* **Curriculum Maintainer**: [Eric Douglas](https://github.com/ericdouglas) and [hanjiexi](https://github.com/hanjiexi)
+* **Curriculum Founders**: [Eric Douglas](https://github.com/ericdouglas)
+* **Curriculum Maintainers**: [Eric Douglas](https://github.com/ericdouglas) and [hanjiexi](https://github.com/hanjiexi)
* **Contributors**: [contributors](https://github.com/ossu/computer-science/graphs/contributors)
# References
From 5947486570a830e13a3d25f7734c8f847f32e194 Mon Sep 17 00:00:00 2001
From: Victor Ferreira
Date: Tue, 31 Oct 2017 23:06:15 -0300
Subject: [PATCH 199/558] Fix grammatical inconsistencies in README.md (#432)
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 69b431a3d..a9d68c8f0 100644
--- a/README.md
+++ b/README.md
@@ -491,7 +491,7 @@ These aren't the only specializations you can choose. Check the following websit
- Pay attention to emerging technologies in the world of software development:
+ Explore the **actor model** through [Elixir](http://elixir-lang.org/), a new functional programming language for the web based on the battle-tested Erlang Virtual Machine!
+ Explore **borrowing and lifetimes** through [Rust](https://www.rust-lang.org/), a systems language which achieves memory- and thread-safety without a garbage collector!
- + Explore **dependent type systems** through [Idris](https://www.idris-lang.org/), a new Haskell-inspired language with unprecedented support for type-driven development
+ + Explore **dependent type systems** through [Idris](https://www.idris-lang.org/), a new Haskell-inspired language with unprecedented support for type-driven development.

@@ -500,7 +500,7 @@ These aren't the only specializations you can choose. Check the following websit
# Community
-- Subscribe to our [newsletter](https://tinyletter.com/ossu)
+- Subscribe to our [newsletter](https://tinyletter.com/ossu).
- Use our [forum](https://github.com/ossu/forum) if you need some help.
- You can also interact through [GitHub issues](https://github.com/ossu/computer-science/issues).
- We also have a chat room! [](https://gitter.im/open-source-society/computer-science?utm_campaign=pr-badge&utm_content=badge&utm_medium=badge&utm_source=badge)
From 627058f2264c29a8a35733b66d0f97584204455e Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Wed, 1 Nov 2017 20:28:38 -0400
Subject: [PATCH 200/558] Move Hack-the-Kernel from advanced systems to core
systems and change Three Easy Pieces from Required to Recommended
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 0bf656e50..74e753962 100644
--- a/README.md
+++ b/README.md
@@ -223,9 +223,10 @@ Courses | Duration | Effort | Prerequisites
[Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) ([alt](http://www.nand2tetris.org/)) | 6 weeks | 7-13 hours/week | none
[Build a Modern Computer from First Principles: Nand to Tetris Part II ](https://www.coursera.org/learn/nand2tetris2) | 6 weeks | 12-18 hours/week | From Nand to Tetris Part I
[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| 8 weeks | 4–12 hours/week | algebra, probability, basic CS
+[ops-class.org - Hack the Kernel](https://www.ops-class.org/) | 15 weeks | 6 hours/week | algorithms
#### Readings
-- **Required** since Nand2Tetris does not go deep enough into operating systems: [Operating Systems: Three Easy Pieces](http://pages.cs.wisc.edu/~remzi/OSTEP/)
+- **Recommended**: While Hack the Kernel recommends Modern Operating Systems as a textbook, we suggest using [Operating Systems: Three Easy Pieces](http://pages.cs.wisc.edu/~remzi/OSTEP/).
### Core theory
@@ -359,7 +360,6 @@ Courses | Duration | Effort | Prerequisites
[Computation Structures 1: Digital Circuits](https://www.edx.org/course/computation-structures-part-1-digital-mitx-6-004-1x-0) | 10 weeks | 6 hours/week | electricity, magnetism
[Computation Structures 2: Computer Architecture](https://www.edx.org/course/computation-structures-2-computer-mitx-6-004-2x) | 10 weeks | 6 hours/week | Computation Structures 1
[Computation Structures 3: Computer Organization](https://www.edx.org/course/computation-structures-3-computer-mitx-6-004-3x-0) | 10 weeks | 6 hours/week | Computation Structures 2
-[ops-class.org - Hack the Kernel](https://www.ops-class.org/) | 15 weeks | 6 hours/week | algorithms
**1 Note**:
These courses assume knowledge of basic physics.
From abadda80adec1dc8955589d55777a82ddcac2491 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 2 Nov 2017 21:40:15 -0400
Subject: [PATCH 201/558] Core Theory: Replace Coursera with Lagunita
Closes #428. It is the same Stanford Algorithms course, but on
a better platform.
---
README.md | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)
diff --git a/README.md b/README.md
index 74e753962..60f15c6d4 100644
--- a/README.md
+++ b/README.md
@@ -245,18 +245,9 @@ Courses | Duration | Effort | Prerequisites
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Algorithms (1/4)](https://www.coursera.org/learn/algorithms-divide-conquer)1 | 4 weeks | 4-8 hours/week | one programming language, proofs, probability
-[Algorithms (2/4)](https://www.coursera.org/learn/algorithms-graphs-data-structures)1 | 4 weeks | 4-8 hours/week | Algorithms (1/4)
-[Algorithms (3/4)](https://www.coursera.org/learn/algorithms-greedy) | 4 weeks | 4-8 hours/week | Algorithms (2/4)
-[Algorithms (4/4)](https://www.coursera.org/learn/algorithms-npcomplete) | 4 weeks | 4-8 hours/week | Algorithms (3/4)
+[Algorithms: Design and Analysis, Part I](https://lagunita.stanford.edu/courses/course-v1:Engineering+Algorithms1+SelfPaced/about) | 8 weeks | 4-8 hours/week | any programming language, Mathematics for Computer Science
+[Algorithms: Design and Analysis, Part II](https://lagunita.stanford.edu/courses/course-v1:Engineering+Algorithms2+SelfPaced/about) | 8 weeks | 4-8 hours/week | Part I
-**1 Note**:
-Parts 1 and 2 of Stanford Algorithms is available as [Algorithms: Design and Analysis](https://lagunita.stanford.edu/courses/course-v1:Engineering+Algorithms1+SelfPaced/about) through Stanford Lagunita.
-Unlike the Coursera version, quizzes and tests are auto-graded for free.
-If you are pursuing an optional certificate from Coursera, you will still need to complete parts 1 and 2 through Coursera.
-
-In spite of what it looks like, **these courses are free to access**.
-([How?](FAQ.md#are-coursera-courses-free-to-access))
### Core applications
From 2eccb8c16fd4d1ecf1cabf11affa2f9d8ec3fe5a Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 2 Nov 2017 21:51:28 -0400
Subject: [PATCH 202/558] Core Math: Add Essence of Linear Algebra
Closes #423
---
README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 60f15c6d4..a67c49248 100644
--- a/README.md
+++ b/README.md
@@ -190,7 +190,8 @@ Courses | Duration | Effort | Prerequisites
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-frontiers-utaustinx-ut-5-04x#!) ([alt](http://ulaff.net/)) | 15 weeks | 8 hours/week | pre-calculus
+[Essence of Linear Algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) | - | - | pre-calculus
+[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-frontiers-utaustinx-ut-5-04x#!) ([alt](http://ulaff.net/)) | 15 weeks | 8 hours/week | Essence of Linear Algebra
[Calculus One](https://www.coursera.org/learn/calculus1)*1* ([alt](https://mooculus.osu.edu/)) | 16 weeks | 8-10 hours/week | pre-calculus
[Calculus Two: Sequences and Series](https://www.coursera.org/learn/advanced-calculus)| 7 weeks | 9-10 hours/week | Calculus One
[Mathematics for Computer Science](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/index.htm) | 13 weeks | 5 hours/week | single variable calculus (Calculus Two)
From 748cc87450010a55b7937470179f063789a4c443 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 2 Nov 2017 21:55:33 -0400
Subject: [PATCH 203/558] extras/readings: Add PLAI
Programming Languages: Application and Interpretation
---
extras/readings.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/readings.md b/extras/readings.md
index aed6f2e30..9aba5be03 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -21,6 +21,7 @@ Name | Author(s)
[Clean Code](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882) | Robert Martin
[Code Complete 2e](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) | Steve McConnell
[The Pragmatic Programmer](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X) | Andrew Hunt, David Thomas
+[Programming Languages: Application and Interpretation](http://cs.brown.edu/~sk/Publications/Books/ProgLangs/) | Shriram Krishnamurthi
## Math
From d711db33b10be13b23024d4c2e372198667cf3c5 Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 2 Nov 2017 21:58:57 -0400
Subject: [PATCH 204/558] extras/readings: Add PAPL
Programming and Programming Languages
---
extras/readings.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/readings.md b/extras/readings.md
index 9aba5be03..c7168376c 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -22,6 +22,7 @@ Name | Author(s)
[Code Complete 2e](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) | Steve McConnell
[The Pragmatic Programmer](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X) | Andrew Hunt, David Thomas
[Programming Languages: Application and Interpretation](http://cs.brown.edu/~sk/Publications/Books/ProgLangs/) | Shriram Krishnamurthi
+[Programming and Programming Languages](http://papl.cs.brown.edu/2016/) | Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz
## Math
From 6c5a8bfa96bea6819f2a0f06a15273a6b87ee98c Mon Sep 17 00:00:00 2001
From: Josh Hanson
Date: Thu, 2 Nov 2017 22:01:00 -0400
Subject: [PATCH 205/558] Update to 8.0.0
---
CHANGELOG.md | 15 +++++++++++++++
README.md | 2 +-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1a674d951..ffed818aa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,21 @@ This project adheres *in spirit* to [Semantic Versioning](http://semver.org/):
- "MINOR" updates correspond to changing courses without changing the topics
- "PATCH" updates correspond to aesthetic and non-essential additions/removals or changing order of classes for better progression
+## [8.0.0] 2017-11-01
+### Added
+- extras/readings: "The System Design Primer"
+- extras/readings: "Category Theory for Programmers: The Preface"
+- extras/readings: "Programming Languages: Application and Interpretation"
+- extras/readings: "Programming and Programming Languages"
+- CONTRIBUTING: "Learning Git" section to the contributor guidelines page
+- Core Math: Added "Essence of Linear Algebra" as pre-requisite to "Linear Algebra: Foundations to Frontiers"
+
+### Updated
+- Moved "Introduction to Mathematical Thinking" to extras/courses
+- Moved "Hack the Kernel" (ops-class) from Advanced Systems to Core Systems
+- Core Systems: "Operating Systems: Three Easy Pieces" is no longer required, but is recommended as companion text to "Hack the Kernel"
+- Core Theory: Replaced Coursera with Lagunita as the host for Stanford Algorithms, since Coursera uses dark patterns to trick users into paying
+
## [7.2.2] 2017-07-02
### Added
- "Haskell Programming from First Principles" book as a paid alternative to learn Haskell
diff --git a/README.md b/README.md
index a67c49248..dd65a05f0 100644
--- a/README.md
+++ b/README.md
@@ -83,7 +83,7 @@ just remember that you can't purchase success!
# Curriculum
-**Curriculum version**: `7.2.2` (see [CHANGELOG](CHANGELOG.md))
+**Curriculum version**: `8.0.0` (see [CHANGELOG](CHANGELOG.md))
- [Prerequisites](#prerequisites)
- [Introduction to Computer Science](#introduction-to-computer-science)
From f6cadabde65c3f99c2281e5f92fd78c5da5fea0d Mon Sep 17 00:00:00 2001
From: Alfredo Serafini
Date: Sat, 30 Dec 2017 19:01:39 +0100
Subject: [PATCH 206/558] extras/readings: Add Stanford Information Retrieval
(#442)
Added the book "An Introduction to Information Retrieval", available on the nlp.stanford site
---
extras/readings.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/extras/readings.md b/extras/readings.md
index c7168376c..abcdbdd29 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -45,6 +45,7 @@ Name | Author(s)
[Distributed Systems: Principles and Paradigms](https://www.amazon.com/Distributed-Systems-Principles-Andrew-Tanenbaum/dp/153028175X) | Andrew Tanenbaum
[Distributed Systems Reading Group](http://dsrg.pdos.csail.mit.edu/papers/) | Various
[System Design: Design large-scale systems](https://github.com/donnemartin/system-design-primer) | Various
+
## Theory
Name | Author(s)
@@ -54,6 +55,7 @@ Name | Author(s)
[The Algorithm Design Manual](https://www.amazon.com/gp/product/1848000693) | Steven Skiena
[Category Theory: A Gentle Introduction](http://www.logicmatters.net/resources/pdfs/GentleIntro.pdf) | Peter Smith
[Category Theory for Programmers: The Preface](https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/) | Bartosz Milewski
+[An Introduction to Information Retrieval](https://nlp.stanford.edu/IR-book/pdf/irbookonlinereading.pdf) | Christopher D. Manning, Prabhakar Raghavan, Hinrich Schütze
## Applications
From 60e6ccd8e325cb3a9e87d691f64fdf70d4afe701 Mon Sep 17 00:00:00 2001
From: Phillip Alexander
Date: Wed, 3 Jan 2018 00:02:12 -0800
Subject: [PATCH 207/558] Update License file copyright year
---
LICENSE | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/LICENSE b/LICENSE
index 485e9c53f..f5fb89ecb 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2017 Open Source Society University
+Copyright (c) 2018 Open Source Society University
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
From 993ec66b22f43cf6e8c6b1449460140cbe96435a Mon Sep 17 00:00:00 2001
From: Nicolai Slovineanu
Date: Sun, 7 Jan 2018 13:13:35 +0200
Subject: [PATCH 208/558] Remove duplicate "machine language" topic
---
README.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/README.md b/README.md
index dd65a05f0..e1dd4d8d0 100644
--- a/README.md
+++ b/README.md
@@ -208,7 +208,6 @@ for how to progress through the course.
`boolean algebra`
`gate logic`
`memory`
-`machine language`
`computer architecture`
`assembly`
`machine language`
From b5514423d8fbefb850e4121bc5a1e41a467d0398 Mon Sep 17 00:00:00 2001
From: Mahmoud khalil
Date: Mon, 8 Jan 2018 17:23:53 +0200
Subject: [PATCH 209/558] CHANGELOG: Fix spelling errors (#447)
Fix spelling for "Data Mining" and "Functional"
---
CHANGELOG.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ffed818aa..0853746fd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -118,7 +118,7 @@ Complete overhaul of program structure
- Elective course: Game Theory
- Elective specializations:
- Robotics
- - Data Minig
+ - Data Mining
- Big Data
- Internet of Things
- Cloud Computing
@@ -135,7 +135,7 @@ Complete overhaul of program structure
- Removed many dead links and obsolete courses
- Removed per-course project requirement
- Course: Object-Oriented Programming in Java
-- Course: Funtional Programming in Scala
+- Course: Functional Programming in Scala
- Course: Computer Architecture (but left as a footnote)
- Course: Intro to Theoretical Computer Science
- Course: Software Processes and Agile Practices
From d596b44a7fb7269449d933ecd882d81eef056c39 Mon Sep 17 00:00:00 2001
From: Leo Leung
Date: Mon, 29 Jan 2018 10:17:15 -0800
Subject: [PATCH 210/558] README: Fix prereqs for Nand2Tetris II (#452)
Updates the prerequisites for "From Nand to Tetris II" to include a list of supported programming languages
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index e1dd4d8d0..a986a6c92 100644
--- a/README.md
+++ b/README.md
@@ -221,7 +221,7 @@ for how to progress through the course.
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) ([alt](http://www.nand2tetris.org/)) | 6 weeks | 7-13 hours/week | none
-[Build a Modern Computer from First Principles: Nand to Tetris Part II ](https://www.coursera.org/learn/nand2tetris2) | 6 weeks | 12-18 hours/week | From Nand to Tetris Part I
+[Build a Modern Computer from First Principles: Nand to Tetris Part II ](https://www.coursera.org/learn/nand2tetris2) | 6 weeks | 12-18 hours/week | one of [these programming languages](https://user-images.githubusercontent.com/2046800/35426340-f6ce6358-026a-11e8-8bbb-4e95ac36b1d7.png), From Nand to Tetris Part I
[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| 8 weeks | 4–12 hours/week | algebra, probability, basic CS
[ops-class.org - Hack the Kernel](https://www.ops-class.org/) | 15 weeks | 6 hours/week | algorithms
From 6836ed1660c34795cbc7eb3452d6679d8c864b69 Mon Sep 17 00:00:00 2001
From: Florian Hoornaar
Date: Mon, 29 Jan 2018 19:20:32 +0100
Subject: [PATCH 211/558] README: Change 'OBS' to 'Note' (#454)
As per issue https://github.com/ossu/computer-science/issues/453
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index a986a6c92..b19e8abd2 100644
--- a/README.md
+++ b/README.md
@@ -166,7 +166,7 @@ Courses | Duration | Effort | Prerequisites
#### Readings
- **Required** to learn about monads, laziness, purity: [Learn You a Haskell for a Great Good!](http://learnyouahaskell.com/)
- - **OBS**: probably the best resource to learn Haskell: [Haskell Programming from First Principles](http://haskellbook.com/) `paid`
+ - **Note**: probably the best resource to learn Haskell: [Haskell Programming from First Principles](http://haskellbook.com/) `paid`
- **Required**, to learn about logic programming, backtracking, unification: [Learn Prolog Now!](http://www.learnprolognow.org/)
### Core math
From 92b22f45538b8f440c01f579209a9fedcce95e4d Mon Sep 17 00:00:00 2001
From: Leo Leung
Date: Wed, 31 Jan 2018 06:56:08 -0800
Subject: [PATCH 212/558] README: Fix prereqs for Software Testing (#455)
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index b19e8abd2..4f7746cd8 100644
--- a/README.md
+++ b/README.md
@@ -305,7 +305,7 @@ Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Compilers](https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/about)| 9 weeks | 6-8 hours/week | none
[Software Debugging](https://www.udacity.com/course/software-debugging--cs259)| 8 weeks | 6 hours/week | Python, object-oriented programming
-[Software Testing](https://www.udacity.com/course/software-testing--cs258) | 4 weeks | 6 hours/week | programming experience
+[Software Testing](https://www.udacity.com/course/software-testing--cs258) | 4 weeks | 6 hours/week | Python, programming experience
[LAFF: Programming for Correctness](https://www.edx.org/course/laff-programming-correctness-utaustinx-ut-p4c-14-01x) | 7 weeks | 6 hours/week | linear algebra
[Introduction to Parallel Programming](https://www.udacity.com/course/intro-to-parallel-programming--cs344) | 12 weeks | - | C, algorithms
[Software Architecture & Design](https://www.udacity.com/course/software-architecture-design--ud821)| 8 weeks | 6 hours/week | software engineering in Java
From 751935b16f4338d15a2801044986ce23d6f480c5 Mon Sep 17 00:00:00 2001
From: waciumawanjohi
Date: Thu, 15 Feb 2018 16:04:55 -0500
Subject: [PATCH 213/558] README: Move Reliable Distributed Systems to Advanced
Systems (#460)
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 4f7746cd8..adf23681c 100644
--- a/README.md
+++ b/README.md
@@ -346,6 +346,8 @@ Courses | Duration | Effort | Prerequisites
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
+[Reliable Distributed Systems, Part 1](https://www.edx.org/course/reliable-distributed-algorithms-part-1-kthx-id2203-1x) | 5 weeks | 5 hours/week | Scala, intermediate CS
+[Reliable Distributed Systems, Part 2](https://www.edx.org/course/reliable-distributed-algorithms-part-2-kthx-id2203-2x) | 5 weeks | 5 hours/week | Part 1
[Electricity and Magnetism, Part 1](https://www.edx.org/course/electricity-magnetism-part-1-ricex-phys102-1x-0)1 | 7 weeks | 8-10 hours/week | calculus, basic mechanics
[Electricity and Magnetism, Part 2](https://www.edx.org/course/electricity-magnetism-part-2-ricex-phys102-2x-0) | 7 weeks | 8-10 hours/week | Electricity and Magnetism, Part 1
[Computation Structures 1: Digital Circuits](https://www.edx.org/course/computation-structures-part-1-digital-mitx-6-004-1x-0) | 10 weeks | 6 hours/week | electricity, magnetism
@@ -381,8 +383,6 @@ Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Introduction to Logic](https://www.coursera.org/learn/logic-introduction) | 10 weeks | 4-8 hours/week | set theory
[Automata Theory](https://lagunita.stanford.edu/courses/course-v1:ComputerScience+Automata+Fall2016/about) | 8 weeks | 10 hours/week | discrete mathematics, logic, algorithms
-[Reliable Distributed Systems, Part 1](https://www.edx.org/course/reliable-distributed-algorithms-part-1-kthx-id2203-1x) | 5 weeks | 5 hours/week | Scala, intermediate CS
-[Reliable Distributed Systems, Part 2](https://www.edx.org/course/reliable-distributed-algorithms-part-2-kthx-id2203-2x) | 5 weeks | 5 hours/week | Part 1
[Computational Geometry](https://www.edx.org/course/computational-geometry-tsinghuax-70240183x) | 16 weeks | 8 hours/week | algorithms, C++
[Introduction to Formal Concept Analysis](https://www.coursera.org/learn/formal-concept-analysis) | 6 weeks | 4-6 hours/week | logic, probability
[Game Theory](https://www.coursera.org/learn/game-theory-1) | 8 weeks | x hours/week | mathematical thinking, probability, calculus
From 914c5195970cb5a3bee2405f2a96dab0d9102d71 Mon Sep 17 00:00:00 2001
From: Leo Leung
Date: Fri, 16 Feb 2018 18:23:26 -0800
Subject: [PATCH 214/558] extras/courses: Add U of Helsinki OO Programming with
Java (#456)
---
extras/courses.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/extras/courses.md b/extras/courses.md
index 18ee99ec5..d08710491 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -14,6 +14,8 @@ Courses | Duration | Effort
[An Introduction to Interactive Programming in Python (Part 2)](https://www.coursera.org/learn/interactive-python-2)| - | -
[Programming Basics](https://www.edx.org/course/programming-basics-iitbombayx-cs101-1x)| 9 weeks | 8 hours/week
[Object-Oriented Programming](https://www.edx.org/course/object-oriented-programming-iitbombayx-cs101-2x)| 4 weeks | 8 hours/week
+[Object-Oriented Programming with Java (Part 1)](http://mooc.fi/courses/2013/programming-part-1/)| 6 weeks | -
+[Object-Oriented Programming with Java (Part 2)](http://mooc.fi/courses/2013/programming-part-2/)| 6 weeks | -
[Introduction to Programming with MATLAB](https://www.coursera.org/learn/matlab)| - | -
[Introduction to Functional Programming](https://www.edx.org/course/introduction-functional-programming-delftx-fp101x-0)| 7 weeks | 4-6 hours/week
[The Structure and Interpretation of Computer Programs](http://cs61a.org/) | - | -
From 7469d07efeddcae659ec999b8264ffda4f3f167a Mon Sep 17 00:00:00 2001
From: Leo Leung
Date: Wed, 7 Mar 2018 05:08:59 -0800
Subject: [PATCH 215/558] README: Add alt link for Intro to Parallel
Programming (#464)
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index adf23681c..b197e55e1 100644
--- a/README.md
+++ b/README.md
@@ -307,7 +307,7 @@ Courses | Duration | Effort | Prerequisites
[Software Debugging](https://www.udacity.com/course/software-debugging--cs259)| 8 weeks | 6 hours/week | Python, object-oriented programming
[Software Testing](https://www.udacity.com/course/software-testing--cs258) | 4 weeks | 6 hours/week | Python, programming experience
[LAFF: Programming for Correctness](https://www.edx.org/course/laff-programming-correctness-utaustinx-ut-p4c-14-01x) | 7 weeks | 6 hours/week | linear algebra
-[Introduction to Parallel Programming](https://www.udacity.com/course/intro-to-parallel-programming--cs344) | 12 weeks | - | C, algorithms
+[Introduction to Parallel Programming](https://www.udacity.com/course/intro-to-parallel-programming--cs344) ([alt](https://www.youtube.com/playlist?list=PLGvfHSgImk4aweyWlhBXNF6XISY3um82_)) | 12 weeks | - | C, algorithms
[Software Architecture & Design](https://www.udacity.com/course/software-architecture-design--ud821)| 8 weeks | 6 hours/week | software engineering in Java
### Advanced math
From c12308a0159febe3844262d3caba9d9ce571a7a4 Mon Sep 17 00:00:00 2001
From: Tyler Miller
Date: Fri, 30 Mar 2018 21:08:35 -0600
Subject: [PATCH 216/558] README: update Learn Prolog Now! link to interactive
site (#467)
Allows users to run Prolog scripts on the site.
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index b197e55e1..b26549e57 100644
--- a/README.md
+++ b/README.md
@@ -167,7 +167,7 @@ Courses | Duration | Effort | Prerequisites
#### Readings
- **Required** to learn about monads, laziness, purity: [Learn You a Haskell for a Great Good!](http://learnyouahaskell.com/)
- **Note**: probably the best resource to learn Haskell: [Haskell Programming from First Principles](http://haskellbook.com/) `paid`
-- **Required**, to learn about logic programming, backtracking, unification: [Learn Prolog Now!](http://www.learnprolognow.org/)
+- **Required**, to learn about logic programming, backtracking, unification: [Learn Prolog Now!](http://lpn.swi-prolog.org/lpnpage.php?pageid=top)
### Core math
From 1e877eaca611d5a086e67df913bcb6e8ec174c0d Mon Sep 17 00:00:00 2001
From: Vipin Kumar
Date: Wed, 9 May 2018 20:26:09 +0530
Subject: [PATCH 217/558] PROJECTS: Add Webliza project (#477)
Introduction to Computer Science section
---
PROJECTS.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/PROJECTS.md b/PROJECTS.md
index 189482bc9..49756c1e1 100644
--- a/PROJECTS.md
+++ b/PROJECTS.md
@@ -17,6 +17,7 @@ Project Title | Description | Author(s) | Repository
:-- | :-- | :--: | :--
Binary Machine | Convert decimal numbers to binary | [Eric Douglas](https://github.com/ericdouglas) | [binary-machine](https://github.com/ericdouglas/binary-machine)
StalkHub | Stalk Github beautifully | [Aman Roy](https://github.com/aman-roy) | [StalkHub](https://github.com/aman-roy/StalkHub)
+Webliza | ELIZA in python with web interface | [Vipin Kumar](https://github.com/VipinindKumar) | [Webliza](https://github.com/VipinindKumar/Webliza)
## Programming
From 98ecf7e5d3619a699078a39d416b4a88ca2f93ef Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Fri, 11 May 2018 11:36:43 -0400
Subject: [PATCH 218/558] README: Replace OSU Calculus with MIT Calculus
---
README.md | 16 +++++-----------
1 file changed, 5 insertions(+), 11 deletions(-)
diff --git a/README.md b/README.md
index b26549e57..87e8546db 100644
--- a/README.md
+++ b/README.md
@@ -192,15 +192,10 @@ Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Essence of Linear Algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) | - | - | pre-calculus
[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-frontiers-utaustinx-ut-5-04x#!) ([alt](http://ulaff.net/)) | 15 weeks | 8 hours/week | Essence of Linear Algebra
-[Calculus One](https://www.coursera.org/learn/calculus1)*1* ([alt](https://mooculus.osu.edu/)) | 16 weeks | 8-10 hours/week | pre-calculus
-[Calculus Two: Sequences and Series](https://www.coursera.org/learn/advanced-calculus)| 7 weeks | 9-10 hours/week | Calculus One
-[Mathematics for Computer Science](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/index.htm) | 13 weeks | 5 hours/week | single variable calculus (Calculus Two)
-
-**1 Note**: When you are enrolled, please see this
-[list of errors](https://www.coursera.org/learn/calculus1/discussions/forums/WcY9_8ayEeSWEiIAC0wC5g/threads/CgOJwV-jEeWncxKXIFxpFQ/replies/kH6u_2FPEeWukw4fFhIvKw)
-and
-[these recommendations](https://www.coursera.org/learn/calculus1/discussions/all/threads/W5P9mFY8EeWbVQrsfyQbuw/replies/XyyJflZDEeWBRg5dvElQww/comments/l-bON17nEeW9lgqcHapJBw)
-for how to progress through the course.
+[Calculus 1A: Differentiation](https://www.edx.org/course/calculus-1a-differentiation-mitx-18-01-1x-0) | 13 weeks | 6-10 hours/week | pre-calculus
+[Calculus 1B: Integration](https://www.edx.org/course/calculus-1b-integration-mitx-18-01-2x-0) | 13 weeks | 5-10 hours/week | Calculus 1A
+[Calculus 1C: Coordinate Systems & Infinite Series](https://www.edx.org/course/calculus-1c-coordinate-systems-infinite-mitx-18-01-3x-0) | 13 weeks | 5-10 hours/week | Calculus 1B
+[Mathematics for Computer Science](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/index.htm) | 13 weeks | 5 hours/week | Calculus 1C
### Core systems
@@ -322,8 +317,7 @@ Courses | Duration | Effort | Prerequisites
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Calculus: Parametric Equations and Polar Coordinates](https://ocw.mit.edu/courses/mathematics/18-01sc-single-variable-calculus-fall-2010/unit-4-techniques-of-integration/part-c-parametric-equations-and-polar-coordinates/) | - | - | single-variable calculus (Calculus Two)
-[Multivariable Calculus](https://ocw.mit.edu/courses/mathematics/18-02sc-multivariable-calculus-fall-2010/index.htm) | 13 weeks | 12 hours/week | Parametric Equations and Polar Coordinates
+[Multivariable Calculus](https://ocw.mit.edu/courses/mathematics/18-02sc-multivariable-calculus-fall-2010/index.htm) | 13 weeks | 12 hours/week | MIT Calculus 1C
[Introduction to Probability - The Science of Uncertainty](https://www.edx.org/course/introduction-probability-science-mitx-6-041x-2) | 18 weeks | 12 hours/week | Multivariable Calculus
### Advanced systems
From aa0e0b77658435183feded818f4195c4586a1dc8 Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Fri, 11 May 2018 11:48:08 -0400
Subject: [PATCH 219/558] extras/readings: Add Ximera calculus textbook
---
extras/readings.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/extras/readings.md b/extras/readings.md
index abcdbdd29..58fbdcfab 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -28,7 +28,8 @@ Name | Author(s)
Name | Author(s)
:-- | :--:
-[Calculus Made Easy](http://www.gutenberg.org/ebooks/33283) | Silvanus P. Thompson
+[Calculus Made Easy](http://www.gutenberg.org/ebooks/33283) | Silvanus P. Thompson
+[Ximera](https://ximera.osu.edu/): Interactive Calculus Textbooks | [Ximera team](https://ximera.osu.edu/about/team)
[Discrete Mathematics with Applications (4th Edition)](http://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0495391328/) | Susanna S. Epp
[Applied Discrete Structures](http://faculty.uml.edu/klevasseur/ads2/) | Alan Doerr, Ken Levasseur
[Grinstead and Snell’s Introduction to Probability](https://math.dartmouth.edu/~prob/prob/prob.pdf) |Charles M. Grinstead, J. Laurie Snell
From be2e50ce5c5e04c863af63fd9f5be9b5cb3cb2c6 Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Fri, 11 May 2018 11:50:11 -0400
Subject: [PATCH 220/558] extras/readings: Add Oscar Levin Discrete Math
textbook
---
extras/readings.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/readings.md b/extras/readings.md
index 58fbdcfab..ce646d884 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -31,6 +31,7 @@ Name | Author(s)
[Calculus Made Easy](http://www.gutenberg.org/ebooks/33283) | Silvanus P. Thompson
[Ximera](https://ximera.osu.edu/): Interactive Calculus Textbooks | [Ximera team](https://ximera.osu.edu/about/team)
[Discrete Mathematics with Applications (4th Edition)](http://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0495391328/) | Susanna S. Epp
+[Discrete Mathematics: An Open Introduction](http://discrete.openmathbooks.org/dmoi/) | Oscar Levin
[Applied Discrete Structures](http://faculty.uml.edu/klevasseur/ads2/) | Alan Doerr, Ken Levasseur
[Grinstead and Snell’s Introduction to Probability](https://math.dartmouth.edu/~prob/prob/prob.pdf) |Charles M. Grinstead, J. Laurie Snell
[Introduction to Linear Algebra](https://www.amazon.com/Introduction-Linear-Algebra-Gilbert-Strang/dp/0980232775/) | Gilbert Strang
From e6c1b44898fad7b450a35e579aea7faf6444a105 Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Fri, 11 May 2018 11:58:01 -0400
Subject: [PATCH 221/558] README: Add note about Coursera Discrete Math (paid)
---
README.md | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 87e8546db..0dca03173 100644
--- a/README.md
+++ b/README.md
@@ -195,7 +195,10 @@ Courses | Duration | Effort | Prerequisites
[Calculus 1A: Differentiation](https://www.edx.org/course/calculus-1a-differentiation-mitx-18-01-1x-0) | 13 weeks | 6-10 hours/week | pre-calculus
[Calculus 1B: Integration](https://www.edx.org/course/calculus-1b-integration-mitx-18-01-2x-0) | 13 weeks | 5-10 hours/week | Calculus 1A
[Calculus 1C: Coordinate Systems & Infinite Series](https://www.edx.org/course/calculus-1c-coordinate-systems-infinite-mitx-18-01-3x-0) | 13 weeks | 5-10 hours/week | Calculus 1B
-[Mathematics for Computer Science](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/index.htm) | 13 weeks | 5 hours/week | Calculus 1C
+[Mathematics for Computer Science](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/index.htm)**1** | 13 weeks | 5 hours/week | Calculus 1C
+
+**1**: Students struggling with MIT Math for CS can consider taking the [Discrete Mathematics Specialization](https://www.coursera.org/specializations/discrete-mathematics) first.
+It is more interactive but less comprehensive, and it costs money to unlock full interactivity.
### Core systems
From 037dd7b5ef02b0dcabf6a0eb91e7949526792788 Mon Sep 17 00:00:00 2001
From: waciumawanjohi
Date: Thu, 17 May 2018 13:07:28 -0400
Subject: [PATCH 222/558] README: Remove dead link to Facebook group (#479)
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 0dca03173..3c70db1cb 100644
--- a/README.md
+++ b/README.md
@@ -490,7 +490,7 @@ These aren't the only specializations you can choose. Check the following websit
- Use our [forum](https://github.com/ossu/forum) if you need some help.
- You can also interact through [GitHub issues](https://github.com/ossu/computer-science/issues).
- We also have a chat room! [](https://gitter.im/open-source-society/computer-science?utm_campaign=pr-badge&utm_content=badge&utm_medium=badge&utm_source=badge)
-- Add **Open Source Society University** to your [Linkedin](https://www.linkedin.com/school/11272443/) and [Facebook](https://www.facebook.com/ossuniversity) profile!
+- Add **Open Source Society University** to your [Linkedin](https://www.linkedin.com/school/11272443/) profile!
> **PS**: A forum is an ideal way to interact with other students as we do not lose important discussions, which usually occur in communication via chat apps.
**Please use our forum for important discussions**.
From 659e5cbe26e63220932171793590db03817daa80 Mon Sep 17 00:00:00 2001
From: Gustav Bertram
Date: Mon, 9 Jul 2018 00:07:09 +0200
Subject: [PATCH 223/558] #484 Fixed SICP link
Fix the SICP link, as reported in #484
---
extras/readings.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/extras/readings.md b/extras/readings.md
index ce646d884..643239d63 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -14,7 +14,7 @@ Name | Author(s)
[Introduction to Computation and Programming Using Python](https://www.amazon.com/Introduction-Computation-Programming-Using-Python/dp/0262525003/) | John V. Guttag
[Think Python 2e](http://greenteapress.com/wp/think-python-2e/) | Allen B. Downey
[How to Design Programs](http://www.ccs.neu.edu/home/matthias/HtDP2e/) | Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
-[Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sicp/full-text/book/book.html) | Hal Abelson, Jerry Sussman, Julie Sussman
+[Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html) | Hal Abelson, Jerry Sussman, Julie Sussman
[Concepts, Techniques, and Models of Computer Programming](https://www.amazon.com/gp/product/0262220695) | Peter Van Roy, Seif Haridi
[Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612) | Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
[Refactoring](https://www.refactoring.com/) | Martin Fowler
From df29f6a1fcb70a1f3fdb2891e9a7e8b37c300183 Mon Sep 17 00:00:00 2001
From: Hugo
Date: Fri, 24 Aug 2018 18:53:51 -0300
Subject: [PATCH 224/558] Update README.md (#500)
spelling/syntax error
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 3c70db1cb..f5ad331d7 100644
--- a/README.md
+++ b/README.md
@@ -507,7 +507,7 @@ We also have **labels** to help you have more control through the process.
The meaning of each of these labels is:
- `Main Curriculum`: cards with that label represent courses that are listed in our curriculum.
-- `Extra Resources`: cards with that label represent courses that was added by the student.
+- `Extra Resources`: cards with that label represent courses that were added by the student.
- `Doing`: cards with that label represent courses the student is current doing.
- `Done`: cards with that label represent courses finished by the student.
Those cards should also have the link for at least one project/article built with the knowledge acquired in such course.
From f8f4e5b7e4aa9654a3bcdafb5a11f134910ea77f Mon Sep 17 00:00:00 2001
From: Vapeur redman
Date: Thu, 27 Sep 2018 16:26:33 -0600
Subject: [PATCH 225/558] README.md: Fix Trello link (#501)
Update 'how to copy board' Trello instructions from 2012 blog post, to actual instructions.
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index f5ad331d7..01415732b 100644
--- a/README.md
+++ b/README.md
@@ -499,7 +499,7 @@ These aren't the only specializations you can choose. Check the following websit
1. Create an account in [Trello](https://trello.com/).
1. Copy [this](https://trello.com/b/9DPXYv5f) board to your personal account.
-See how to copy a board [here](http://blog.trello.com/you-can-copy-boards-now-finally/).
+See how to copy a board [here](https://help.trello.com/article/802-copying-cards-lists-or-boards).
Now that you have a copy of our official board, you just need to pass the cards to the `Doing` column or `Done` column as you progress in your study.
From 01b4eac751c1f8d7e05dd083fd78c4d25bf2e50c Mon Sep 17 00:00:00 2001
From: Amadeusz Annissimo
Date: Thu, 27 Sep 2018 18:28:32 -0400
Subject: [PATCH 226/558] README: Update fix link and title for LAFF On
Programming for Correctness (#506)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* 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
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 01415732b..e44f351bc 100644
--- a/README.md
+++ b/README.md
@@ -304,7 +304,7 @@ Courses | Duration | Effort | Prerequisites
[Compilers](https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/about)| 9 weeks | 6-8 hours/week | none
[Software Debugging](https://www.udacity.com/course/software-debugging--cs259)| 8 weeks | 6 hours/week | Python, object-oriented programming
[Software Testing](https://www.udacity.com/course/software-testing--cs258) | 4 weeks | 6 hours/week | Python, programming experience
-[LAFF: Programming for Correctness](https://www.edx.org/course/laff-programming-correctness-utaustinx-ut-p4c-14-01x) | 7 weeks | 6 hours/week | linear algebra
+[LAFF - On Programming for Correctness](https://www.edx.org/course/laff-on-programming-for-correctness) | 7 weeks | 6 hours/week | linear algebra
[Introduction to Parallel Programming](https://www.udacity.com/course/intro-to-parallel-programming--cs344) ([alt](https://www.youtube.com/playlist?list=PLGvfHSgImk4aweyWlhBXNF6XISY3um82_)) | 12 weeks | - | C, algorithms
[Software Architecture & Design](https://www.udacity.com/course/software-architecture-design--ud821)| 8 weeks | 6 hours/week | software engineering in Java
From 7a928c436b0da1576b7ec53d0647f67fcb3683b6 Mon Sep 17 00:00:00 2001
From: Tyler Miller
Date: Thu, 27 Sep 2018 18:29:32 -0400
Subject: [PATCH 227/558] README: Update LAFF link (#508)
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index e44f351bc..1202210b4 100644
--- a/README.md
+++ b/README.md
@@ -191,7 +191,7 @@ Courses | Duration | Effort | Prerequisites
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Essence of Linear Algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) | - | - | pre-calculus
-[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-frontiers-utaustinx-ut-5-04x#!) ([alt](http://ulaff.net/)) | 15 weeks | 8 hours/week | Essence of Linear Algebra
+[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-to-frontiers#!) ([alt](http://ulaff.net/)) | 15 weeks | 8 hours/week | Essence of Linear Algebra
[Calculus 1A: Differentiation](https://www.edx.org/course/calculus-1a-differentiation-mitx-18-01-1x-0) | 13 weeks | 6-10 hours/week | pre-calculus
[Calculus 1B: Integration](https://www.edx.org/course/calculus-1b-integration-mitx-18-01-2x-0) | 13 weeks | 5-10 hours/week | Calculus 1A
[Calculus 1C: Coordinate Systems & Infinite Series](https://www.edx.org/course/calculus-1c-coordinate-systems-infinite-mitx-18-01-3x-0) | 13 weeks | 5-10 hours/week | Calculus 1B
From a51e9bf55cf3242dfdf5f5f134911cdd53714cfc Mon Sep 17 00:00:00 2001
From: Harshit Kumar
Date: Thu, 4 Oct 2018 08:40:21 +0530
Subject: [PATCH 228/558] extras/readings: Add ISLR (machine learning book)
(#509)
Added An Introduction to Statistical Learning
---
extras/readings.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/readings.md b/extras/readings.md
index c7168376c..ff9df1180 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -65,6 +65,7 @@ Name | Author(s)
[Transaction Processing: Concepts and Techniques](https://www.amazon.com/Transaction-Processing-Concepts-Techniques-Management/dp/1558601902) | Jim Gray, Andreas Reuter
[Data and Reality: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World](https://www.amazon.com/Data-Reality-Perspective-Perceiving-Information/dp/1935504215) | William Kent
[The Architecture of Open Source Applications](http://aosabook.org/en/) | Michael DiBernardo (editor)
+[An Introduction to Statistical Learning](https://www-bcf.usc.edu/~gareth/ISL/) | Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani
[Deep Learning](http://www.deeplearningbook.org/) | Ian Goodfellow, Yoshua Bengio and Aaron Courville
[Bayesian Reasoning and Machine Learning](http://web4.cs.ucl.ac.uk/staff/D.Barber/pmwiki/pmwiki.php?n=Brml.HomePage) | David Barber
[Language Implementation Patterns](https://www.amazon.com/gp/product/193435645X) | Terence Parr
From 1b8ec330c5e58ed797783010fdc3e3cdf0106fcd Mon Sep 17 00:00:00 2001
From: Amadeusz Annissimo
Date: Tue, 9 Oct 2018 10:22:36 -0400
Subject: [PATCH 229/558] README: Fix typo for Scala Specialization (#510)
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 1202210b4..5ba3ad031 100644
--- a/README.md
+++ b/README.md
@@ -400,7 +400,7 @@ Courses | Duration | Effort | Prerequisites
[Cloud Computing (Specialization)](https://www.coursera.org/specializations/cloud-computing) | 30 weeks | 2-6 hours/week | C++ programming
[Full Stack Web Development (Specialization)](https://www.coursera.org/specializations/full-stack) | 27 weeks | 2-6 hours/week | programming, databases
[Data Science (Specialization)](https://www.coursera.org/specializations/jhu-data-science) | 43 weeks | 1-6 hours/week | none
-[Functional Programming in Scala (Specialization)](https://www.coursera.org/specializations/scala) | 29 weeks | 4-5 hours/weeks | One year programming experience
+[Functional Programming in Scala (Specialization)](https://www.coursera.org/specializations/scala) | 29 weeks | 4-5 hours/week | One year programming experience
## Final project
From 0e1eba23fa1c077b7be465acbddc892ca18cfdb1 Mon Sep 17 00:00:00 2001
From: Sohel Shaikh
Date: Tue, 16 Oct 2018 19:58:48 +0530
Subject: [PATCH 230/558] README: Fix grammatical mistakes (#511)
Fixed sentence construction.
---
README.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 5ba3ad031..704756f87 100644
--- a/README.md
+++ b/README.md
@@ -68,8 +68,8 @@ Courses in Core CS should be taken linearly if possible, but since a perfectly l
each class's prerequisites is specified so that you can design a logical but non-linear progression
based on the class schedules and your own life plans.
-**Cost**. All or nearly all course material prior to Pro CS is available for free,
-however some courses may charge money for assignments/tests/projects to be graded.
+**Cost**. All or nearly all course material prior to Pro CS is available for free.
+However, some courses may charge money for assignments/tests/projects to be graded.
Note that Coursera offers [financial aid](https://learner.coursera.help/hc/en-us/articles/209819033-Apply-for-Financial-Aid).
Decide how much or how little to spend based on your own time and budget;
just remember that you can't purchase success!
@@ -408,7 +408,7 @@ OSS University is **project-focused**.
You are encouraged to do the assignments and exams for each course, but what really matters is whether you can *use* your knowledge to solve a real world problem.
After you've gotten through all of Core CS and the parts of Advanced CS relevant to you, you should think about a problem that you can solve using the knowledge you've acquired.
-Not only does real project work look great on a resume, the project will *validate* and *consolidate* your knowledge.
+Not only does real project work look great on a resume, but the project will also *validate* and *consolidate* your knowledge.
You can create something entirely new, or you can find an existing project that needs help via websites like
[CodeTriage](https://www.codetriage.com/)
or
@@ -432,7 +432,7 @@ via a pull request and use our [community](#community) channels to announce it t
Your peers and mentors from OSSU will then informally evaluate your project.
You will not be "graded" in the traditional sense — everyone has their own measurements for what they consider a success.
-The purpose of the evaluation is to act as your first announcement to the world that you are a computer scientist,
+The purpose of the evaluation is to act as your first announcement to the world that you are a computer scientist
and to get experience listening to feedback — both positive and negative — and taking it in stride.
The final project evaluation has a second purpose: to evaluate whether OSSU,
From e73656d3c27d2c13204a5f6c791cb793355678a5 Mon Sep 17 00:00:00 2001
From: hanjiexi
Date: Tue, 16 Oct 2018 11:53:31 -0400
Subject: [PATCH 231/558] README: Add 'Process' section under Summary (#513)
Resolves #512. Provides recommendations on how to progress through
curriculum, including recommendations on cohorts, ordering, and
electives.
---
README.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/README.md b/README.md
index 704756f87..8f50879ef 100644
--- a/README.md
+++ b/README.md
@@ -74,6 +74,12 @@ Note that Coursera offers [financial aid](https://learner.coursera.help/hc/en-us
Decide how much or how little to spend based on your own time and budget;
just remember that you can't purchase success!
+**Process**. Students can work through the curriculum alone or in groups, in order or out of order.
+- For grouping up, please use the [cohorts repository](https://github.com/ossu/cohorts) to find or create a cohort suited to you.
+- We recommend doing all courses in Core CS, only skipping a course when you are certain that you've already learned the material previously.
+- For simplicity, we recommend working through courses (especially Core CS) in order from top to bottom, as they have already been [topologically sorted](https://en.wikipedia.org/wiki/Topological_sorting) by their prerequisites.
+- Courses in Advanced CS are electives. Choose one subject (e.g. Advanced programming) you want to become an expert in, and take all the courses under that heading. You can also create your own custom subject, but we recommend getting validation from the community on the subject you choose.
+
**Content policy**. If you plan on showing off some of your coursework publicly, you must share only files that you are allowed to.
*Do NOT disrespect the code of conduct* that you signed in the beginning of each course!
From 73477a96198b19e88f879516d8231392b578a1b4 Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Tue, 16 Oct 2018 16:41:29 -0400
Subject: [PATCH 232/558] README: Move CS50 before Nand2Tetris
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.
---
FAQ.md | 5 ++---
README.md | 20 +++++++++-----------
2 files changed, 11 insertions(+), 14 deletions(-)
diff --git a/FAQ.md b/FAQ.md
index f0023f506..247c841ab 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -74,11 +74,10 @@ The [Software Development](https://www.edx.org/micromasters/software-development
### Why do you recommend skipping the second half of CS50?
The strongest and most useful part of CS50 is the part where they teach C.
-We wish to retain this in the curriculum for now because it is one of the few chances the student has to play with manual memory management in a (relatively) low-level language.
-Everything after that gets a bit too easy and shallow, to the point that we believe the student's time will be better spent in MIT's Introduction to Computer Science course.
+We are retaining this in the curriculum for now because it is one of the few chances the student has to play with manual memory management in a (relatively) low-level language.
+By learning C, students will also have a much easier time getting through the following course, Nand2Tetris.
That being said, feel free to finish CS50 if you like it and want to.
-But don't skip the MIT Intro course.
### Why doesn't the curriculum cover/ignore topic X?
diff --git a/README.md b/README.md
index 8f50879ef..5ec2a760e 100644
--- a/README.md
+++ b/README.md
@@ -120,24 +120,16 @@ and is knowledgeable enough now to decide which electives to take.
## Introduction to Computer Science
-These courses will introduce you to the world of computer science.
-Both are required, but feel free to skip straight to the second course when CS50 (the first course) moves away from C.
-([Why?](FAQ.md#why-do-you-recommend-skipping-the-second-half-of-cs50))
+This course will introduce you to the world of computer science.
**Topics covered**:
+`computation`
`imperative programming`
-`procedural programming`
-`C`
-`manual memory management`
`basic data structures and algorithms`
-`Python`
-`SQL`
-`basic HTML, CSS, JavaScript`
`and more`
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Introduction to Computer Science - CS50](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!) ([alt](https://cs50.harvard.edu/)) | 12 weeks | 10-20 hours/week | none
[Introduction to Computer Science and Programming using Python](https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-10) | 9 weeks | 15 hours/week | high school algebra
## Core CS
@@ -208,7 +200,12 @@ It is more interactive but less comprehensive, and it costs money to unlock full
### Core systems
+Skip to the second course (Nand2Tetris) when the first course (CS50) moves away from C.
+([Why?](FAQ.md#why-do-you-recommend-skipping-the-second-half-of-cs50))
+
**Topics covered**:
+`procedural programming`
+`manual memory management`
`boolean algebra`
`gate logic`
`memory`
@@ -224,7 +221,8 @@ It is more interactive but less comprehensive, and it costs money to unlock full
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) ([alt](http://www.nand2tetris.org/)) | 6 weeks | 7-13 hours/week | none
+[Introduction to Computer Science - CS50](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!) ([alt](https://cs50.harvard.edu/)) | 12 weeks | 10-20 hours/week | introductory programming
+[Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) ([alt](http://www.nand2tetris.org/)) | 6 weeks | 7-13 hours/week | C-like programming language
[Build a Modern Computer from First Principles: Nand to Tetris Part II ](https://www.coursera.org/learn/nand2tetris2) | 6 weeks | 12-18 hours/week | one of [these programming languages](https://user-images.githubusercontent.com/2046800/35426340-f6ce6358-026a-11e8-8bbb-4e95ac36b1d7.png), From Nand to Tetris Part I
[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| 8 weeks | 4–12 hours/week | algebra, probability, basic CS
[ops-class.org - Hack the Kernel](https://www.ops-class.org/) | 15 weeks | 6 hours/week | algorithms
From 0df0b06915fca8ae0eda5cf7f4389a85428c96d2 Mon Sep 17 00:00:00 2001
From: Hassam
Date: Thu, 18 Oct 2018 17:32:15 -0500
Subject: [PATCH 233/558] extras/readings: Add PBRT (#514)
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.
---
extras/readings.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/readings.md b/extras/readings.md
index 75d5838ad..ca0b5fc6f 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -76,3 +76,4 @@ Name | Author(s)
[Compilers: Principles, Techniques, and Tools (2nd Edition)](http://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811/) | Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman
[Compiler Construction](http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf) | Niklaus Wirth
[The Mythical Man-Month](https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/) | Fred Brooks, Jr.
+[Physically Based Rendering: From Theory To Implementation](http://www.pbr-book.org/) | Matt Pharr, Wenzel Jakob, and Greg Humphreys
From 4eabbdcb656caba547a003955d535d95736eb475 Mon Sep 17 00:00:00 2001
From: Joshua Hanson
Date: Wed, 31 Oct 2018 12:31:04 -0400
Subject: [PATCH 234/558] README: Add waciumawanjohi to team as lead academic
---
README.md | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 5ec2a760e..9c9acc7ed 100644
--- a/README.md
+++ b/README.md
@@ -524,9 +524,10 @@ You can change the status of your board to be *public* or *private*.
## Team
-* **Curriculum Founders**: [Eric Douglas](https://github.com/ericdouglas)
-* **Curriculum Maintainers**: [Eric Douglas](https://github.com/ericdouglas) and [hanjiexi](https://github.com/hanjiexi)
-* **Contributors**: [contributors](https://github.com/ossu/computer-science/graphs/contributors)
+* **[Eric Douglas](https://github.com/ericdouglas)**: founder of OSSU and co-maintainer of all its curricula
+* **[hanjiexi](https://github.com/hanjiexi)**: lead technical maintainer
+* **[waciumawanjohi](https://github.com/waciumawanjohi)**: lead academic maintainer
+* **[Contributors](https://github.com/ossu/computer-science/graphs/contributors)**
# References
From 3097706b894acc4acaa74d5c0261985c1891d9bf Mon Sep 17 00:00:00 2001
From: Bradley Grant <38932484+bradleygrant@users.noreply.github.com>
Date: Thu, 1 Nov 2018 08:51:55 -0600
Subject: [PATCH 235/558] extras/courses: Add GTx CS1301 Course Sequence (#524)
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.
---
extras/courses.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/extras/courses.md b/extras/courses.md
index d08710491..7930b0154 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -12,6 +12,10 @@ Courses | Duration | Effort
[Introduction to Computer Science (Udacity)](https://www.udacity.com/course/intro-to-computer-science--cs101)| 7 weeks | 10-20 hours/week
[An Introduction to Interactive Programming in Python (Part 1)](https://www.coursera.org/learn/interactive-python-1)| 5 weeks | -
[An Introduction to Interactive Programming in Python (Part 2)](https://www.coursera.org/learn/interactive-python-2)| - | -
+[Computing In Python, Part I: Fundamentals and Procedural Programming](https://www.edx.org/course/computing-in-python-i-fundamentals-and-procedural-programming-0) | 5 weeks | 10 hours/week
+[Computing In Python, Part II: Control Structures](https://www.edx.org/course/computing-in-python-ii-control-structures-0) | 5 weeks | 10 hours/week
+[Computing In Python, Part III: Data Structures](https://www.edx.org/course/computing-in-python-iii-data-structures-0) | 5 weeks | 10 hours/week
+[Computing In Python, Part IV: Objects & Algorithms](https://www.edx.org/course/computing-in-python-iv-objects-algorithms-0) | 5 weeks | 10 hours/week
[Programming Basics](https://www.edx.org/course/programming-basics-iitbombayx-cs101-1x)| 9 weeks | 8 hours/week
[Object-Oriented Programming](https://www.edx.org/course/object-oriented-programming-iitbombayx-cs101-2x)| 4 weeks | 8 hours/week
[Object-Oriented Programming with Java (Part 1)](http://mooc.fi/courses/2013/programming-part-1/)| 6 weeks | -
From 379ef0dc3bdbe69e3030723fde6e437a347d974d Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Tue, 6 Nov 2018 00:30:32 -0500
Subject: [PATCH 236/558] Add curriculum guidelines to Extras
---
extras/curriculum_guidelines.md | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
create mode 100644 extras/curriculum_guidelines.md
diff --git a/extras/curriculum_guidelines.md b/extras/curriculum_guidelines.md
new file mode 100644
index 000000000..80f97f511
--- /dev/null
+++ b/extras/curriculum_guidelines.md
@@ -0,0 +1,23 @@
+# Computer Science - Curricular Resources
+
+## Accreditation Board for Engineering and Technology
+
+ABET, incorporated as the Accreditation Board for Engineering and Technology, Inc., is a non-governmental organization that accredits post-secondary education programs in applied and natural science, computing, engineering and engineering technology. As of October 2017, 3,852 programs are accredited, distributed over 776 universities and colleges in 31 countries. ABET is the recognized U.S. accreditor of college and university programs in applied and natural science, computing, engineering and engineering technology.
+
+[Program Criteria for Computer Science, Information Systems, and Information Technology Programs](http://www.abet.org/accreditation/accreditation-criteria/criteria-for-accrediting-computing-programs-2018-2019/#2)
+
+## The Association for Computing Machinery
+
+The Association for Computing Machinery (ACM) is an international learned society for computing. It was founded in 1947, and is the world's largest scientific and educational computing society. The ACM is a non-profit professional membership group, with more than 100,000 members as of 2011.
+
+### with
+
+## Institute of Electrical and Electronics Engineers
+
+The Institute of Electrical and Electronics Engineers (IEEE) is a professional association formed in 1963 from the amalgamation of the American Institute of Electrical Engineers and the Institute of Radio Engineers. As of 2018, it is the world's largest association of technical professionals with more than 423,000 members in over 160 countries around the world. Its objectives are the educational and technical advancement of electrical and electronic engineering, telecommunications, computer engineering and allied disciplines.
+
+[Curriculum Guidelines for Undergraduate Programs in Computer Science](https://www.acm.org/binaries/content/assets/education/cs2013_web_final.pdf)
+
+[Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering](https://www.acm.org/binaries/content/assets/education/se2014.pdf)
+
+[Computer Engineering Curricula](https://www.acm.org/binaries/content/assets/education/ce2016-final-report.pdf)
From 3a74c22f8a43f67db7f094e9e23df1c311ef2c37 Mon Sep 17 00:00:00 2001
From: Alexey Filatov
Date: Thu, 22 Nov 2018 02:15:21 +0300
Subject: [PATCH 237/558] README: Update Automata from archived (2016) to
self-paced
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 9c9acc7ed..cc30cb6c1 100644
--- a/README.md
+++ b/README.md
@@ -383,7 +383,7 @@ If you are struggling, you can find a physics MOOC or utilize the materials from
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Introduction to Logic](https://www.coursera.org/learn/logic-introduction) | 10 weeks | 4-8 hours/week | set theory
-[Automata Theory](https://lagunita.stanford.edu/courses/course-v1:ComputerScience+Automata+Fall2016/about) | 8 weeks | 10 hours/week | discrete mathematics, logic, algorithms
+[Automata Theory](https://lagunita.stanford.edu/courses/course-v1:ComputerScience+Automata+SelfPaced/about) | 7 weeks | 10 hours/week | discrete mathematics, logic, algorithms
[Computational Geometry](https://www.edx.org/course/computational-geometry-tsinghuax-70240183x) | 16 weeks | 8 hours/week | algorithms, C++
[Introduction to Formal Concept Analysis](https://www.coursera.org/learn/formal-concept-analysis) | 6 weeks | 4-6 hours/week | logic, probability
[Game Theory](https://www.coursera.org/learn/game-theory-1) | 8 weeks | x hours/week | mathematical thinking, probability, calculus
From 31756c783e7d67fa7a710a0c029884fe99f8f5fb Mon Sep 17 00:00:00 2001
From: Norbert Fuhs <42637633+nfuhs@users.noreply.github.com>
Date: Mon, 26 Nov 2018 19:06:18 +0100
Subject: [PATCH 238/558] REQUIREMENTS: Fixed misspelling of 'language' (#537)
---
REQUIREMENTS.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/REQUIREMENTS.md b/REQUIREMENTS.md
index 9805ede54..10909978e 100644
--- a/REQUIREMENTS.md
+++ b/REQUIREMENTS.md
@@ -20,7 +20,7 @@ The subject requirements are based on topics, rather than specific courses, beca
- XML/HTML
- JavaScript and/or related language
- An ML-family language
-- A Lisp-family langauge
+- A Lisp-family language
- Python and/or Ruby
### Math
From b52dd6a504902e333a5d725d4b931d31581d4440 Mon Sep 17 00:00:00 2001
From: Alexey Filatov
Date: Thu, 29 Nov 2018 00:11:54 +0300
Subject: [PATCH 239/558] README: Update MIT Calculus links (#541)
Links to particular archived version are substituted with generic links, always pointing to the newest enrollments
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index cc30cb6c1..9577b8942 100644
--- a/README.md
+++ b/README.md
@@ -190,9 +190,9 @@ Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Essence of Linear Algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) | - | - | pre-calculus
[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-to-frontiers#!) ([alt](http://ulaff.net/)) | 15 weeks | 8 hours/week | Essence of Linear Algebra
-[Calculus 1A: Differentiation](https://www.edx.org/course/calculus-1a-differentiation-mitx-18-01-1x-0) | 13 weeks | 6-10 hours/week | pre-calculus
-[Calculus 1B: Integration](https://www.edx.org/course/calculus-1b-integration-mitx-18-01-2x-0) | 13 weeks | 5-10 hours/week | Calculus 1A
-[Calculus 1C: Coordinate Systems & Infinite Series](https://www.edx.org/course/calculus-1c-coordinate-systems-infinite-mitx-18-01-3x-0) | 13 weeks | 5-10 hours/week | Calculus 1B
+[Calculus 1A: Differentiation](https://www.edx.org/course/calculus-1a-differentiation) | 13 weeks | 6-10 hours/week | pre-calculus
+[Calculus 1B: Integration](https://www.edx.org/course/calculus-1b-integration) | 13 weeks | 5-10 hours/week | Calculus 1A
+[Calculus 1C: Coordinate Systems & Infinite Series](https://www.edx.org/course/calculus-1c-coordinate-systems-infinite-series) | 13 weeks | 5-10 hours/week | Calculus 1B
[Mathematics for Computer Science](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/index.htm)**1** | 13 weeks | 5 hours/week | Calculus 1C
**1**: Students struggling with MIT Math for CS can consider taking the [Discrete Mathematics Specialization](https://www.coursera.org/specializations/discrete-mathematics) first.
From 7d00e1c2035468ddc4a6fd19a1d1a76f85fc2209 Mon Sep 17 00:00:00 2001
From: Alexey Filatov
Date: Thu, 29 Nov 2018 02:13:12 +0300
Subject: [PATCH 240/558] readings: Add Computer Systems: A Programmer's
Perspective book
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.
---
extras/readings.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/readings.md b/extras/readings.md
index ca0b5fc6f..7094371a2 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -40,6 +40,7 @@ Name | Author(s)
Name | Author(s)
:-- | :--:
+[Computer Systems: A Programmer's Perspective (3rd Edition)](http://csapp.cs.cmu.edu/) | Randal E. Bryant, David R. O'Hallaron
[Modern Operating Systems (4th Edition)](http://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X/) | Andrew S. Tanenbaum, Herbert Bos
[Computer Organization and Design: The Hardware/Software Interface](https://www.amazon.com/gp/product/0124077269) | David Patternson, John Hennessy
[Computer Networks (5th Edition)](http://www.amazon.com/Computer-Networks-5th-Andrew-Tanenbaum/dp/0132126958/) | Andrew S. Tanenbaum, David J. Wetherall
From 91c479540c1d4c761c2a812849286ccad9a6c295 Mon Sep 17 00:00:00 2001
From: Alexey Filatov
Date: Mon, 10 Dec 2018 05:20:04 +0300
Subject: [PATCH 241/558] READINGS: Add Introduction to the Theory of
Computation (#545)
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.
---
extras/readings.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/readings.md b/extras/readings.md
index 7094371a2..4ab9d5d24 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -54,6 +54,7 @@ Name | Author(s)
Name | Author(s)
:-- | :--:
[Introduction to Computing: Explorations in Language, Logic, and Machines](http://www.computingbook.org/) | David Evans
+[Introduction to the Theory of Computation](https://www.amazon.com/Introduction-Theory-Computation-Michael-Sipser/dp/113318779X) | Michael Sipser
[Introduction to Algorithms (3rd Edition)](http://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844/) | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
[The Algorithm Design Manual](https://www.amazon.com/gp/product/1848000693) | Steven Skiena
[Category Theory: A Gentle Introduction](http://www.logicmatters.net/resources/pdfs/GentleIntro.pdf) | Peter Smith
From e89d89d4bd000cafa1ac0e71973127045008d332 Mon Sep 17 00:00:00 2001
From: Alaharon123 <34926441+Alaharon123@users.noreply.github.com>
Date: Wed, 2 Jan 2019 23:41:11 -0500
Subject: [PATCH 242/558] READINGS: Update links (#557)
Newer edition of Introduction to Computation and Programming Using Python uses Python 3 and the link to htdp was wrong.
---
extras/readings.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/extras/readings.md b/extras/readings.md
index 4ab9d5d24..d41487883 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -11,9 +11,9 @@ Or, if you are struggling in one of the courses, perhaps reading a book on the s
Name | Author(s)
:-- | :--:
-[Introduction to Computation and Programming Using Python](https://www.amazon.com/Introduction-Computation-Programming-Using-Python/dp/0262525003/) | John V. Guttag
+[Introduction to Computation and Programming Using Python 2e](https://www.amazon.com/Introduction-Computation-Programming-Using-Python/dp/0262529629/) | John V. Guttag
[Think Python 2e](http://greenteapress.com/wp/think-python-2e/) | Allen B. Downey
-[How to Design Programs](http://www.ccs.neu.edu/home/matthias/HtDP2e/) | Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
+[How to Design Programs](https://www.htdp.org/) | Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
[Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html) | Hal Abelson, Jerry Sussman, Julie Sussman
[Concepts, Techniques, and Models of Computer Programming](https://www.amazon.com/gp/product/0262220695) | Peter Van Roy, Seif Haridi
[Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612) | Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
From 545aa18cbf15354bbaad0ff9cd0b1aca6507f1c9 Mon Sep 17 00:00:00 2001
From: Michael Alexander Mejia Mora
<35932384+MichaelMejiaMora@users.noreply.github.com>
Date: Tue, 22 Jan 2019 13:28:37 -0600
Subject: [PATCH 243/558] Update License file copyright year (#559)
---
LICENSE | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/LICENSE b/LICENSE
index f5fb89ecb..361102402 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2018 Open Source Society University
+Copyright (c) 2019 Open Source Society University
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
From a202d46b4faf161cadf6377866e3c11829f64dc9 Mon Sep 17 00:00:00 2001
From: Agon Gashi
Date: Mon, 28 Jan 2019 09:39:12 +0100
Subject: [PATCH 244/558] Added Tools section on extra/courses
---
extras/courses.md | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/extras/courses.md b/extras/courses.md
index 7930b0154..e130f3ee1 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -73,6 +73,14 @@ Courses | Duration | Effort
[Processing Big Data with Azure HDInsight](https://www.edx.org/course/processing-big-data-azure-hdinsight-microsoft-dat202-1x-0)| 5 weeks | 3-4 hours/week
[Big Data Science with the BD2K-LINCS Data Coordination and Integration Center](https://www.coursera.org/course/bd2klincs)| 7 weeks | 4-5 hours/week
+## Tools
+
+Courses | Duration | Effort
+:-- | :--: | :--:
+[Version Control with Git](https://www.udacity.com/course/version-control-with-git--ud123) | 4 weeks | 2-3 hours/week
+[How to Use Git and GitHub](hhttps://www.udacity.com/course/how-to-use-git-and-github--ud775) | 3 weeks | 2-3 hours/week
+
+
# Online Learning - Great Courses
Courses | Duration | Effort
From b8432806ab49322fc194661f4ad97ed84250d0ea Mon Sep 17 00:00:00 2001
From: Agon Gashi
Date: Mon, 28 Jan 2019 09:41:24 +0100
Subject: [PATCH 245/558] Added Tools section on extra/courses
---
extras/courses.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/extras/courses.md b/extras/courses.md
index e130f3ee1..162a10c09 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -78,7 +78,7 @@ Courses | Duration | Effort
Courses | Duration | Effort
:-- | :--: | :--:
[Version Control with Git](https://www.udacity.com/course/version-control-with-git--ud123) | 4 weeks | 2-3 hours/week
-[How to Use Git and GitHub](hhttps://www.udacity.com/course/how-to-use-git-and-github--ud775) | 3 weeks | 2-3 hours/week
+[How to Use Git and GitHub](https://www.udacity.com/course/how-to-use-git-and-github--ud775) | 3 weeks | 2-3 hours/week
# Online Learning - Great Courses
From 92821dcedd8fadef02e7328b088d829abd9fcbc4 Mon Sep 17 00:00:00 2001
From: Alaharon123 <34926441+Alaharon123@users.noreply.github.com>
Date: Fri, 1 Feb 2019 21:36:17 -0500
Subject: [PATCH 246/558] Add ocw alt to 6.00.1x
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 9577b8942..44fe6acf4 100644
--- a/README.md
+++ b/README.md
@@ -130,7 +130,7 @@ This course will introduce you to the world of computer science.
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Introduction to Computer Science and Programming using Python](https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-10) | 9 weeks | 15 hours/week | high school algebra
+[Introduction to Computer Science and Programming using Python](https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-10) ([alt](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/)) | 9 weeks | 15 hours/week | high school algebra
## Core CS
From 49617096c846ad6963af47f6b5bd9530e9688517 Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Mon, 1 Apr 2019 20:04:32 -0400
Subject: [PATCH 247/558] Update trello link to a current board.
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 9577b8942..01f74bdc6 100644
--- a/README.md
+++ b/README.md
@@ -502,7 +502,7 @@ These aren't the only specializations you can choose. Check the following websit
## How to show your progress
1. Create an account in [Trello](https://trello.com/).
-1. Copy [this](https://trello.com/b/9DPXYv5f) board to your personal account.
+1. Copy [this](https://trello.com/b/7NIfi40X) board to your personal account.
See how to copy a board [here](https://help.trello.com/article/802-copying-cards-lists-or-boards).
Now that you have a copy of our official board, you just need to pass the cards to the `Doing` column or `Done` column as you progress in your study.
From 90462ab85ea8bfcc0d629475daa8a633080c1d9e Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Wed, 3 Apr 2019 00:11:51 -0400
Subject: [PATCH 248/558] Recommend 1 git course rather than 2
---
extras/courses.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/extras/courses.md b/extras/courses.md
index 162a10c09..4b8e58252 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -77,7 +77,6 @@ Courses | Duration | Effort
Courses | Duration | Effort
:-- | :--: | :--:
-[Version Control with Git](https://www.udacity.com/course/version-control-with-git--ud123) | 4 weeks | 2-3 hours/week
[How to Use Git and GitHub](https://www.udacity.com/course/how-to-use-git-and-github--ud775) | 3 weeks | 2-3 hours/week
From 94e0d0079218f32023c143b4c03dd81b166a6669 Mon Sep 17 00:00:00 2001
From: Tyler Miller
Date: Thu, 11 Apr 2019 15:34:39 -0400
Subject: [PATCH 249/558] Update to current version of LAFF course website
(#571)
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 6079d67c7..d9ae800f3 100644
--- a/README.md
+++ b/README.md
@@ -189,7 +189,7 @@ Courses | Duration | Effort | Prerequisites
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Essence of Linear Algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) | - | - | pre-calculus
-[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-to-frontiers#!) ([alt](http://ulaff.net/)) | 15 weeks | 8 hours/week | Essence of Linear Algebra
+[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-to-frontiers-0) ([alt](http://ulaff.net/)) | 15 weeks | 8 hours/week | Essence of Linear Algebra
[Calculus 1A: Differentiation](https://www.edx.org/course/calculus-1a-differentiation) | 13 weeks | 6-10 hours/week | pre-calculus
[Calculus 1B: Integration](https://www.edx.org/course/calculus-1b-integration) | 13 weeks | 5-10 hours/week | Calculus 1A
[Calculus 1C: Coordinate Systems & Infinite Series](https://www.edx.org/course/calculus-1c-coordinate-systems-infinite-series) | 13 weeks | 5-10 hours/week | Calculus 1B
From eae5780330d4be0455615ded6d4e79294b979767 Mon Sep 17 00:00:00 2001
From: Alexey Filatov
Date: Tue, 9 Jul 2019 12:21:30 +0300
Subject: [PATCH 250/558] Update "Introduction to Parallel Programming" link
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index d9ae800f3..de48f650b 100644
--- a/README.md
+++ b/README.md
@@ -309,7 +309,7 @@ Courses | Duration | Effort | Prerequisites
[Software Debugging](https://www.udacity.com/course/software-debugging--cs259)| 8 weeks | 6 hours/week | Python, object-oriented programming
[Software Testing](https://www.udacity.com/course/software-testing--cs258) | 4 weeks | 6 hours/week | Python, programming experience
[LAFF - On Programming for Correctness](https://www.edx.org/course/laff-on-programming-for-correctness) | 7 weeks | 6 hours/week | linear algebra
-[Introduction to Parallel Programming](https://www.udacity.com/course/intro-to-parallel-programming--cs344) ([alt](https://www.youtube.com/playlist?list=PLGvfHSgImk4aweyWlhBXNF6XISY3um82_)) | 12 weeks | - | C, algorithms
+[Introduction to Parallel Programming](https://classroom.udacity.com/courses/cs344) ([alt](https://www.youtube.com/playlist?list=PLGvfHSgImk4aweyWlhBXNF6XISY3um82_)) | 12 weeks | - | C, algorithms
[Software Architecture & Design](https://www.udacity.com/course/software-architecture-design--ud821)| 8 weeks | 6 hours/week | software engineering in Java
### Advanced math
From 61ca8a76a3c269ae36334af38cde5445cebf819b Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Wed, 21 Aug 2019 19:02:23 -0400
Subject: [PATCH 251/558] Update Core Systems
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.
---
README.md | 20 +++++++-------------
1 file changed, 7 insertions(+), 13 deletions(-)
diff --git a/README.md b/README.md
index de48f650b..c30373233 100644
--- a/README.md
+++ b/README.md
@@ -200,9 +200,6 @@ It is more interactive but less comprehensive, and it costs money to unlock full
### Core systems
-Skip to the second course (Nand2Tetris) when the first course (CS50) moves away from C.
-([Why?](FAQ.md#why-do-you-recommend-skipping-the-second-half-of-cs50))
-
**Topics covered**:
`procedural programming`
`manual memory management`
@@ -219,16 +216,13 @@ Skip to the second course (Nand2Tetris) when the first course (CS50) moves away
`network protocols`
`and more`
-Courses | Duration | Effort | Prerequisites
-:-- | :--: | :--: | :--:
-[Introduction to Computer Science - CS50](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!) ([alt](https://cs50.harvard.edu/)) | 12 weeks | 10-20 hours/week | introductory programming
-[Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) ([alt](http://www.nand2tetris.org/)) | 6 weeks | 7-13 hours/week | C-like programming language
-[Build a Modern Computer from First Principles: Nand to Tetris Part II ](https://www.coursera.org/learn/nand2tetris2) | 6 weeks | 12-18 hours/week | one of [these programming languages](https://user-images.githubusercontent.com/2046800/35426340-f6ce6358-026a-11e8-8bbb-4e95ac36b1d7.png), From Nand to Tetris Part I
-[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| 8 weeks | 4–12 hours/week | algebra, probability, basic CS
-[ops-class.org - Hack the Kernel](https://www.ops-class.org/) | 15 weeks | 6 hours/week | algorithms
-
-#### Readings
-- **Recommended**: While Hack the Kernel recommends Modern Operating Systems as a textbook, we suggest using [Operating Systems: Three Easy Pieces](http://pages.cs.wisc.edu/~remzi/OSTEP/).
+Courses | Duration | Effort | Additional Text / Assignments| Prerequisites
+:-- | :--: | :--: | :--: | :--:
+[Introduction to Computer Science - CS50](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!) ([alt](https://cs50.harvard.edu/)) | 12 weeks | 10-20 hours/week | After the sections on C, skip to the next course. [Why?](FAQ.md#why-do-you-recommend-skipping-the-second-half-of-cs50) | introductory programming
+[Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) ([alt](http://www.nand2tetris.org/)) | 6 weeks | 7-13 hours/week | - | C-like programming language
+[Build a Modern Computer from First Principles: Nand to Tetris Part II ](https://www.coursera.org/learn/nand2tetris2) | 6 weeks | 12-18 hours/week | - | one of [these programming languages](https://user-images.githubusercontent.com/2046800/35426340-f6ce6358-026a-11e8-8bbb-4e95ac36b1d7.png), From Nand to Tetris Part I
+[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| 8 weeks | 4–12 hours/week | [Assignment 1](https://github.com/PrincetonUniversity/COS461-Public/tree/master/assignments/assignment1)
[Assignment 2](https://www.scs.stanford.edu/10au-cs144/lab/reliable/reliable.html)
[Assignment 3](https://nptel.ac.in/courses/106105080/pdf/M2L7.pdf)
[Assignment 4](http://www-net.cs.umass.edu/wireshark-labs/Wireshark_TCP_v7.0.pdf) | algebra, probability, basic CS
+[ops-class.org - Hack the Kernel](https://www.ops-class.org/) | 15 weeks | 6 hours/week | Replace course textbook with [Operating Systems: Three Easy Pieces](http://pages.cs.wisc.edu/~remzi/OSTEP/) | algorithms
### Core theory
From d56b071cf1b21d10e3373af4f3004cb559445730 Mon Sep 17 00:00:00 2001
From: Maizbest
Date: Thu, 5 Sep 2019 01:02:19 +0300
Subject: [PATCH 252/558] Update README.md
fix link to Assignment 3 in Core Systems
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index c30373233..c4e84e34b 100644
--- a/README.md
+++ b/README.md
@@ -221,7 +221,7 @@ Courses | Duration | Effort | Additional Text / Assignments| Prerequisites
[Introduction to Computer Science - CS50](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!) ([alt](https://cs50.harvard.edu/)) | 12 weeks | 10-20 hours/week | After the sections on C, skip to the next course. [Why?](FAQ.md#why-do-you-recommend-skipping-the-second-half-of-cs50) | introductory programming
[Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) ([alt](http://www.nand2tetris.org/)) | 6 weeks | 7-13 hours/week | - | C-like programming language
[Build a Modern Computer from First Principles: Nand to Tetris Part II ](https://www.coursera.org/learn/nand2tetris2) | 6 weeks | 12-18 hours/week | - | one of [these programming languages](https://user-images.githubusercontent.com/2046800/35426340-f6ce6358-026a-11e8-8bbb-4e95ac36b1d7.png), From Nand to Tetris Part I
-[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| 8 weeks | 4–12 hours/week | [Assignment 1](https://github.com/PrincetonUniversity/COS461-Public/tree/master/assignments/assignment1)
[Assignment 2](https://www.scs.stanford.edu/10au-cs144/lab/reliable/reliable.html)
[Assignment 3](https://nptel.ac.in/courses/106105080/pdf/M2L7.pdf)
[Assignment 4](http://www-net.cs.umass.edu/wireshark-labs/Wireshark_TCP_v7.0.pdf) | algebra, probability, basic CS
+[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| 8 weeks | 4–12 hours/week | [Assignment 1](https://github.com/PrincetonUniversity/COS461-Public/tree/master/assignments/assignment1)
[Assignment 2](https://www.scs.stanford.edu/10au-cs144/lab/reliable/reliable.html)
[Assignment 3](https://nptel.ac.in/content/storage2/courses/106105080/pdf/M2L7.pdf)
[Assignment 4](http://www-net.cs.umass.edu/wireshark-labs/Wireshark_TCP_v7.0.pdf) | algebra, probability, basic CS
[ops-class.org - Hack the Kernel](https://www.ops-class.org/) | 15 weeks | 6 hours/week | Replace course textbook with [Operating Systems: Three Easy Pieces](http://pages.cs.wisc.edu/~remzi/OSTEP/) | algorithms
### Core theory
From 1eda3a287a81bddd91e61f05523551189093dbad Mon Sep 17 00:00:00 2001
From: zogamnuam
Date: Fri, 4 Oct 2019 12:38:54 +0200
Subject: [PATCH 253/558] Update readings.md
Programming and Programming Languages - updated to current stable version 2018
---
extras/readings.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/extras/readings.md b/extras/readings.md
index d41487883..04aa30a30 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -22,7 +22,7 @@ Name | Author(s)
[Code Complete 2e](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) | Steve McConnell
[The Pragmatic Programmer](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X) | Andrew Hunt, David Thomas
[Programming Languages: Application and Interpretation](http://cs.brown.edu/~sk/Publications/Books/ProgLangs/) | Shriram Krishnamurthi
-[Programming and Programming Languages](http://papl.cs.brown.edu/2016/) | Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz
+[Programming and Programming Languages](https://papl.cs.brown.edu/2018/) | Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz
## Math
From 6dee7765930a04595aeaab70f73cf040c56ef78d Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Thu, 10 Oct 2019 00:04:17 -0400
Subject: [PATCH 254/558] Create section for Intro to Programming
Pursuant to the RFC:
https://github.com/ossu/computer-science/issues/589
---
README.md | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index c4e84e34b..d92d6179a 100644
--- a/README.md
+++ b/README.md
@@ -118,9 +118,28 @@ Some high school graduates will have already taken AP Calculus, but this is usua
and is knowledgeable enough now to decide which electives to take.
- Note that [Advanced systems](#advanced-systems) assumes the student has taken a basic physics course (e.g. AP Physics in high school).
+## Introduction to Programming
+
+If you've never written a for-loop, or don't know what a string is in programming, start here. Choose one of the two course series below. Either one will give you an introduction to programming that assumes no prior knowledge.
+
+Trying to decide between them?
+
+_Python for Everyone_ will introduce you to a popular language and will quickly move to practical programming tasks - using web APIs and databases. This will give you a taste of what many professional developers do.
+
+_Fundamentals of Computing_ will also start by introducing you to Python. It then moves on to give an introduction to academic Computer Science topics, like sorting and recursion. This will give you a taste of what the following courses will be like. (Students who complete _Fundamentals of Computing_ can skip Intro to Computer Science and begin Core CS.)
+
+**Topics covered**:
+`simple programs`
+`simple data structures`
+
+Courses | Duration | Effort | Prerequisites
+:-- | :--: | :--: | :--:
+[Python for Everyone](https://www.coursera.org/specializations/python) | 9 weeks | 58 hours | none
+[Fundamentals of Computing](https://www.coursera.org/specializations/computer-fundamentals) | 9 weeks | 138 hours | high school mathematics
+
## Introduction to Computer Science
-This course will introduce you to the world of computer science.
+This course will introduce you to the world of computer science. Students who have been introduced to programming, either from the courses above or through study elsewhere, should take this course for a flavor of the material to come. If you finish the course wanting more, Computer Science is likely for you!
**Topics covered**:
`computation`
From 1ba60ede5992af283c9cd30b3826d5f7212b4891 Mon Sep 17 00:00:00 2001
From: Charlie van Rantwijk
Date: Sat, 12 Oct 2019 00:00:02 +0200
Subject: [PATCH 255/558] README: Small text fixes (#610)
* README: Small text fixes
---
README.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index d92d6179a..85d6598c2 100644
--- a/README.md
+++ b/README.md
@@ -65,7 +65,7 @@ they belong in [extras/courses](extras/courses.md) or [extras/readings](extras/r
**Duration**. It is possible to finish Core CS within about 2 years if you plan carefully and devote roughly 18-22 hours/week to your studies.
Courses in Core CS should be taken linearly if possible, but since a perfectly linear progression is rarely possible,
-each class's prerequisites is specified so that you can design a logical but non-linear progression
+each class's prerequisites are specified so that you can design a logical but non-linear progression
based on the class schedules and your own life plans.
**Cost**. All or nearly all course material prior to Pro CS is available for free.
@@ -78,7 +78,7 @@ just remember that you can't purchase success!
- For grouping up, please use the [cohorts repository](https://github.com/ossu/cohorts) to find or create a cohort suited to you.
- We recommend doing all courses in Core CS, only skipping a course when you are certain that you've already learned the material previously.
- For simplicity, we recommend working through courses (especially Core CS) in order from top to bottom, as they have already been [topologically sorted](https://en.wikipedia.org/wiki/Topological_sorting) by their prerequisites.
-- Courses in Advanced CS are electives. Choose one subject (e.g. Advanced programming) you want to become an expert in, and take all the courses under that heading. You can also create your own custom subject, but we recommend getting validation from the community on the subject you choose.
+- Courses in Advanced CS are electives. Choose one subject (e.g. Advanced programming) you want to become an expert in and take all the courses under that heading. You can also create your own custom subject, but we recommend getting validation from the community on the subject you choose.
**Content policy**. If you plan on showing off some of your coursework publicly, you must share only files that you are allowed to.
*Do NOT disrespect the code of conduct* that you signed in the beginning of each course!
@@ -422,7 +422,7 @@ Courses | Duration | Effort | Prerequisites
## Final project
OSS University is **project-focused**.
-You are encouraged to do the assignments and exams for each course, but what really matters is whether you can *use* your knowledge to solve a real world problem.
+You are encouraged to do the assignments and exams for each course, but what really matters is whether you can *use* your knowledge to solve a real-world problem.
After you've gotten through all of Core CS and the parts of Advanced CS relevant to you, you should think about a problem that you can solve using the knowledge you've acquired.
Not only does real project work look great on a resume, but the project will also *validate* and *consolidate* your knowledge.
@@ -477,7 +477,7 @@ Many of these courses are graduate-level.
Choose one or more of the following **specializations**:
- [Mastering Software Development in R Specialization](https://www.coursera.org/specializations/r) by Johns Hopkins University
- [Artificial Intelligence Engineer Nanodegree](https://www.udacity.com/ai) by IBM, Amazon, and Didi
-- [Machine Learning Engineer Nanodegree](https://www.udacity.com/course/machine-learning-engineer-nanodegree--nd009) by kaggle
+- [Machine Learning Engineer Nanodegree](https://www.udacity.com/course/machine-learning-engineer-nanodegree--nd009) by Kaggle
- [Cybersecurity MicroMasters](https://www.edx.org/micromasters/ritx-cybersecurity) by the Rochester Institute of Technology
- [Android Developer Nanodegree](https://www.udacity.com/course/android-developer-nanodegree-by-google--nd801) by Google
From c863d8baf93292c0a9b6a07291793fd66e492f99 Mon Sep 17 00:00:00 2001
From: hematogender <46577620+hematogender@users.noreply.github.com>
Date: Sun, 13 Oct 2019 16:54:51 +0300
Subject: [PATCH 256/558] Fixed curriculum structure
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.
---
README.md | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 85d6598c2..388f3e7c9 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@
- [Summary](#summary)
- [Curriculum](#curriculum)
- [Prerequisites](#prerequisites)
- - [Introduction to Computer Science](#introduction-to-computer-science)
+ - [Intro CS](#intro-cs)
- [Core CS](#core-cs)
- [Advanced CS](#advanced-cs)
- [Final project](#final-project)
@@ -92,7 +92,9 @@ just remember that you can't purchase success!
**Curriculum version**: `8.0.0` (see [CHANGELOG](CHANGELOG.md))
- [Prerequisites](#prerequisites)
-- [Introduction to Computer Science](#introduction-to-computer-science)
+- [Intro CS](#intro-cs)
+ - [Introduction to Programming](#introduction-to-programming)
+ - [Introduction to Computer Science](#introduction-to-computer-science)
- [Core CS](#core-cs)
- [Core programming](#core-programming)
- [Core math](#core-math)
@@ -118,7 +120,9 @@ Some high school graduates will have already taken AP Calculus, but this is usua
and is knowledgeable enough now to decide which electives to take.
- Note that [Advanced systems](#advanced-systems) assumes the student has taken a basic physics course (e.g. AP Physics in high school).
-## Introduction to Programming
+## Intro CS
+
+### Introduction to Programming
If you've never written a for-loop, or don't know what a string is in programming, start here. Choose one of the two course series below. Either one will give you an introduction to programming that assumes no prior knowledge.
@@ -137,7 +141,7 @@ Courses | Duration | Effort | Prerequisites
[Python for Everyone](https://www.coursera.org/specializations/python) | 9 weeks | 58 hours | none
[Fundamentals of Computing](https://www.coursera.org/specializations/computer-fundamentals) | 9 weeks | 138 hours | high school mathematics
-## Introduction to Computer Science
+### Introduction to Computer Science
This course will introduce you to the world of computer science. Students who have been introduced to programming, either from the courses above or through study elsewhere, should take this course for a flavor of the material to come. If you finish the course wanting more, Computer Science is likely for you!
From b073cb6fd7a901b22263fba6c738ac66ccb8a937 Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Sun, 13 Oct 2019 12:34:14 -0400
Subject: [PATCH 257/558] Remove duration from Intro to Programming Courses.
See https://github.com/ossu/computer-science/issues/613
---
README.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 388f3e7c9..a2e380bc2 100644
--- a/README.md
+++ b/README.md
@@ -136,10 +136,10 @@ _Fundamentals of Computing_ will also start by introducing you to Python. It the
`simple programs`
`simple data structures`
-Courses | Duration | Effort | Prerequisites
-:-- | :--: | :--: | :--:
-[Python for Everyone](https://www.coursera.org/specializations/python) | 9 weeks | 58 hours | none
-[Fundamentals of Computing](https://www.coursera.org/specializations/computer-fundamentals) | 9 weeks | 138 hours | high school mathematics
+Courses | Effort | Prerequisites
+:-- | :--: | :--:
+[Python for Everyone](https://www.coursera.org/specializations/python) | 58 hours | none
+[Fundamentals of Computing](https://www.coursera.org/specializations/computer-fundamentals) | 138 hours | high school mathematics
### Introduction to Computer Science
From 0f40285759cf7a9898e52faca02aaa97fe495bfb Mon Sep 17 00:00:00 2001
From: Antony ekirapa
Date: Mon, 21 Oct 2019 13:58:55 +0300
Subject: [PATCH 258/558] Included 'a' to 'education is scarce resource'
---
FAQ.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/FAQ.md b/FAQ.md
index 247c841ab..305f54783 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -47,7 +47,7 @@ Yes, because we have to draw a line.
As soon as we require paid resources in the main curriculum, we might as well tell people to pay half a million dollars to attend a university.
We are an Internet-based community of learners, not a business, so free is the most sensible price and ensures that the only price you need pay is the price of Internet access.
-At the same time, we recognize that education is scarce resource and therefore requires payment to instructors to make it sustainable in the long term.
+At the same time, we recognize that education is a scarce resource and therefore requires payment to instructors to make it sustainable in the long term.
Therefore, we respect the business model of websites like edX, which make their materials free but with some paid add-ons, like official certificates or extra interaction with course instructors.
So we only require that the *learning materials* of a resource be free to access, not that every possible add-on be free.
@@ -98,4 +98,4 @@ The curriculum assumes two things:
Without these assumptions, the curriculum would be out of control with trying to fill in your knowledge gaps.
But those who for whatever reason didn't get all the way through high school math and physics are in luck: you can find the content you need on [Khan Academy](https://www.khanacademy.org/).
-Of course, if you find that the curriculum is missing a pre-requisite for a course that isn't part of a normal high school curriculum, please let us know!
\ No newline at end of file
+Of course, if you find that the curriculum is missing a pre-requisite for a course that isn't part of a normal high school curriculum, please let us know!
From f5f81226a4e4a8284adb3f591fdbfff2322ded1b Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Sat, 25 Jan 2020 22:01:03 +0900
Subject: [PATCH 259/558] Add note deprecating firebase app
---
FAQ.md | 10 ++++++++++
README.md | 1 +
2 files changed, 11 insertions(+)
diff --git a/FAQ.md b/FAQ.md
index 305f54783..32679c963 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -15,6 +15,7 @@ Alternatively, you could [contribute](#CONTRIBUTING.md) an answer yourself.
- [Why do you recommend skipping the second half of CS50?](#why-do-you-recommend-skipping-the-second-half-of-cs50)
- [Why doesn't the curriculum cover/ignore topic X?](#why-doesnt-the-curriculum-coverignore-topic-x)
- [Why is the curriculum missing some pre-requisites?](#why-is-the-curriculum-missing-some-pre-requisites)
+- [Why is the Firebase OSSU app different/broken?](#why-is-the-Firebase-OSSU-app-different-broken)
## Questions
@@ -99,3 +100,12 @@ Without these assumptions, the curriculum would be out of control with trying to
But those who for whatever reason didn't get all the way through high school math and physics are in luck: you can find the content you need on [Khan Academy](https://www.khanacademy.org/).
Of course, if you find that the curriculum is missing a pre-requisite for a course that isn't part of a normal high school curriculum, please let us know!
+
+### Why is the Firebase OSSU app different/broken?
+(#why-is-the-Firebase-OSSU-app-different-broken)
+
+The OSSU curriculum and ecosystem have been collaboratively built by many individuals. The Firebase app was one such contribution. When it was written, it was with the intention of helping future OSSU students.
+
+Unfortunately, the app has not been updated in many years. It does not reflect updates to the curriculum, it contains links to courses that no longer exist, and it has known bugs that prevent students from loggining in.
+
+It is our hope that the creators of the Firebase app can bring the app up to date. Until that time, the firebase app should be considered a deprecated product that is no longer supported.
diff --git a/README.md b/README.md
index a2e380bc2..62118949e 100644
--- a/README.md
+++ b/README.md
@@ -512,6 +512,7 @@ These aren't the only specializations you can choose. Check the following websit
- You can also interact through [GitHub issues](https://github.com/ossu/computer-science/issues).
- We also have a chat room! [](https://gitter.im/open-source-society/computer-science?utm_campaign=pr-badge&utm_content=badge&utm_medium=badge&utm_source=badge)
- Add **Open Source Society University** to your [Linkedin](https://www.linkedin.com/school/11272443/) profile!
+- Please note that the firebase app has been deprecated and is not maintained. Read more in the [FAQ](https://github.com/ossu/computer-science/FAQ).
> **PS**: A forum is an ideal way to interact with other students as we do not lose important discussions, which usually occur in communication via chat apps.
**Please use our forum for important discussions**.
From 4e4fc34d344e0ab3556a535e5ef1e77b734c1f44 Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Sat, 25 Jan 2020 22:11:14 +0900
Subject: [PATCH 260/558] Rearrange community section
Elevate reference to the gitter chat room, as it is a community resource with regular usage. Remove references to the forum as it has not been taken up by users.
Resolves #551
---
README.md | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/README.md b/README.md
index 62118949e..b0a813533 100644
--- a/README.md
+++ b/README.md
@@ -507,15 +507,11 @@ These aren't the only specializations you can choose. Check the following websit
# Community
+- We have a chat room! This should be your first stop to talk with other OSSU students. [](https://gitter.im/open-source-society/computer-science?utm_campaign=pr-badge&utm_content=badge&utm_medium=badge&utm_source=badge)
+- You can also interact through [GitHub issues](https://github.com/ossu/computer-science/issues). If there is a problem with a course, or a change needs to be made to the curriculum, this is the place to start the conversation.
- Subscribe to our [newsletter](https://tinyletter.com/ossu).
-- Use our [forum](https://github.com/ossu/forum) if you need some help.
-- You can also interact through [GitHub issues](https://github.com/ossu/computer-science/issues).
-- We also have a chat room! [](https://gitter.im/open-source-society/computer-science?utm_campaign=pr-badge&utm_content=badge&utm_medium=badge&utm_source=badge)
- Add **Open Source Society University** to your [Linkedin](https://www.linkedin.com/school/11272443/) profile!
-- Please note that the firebase app has been deprecated and is not maintained. Read more in the [FAQ](https://github.com/ossu/computer-science/FAQ).
-
-> **PS**: A forum is an ideal way to interact with other students as we do not lose important discussions, which usually occur in communication via chat apps.
-**Please use our forum for important discussions**.
+- There is an unmaintained and deprecated firebase app that you might find when searching OSSU. You can safely ignore it. Read more in the [FAQ](https://github.com/ossu/computer-science/FAQ).
## How to show your progress
From ee20dd1a0a4ac5512972c5ca97aec60b6bc41f81 Mon Sep 17 00:00:00 2001
From: waciumawanjohi
Date: Sun, 26 Jan 2020 06:40:53 -0500
Subject: [PATCH 261/558] Update FAQ link
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index b0a813533..9bce184ec 100644
--- a/README.md
+++ b/README.md
@@ -511,7 +511,7 @@ These aren't the only specializations you can choose. Check the following websit
- You can also interact through [GitHub issues](https://github.com/ossu/computer-science/issues). If there is a problem with a course, or a change needs to be made to the curriculum, this is the place to start the conversation.
- Subscribe to our [newsletter](https://tinyletter.com/ossu).
- Add **Open Source Society University** to your [Linkedin](https://www.linkedin.com/school/11272443/) profile!
-- There is an unmaintained and deprecated firebase app that you might find when searching OSSU. You can safely ignore it. Read more in the [FAQ](https://github.com/ossu/computer-science/FAQ).
+- There is an unmaintained and deprecated firebase app that you might find when searching OSSU. You can safely ignore it. Read more in the [FAQ](./FAQ.md).
## How to show your progress
From 8de2c0551adf283a2d35fa6c5e2cf4aaa86d0fe9 Mon Sep 17 00:00:00 2001
From: waciumawanjohi
Date: Sun, 26 Jan 2020 08:28:36 -0500
Subject: [PATCH 262/558] Fix link in FAQ
---
FAQ.md | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/FAQ.md b/FAQ.md
index 32679c963..d0bcedc8b 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -15,7 +15,7 @@ Alternatively, you could [contribute](#CONTRIBUTING.md) an answer yourself.
- [Why do you recommend skipping the second half of CS50?](#why-do-you-recommend-skipping-the-second-half-of-cs50)
- [Why doesn't the curriculum cover/ignore topic X?](#why-doesnt-the-curriculum-coverignore-topic-x)
- [Why is the curriculum missing some pre-requisites?](#why-is-the-curriculum-missing-some-pre-requisites)
-- [Why is the Firebase OSSU app different/broken?](#why-is-the-Firebase-OSSU-app-different-broken)
+- [Why is the Firebase OSSU app different/broken?](#why-is-the-firebase-ossu-app-different-or-broken)
## Questions
@@ -101,8 +101,7 @@ But those who for whatever reason didn't get all the way through high school mat
Of course, if you find that the curriculum is missing a pre-requisite for a course that isn't part of a normal high school curriculum, please let us know!
-### Why is the Firebase OSSU app different/broken?
-(#why-is-the-Firebase-OSSU-app-different-broken)
+### Why is the Firebase OSSU app different or broken?
The OSSU curriculum and ecosystem have been collaboratively built by many individuals. The Firebase app was one such contribution. When it was written, it was with the intention of helping future OSSU students.
From a08d2eedd2ad99381d7aabaac979af354ada3ca6 Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Sun, 26 Jan 2020 10:44:39 -0500
Subject: [PATCH 263/558] Remove cryptography from Core Applications
Closes #570
Removing, as the course is too in depth on cryptography without teaching other important areas of security.
CS2013 specifies that the undergraduate CS curriculum include the Knowledge Area Information Assurance and Security (IAS). This knowledge area includes an introduction to cryptography. But unless students take an elective course in Cryptography, they need only demonstrate a familiarity with the topic, vocabulary, the use of primes in cryptography and how public keys are used.
As pointed out by @MohamedMandouh, this course is an advanced class offered at Stanford.
Meanwhile, IAS specifies a number of other important topics, which this class does not address.
---
README.md | 4 ----
1 file changed, 4 deletions(-)
diff --git a/README.md b/README.md
index 9bce184ec..bda2010d0 100644
--- a/README.md
+++ b/README.md
@@ -283,9 +283,6 @@ Courses | Duration | Effort | Prerequisites
`unsupervised learning`
`OpenGL`
`raytracing`
-`block ciphers`
-`authentication`
-`public key encryption`
`and more`
Courses | Duration | Effort | Prerequisites
@@ -293,7 +290,6 @@ Courses | Duration | Effort | Prerequisites
[Databases](https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/about)| 12 weeks | 8-12 hours/week | some programming, basic CS
[Machine Learning](https://www.coursera.org/learn/machine-learning)| 11 weeks | 4-6 hours/week | linear algebra
[Computer Graphics](https://www.edx.org/course/computer-graphics-uc-san-diegox-cse167x)| 6 weeks | 12 hours/week | C++ or Java, linear algebra
-[Cryptography I](https://www.coursera.org/course/crypto)| 6 weeks | 5-7 hours/week | linear algebra, probability
[Software Engineering: Introduction](https://www.edx.org/course/software-engineering-introduction-ubcx-softeng1x) | 6 weeks | 8-10 hours/week | Software Construction - Object-Oriented Design
[Software Development Capstone Project](https://www.edx.org/course/software-development-capstone-project-ubcx-softengprjx) | 6-7 weeks | 8-10 hours/week | Software Engineering: Introduction
From 89c1cacac6eef55af232798b66226a3246ed751f Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Sun, 26 Jan 2020 16:57:03 -0500
Subject: [PATCH 264/558] Change Robotics recommendation
Resolves #565
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index bda2010d0..0fc28f0eb 100644
--- a/README.md
+++ b/README.md
@@ -410,7 +410,7 @@ So if you don't wish to spend money or use the Capstone as your Final, it may be
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Robotics (Specialization)](https://www.coursera.org/specializations/robotics) | 26 weeks | 2-5 hours/week | linear algebra, calculus, programming, probability
+[Modern Robotics (Specialization)](https://www.coursera.org/specializations/modernrobotics) | 26 weeks | 2-5 hours/week | freshman-level physics, linear algebra, calculus, linear ordinary differential equations
[Data Mining (Specialization)](https://www.coursera.org/specializations/data-mining) | 30 weeks | 2-5 hours/week | machine learning
[Big Data (Specialization)](https://www.coursera.org/specializations/big-data) | 30 weeks | 3-5 hours/week | none
[Internet of Things (Specialization)](https://www.coursera.org/specializations/internet-of-things) | 30 weeks | 1-5 hours/week | strong programming
From 28ab3a76cb5cd2c1fda81537ae1318ffb9150da7 Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Sun, 26 Jan 2020 23:16:15 -0500
Subject: [PATCH 265/558] Add link to lecture for Dist. Sys.
While Reliable Distributed Systems 1 is currently unavailable, the lectures for the course are still up on Youtube.
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 0fc28f0eb..6e5baa5ff 100644
--- a/README.md
+++ b/README.md
@@ -360,8 +360,8 @@ Courses | Duration | Effort | Prerequisites
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Reliable Distributed Systems, Part 1](https://www.edx.org/course/reliable-distributed-algorithms-part-1-kthx-id2203-1x) | 5 weeks | 5 hours/week | Scala, intermediate CS
-[Reliable Distributed Systems, Part 2](https://www.edx.org/course/reliable-distributed-algorithms-part-2-kthx-id2203-2x) | 5 weeks | 5 hours/week | Part 1
+[Reliable Distributed Systems, Part 1](https://www.edx.org/course/reliable-distributed-algorithms-part-1-kthx-id2203-1x) ([alt](https://www.youtube.com/watch?v=bPMOpxFMJUE&list=PLpeTtG9-RpWkQHiB_mAR9aftkuTluFxdX)) | 5 weeks | 5 hours/week | Scala, intermediate CS
+[Reliable Distributed Systems, Part 2](https://www.edx.org/course/reliable-distributed-algorithms-part-2-kthx-id2203-2x) ([alt](https://www.youtube.com/watch?v=jFCQ4hmMcus&list=PLx3mQFFeHPjndmQ0iP9j6C58b90hqGa0X&index=92)) | 5 weeks | 5 hours/week | Part 1
[Electricity and Magnetism, Part 1](https://www.edx.org/course/electricity-magnetism-part-1-ricex-phys102-1x-0)1 | 7 weeks | 8-10 hours/week | calculus, basic mechanics
[Electricity and Magnetism, Part 2](https://www.edx.org/course/electricity-magnetism-part-2-ricex-phys102-2x-0) | 7 weeks | 8-10 hours/week | Electricity and Magnetism, Part 1
[Computation Structures 1: Digital Circuits](https://www.edx.org/course/computation-structures-part-1-digital-mitx-6-004-1x-0) | 10 weeks | 6 hours/week | electricity, magnetism
From aa8d24f651f411b7fcd4db5f8eda8c43f81820b9 Mon Sep 17 00:00:00 2001
From: Angel_Kitty
Date: Wed, 29 Jan 2020 13:37:41 +0800
Subject: [PATCH 266/558] Update License file copyright year
---
LICENSE | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/LICENSE b/LICENSE
index 361102402..0883b2b3f 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2019 Open Source Society University
+Copyright (c) 2020 Open Source Society University
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
From 230693a305567c7018b854defbaa16cd74c3e513 Mon Sep 17 00:00:00 2001
From: Jack Wong
Date: Sun, 13 Oct 2019 23:02:30 +0800
Subject: [PATCH 267/558] add cp book
---
extras/readings.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/readings.md b/extras/readings.md
index 04aa30a30..e245feb8a 100644
--- a/extras/readings.md
+++ b/extras/readings.md
@@ -23,6 +23,7 @@ Name | Author(s)
[The Pragmatic Programmer](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X) | Andrew Hunt, David Thomas
[Programming Languages: Application and Interpretation](http://cs.brown.edu/~sk/Publications/Books/ProgLangs/) | Shriram Krishnamurthi
[Programming and Programming Languages](https://papl.cs.brown.edu/2018/) | Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz
+[Competitive Programming](https://cpbook.net/) | Steven Halim, Felix Halim
## Math
From a4d876bb4fdd473ccda0167c25e62e3a5baaa080 Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Wed, 29 Jan 2020 03:00:30 -0500
Subject: [PATCH 268/558] Update course time estimate
See conversation here:
https://github.com/ossu/computer-science/pull/578/
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 6e5baa5ff..6af7fd114 100644
--- a/README.md
+++ b/README.md
@@ -399,7 +399,7 @@ Courses | Duration | Effort | Prerequisites
[Automata Theory](https://lagunita.stanford.edu/courses/course-v1:ComputerScience+Automata+SelfPaced/about) | 7 weeks | 10 hours/week | discrete mathematics, logic, algorithms
[Computational Geometry](https://www.edx.org/course/computational-geometry-tsinghuax-70240183x) | 16 weeks | 8 hours/week | algorithms, C++
[Introduction to Formal Concept Analysis](https://www.coursera.org/learn/formal-concept-analysis) | 6 weeks | 4-6 hours/week | logic, probability
-[Game Theory](https://www.coursera.org/learn/game-theory-1) | 8 weeks | x hours/week | mathematical thinking, probability, calculus
+[Game Theory](https://www.coursera.org/learn/game-theory-1) | 8 weeks | 3 hours/week | mathematical thinking, probability, calculus
### Advanced applications
From 9eff731dc22dcc7f5a53bfe528384ba8760da2e2 Mon Sep 17 00:00:00 2001
From: matt
Date: Sat, 1 Feb 2020 11:07:47 -0500
Subject: [PATCH 269/558] Added alt link for coursera Python for everyone _ new
to course and my first commit
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 6af7fd114..cd220b703 100644
--- a/README.md
+++ b/README.md
@@ -138,7 +138,7 @@ _Fundamentals of Computing_ will also start by introducing you to Python. It the
Courses | Effort | Prerequisites
:-- | :--: | :--:
-[Python for Everyone](https://www.coursera.org/specializations/python) | 58 hours | none
+[Python for Everyone](https://www.coursera.org/specializations/python) ([alt](https://www.py4e.com/)) | 58 hours | none
[Fundamentals of Computing](https://www.coursera.org/specializations/computer-fundamentals) | 138 hours | high school mathematics
### Introduction to Computer Science
From efc618c6e059c873f916a4983b128a35a123b03a Mon Sep 17 00:00:00 2001
From: waciumawanjohi
Date: Tue, 11 Feb 2020 16:45:21 -0500
Subject: [PATCH 270/558] Replace Networking with Lectures from the course
Stanford Lagunita is no longer accepting new registrations. Replacing the course with just the lectures from the course. Note that there are already 4 programming assignments pulled from other resources that students are expected to complete.
See: https://github.com/ossu/computer-science/issues/645
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index cd220b703..1cc2d3af7 100644
--- a/README.md
+++ b/README.md
@@ -244,7 +244,7 @@ Courses | Duration | Effort | Additional Text / Assignments| Prerequisites
[Introduction to Computer Science - CS50](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!) ([alt](https://cs50.harvard.edu/)) | 12 weeks | 10-20 hours/week | After the sections on C, skip to the next course. [Why?](FAQ.md#why-do-you-recommend-skipping-the-second-half-of-cs50) | introductory programming
[Build a Modern Computer from First Principles: From Nand to Tetris](https://www.coursera.org/learn/build-a-computer) ([alt](http://www.nand2tetris.org/)) | 6 weeks | 7-13 hours/week | - | C-like programming language
[Build a Modern Computer from First Principles: Nand to Tetris Part II ](https://www.coursera.org/learn/nand2tetris2) | 6 weeks | 12-18 hours/week | - | one of [these programming languages](https://user-images.githubusercontent.com/2046800/35426340-f6ce6358-026a-11e8-8bbb-4e95ac36b1d7.png), From Nand to Tetris Part I
-[Introduction to Computer Networking](https://lagunita.stanford.edu/courses/Engineering/Networking-SP/SelfPaced/about)| 8 weeks | 4–12 hours/week | [Assignment 1](https://github.com/PrincetonUniversity/COS461-Public/tree/master/assignments/assignment1)
[Assignment 2](https://www.scs.stanford.edu/10au-cs144/lab/reliable/reliable.html)
[Assignment 3](https://nptel.ac.in/content/storage2/courses/106105080/pdf/M2L7.pdf)
[Assignment 4](http://www-net.cs.umass.edu/wireshark-labs/Wireshark_TCP_v7.0.pdf) | algebra, probability, basic CS
+[Introduction to Computer Networking](https://www.youtube.com/playlist?list=PLEAYkSg4uSQ2dr0XO_Nwa5OcdEcaaELSG)| 8 weeks | 4–12 hours/week | [Assignment 1](https://github.com/PrincetonUniversity/COS461-Public/tree/master/assignments/assignment1)
[Assignment 2](https://www.scs.stanford.edu/10au-cs144/lab/reliable/reliable.html)
[Assignment 3](https://nptel.ac.in/content/storage2/courses/106105080/pdf/M2L7.pdf)
[Assignment 4](http://www-net.cs.umass.edu/wireshark-labs/Wireshark_TCP_v7.0.pdf) | algebra, probability, basic CS
[ops-class.org - Hack the Kernel](https://www.ops-class.org/) | 15 weeks | 6 hours/week | Replace course textbook with [Operating Systems: Three Easy Pieces](http://pages.cs.wisc.edu/~remzi/OSTEP/) | algorithms
### Core theory
From a62fc346b60a43c404c47ef2fab5554ebb7fa2e0 Mon Sep 17 00:00:00 2001
From: waciumawanjohi
Date: Tue, 11 Feb 2020 16:56:14 -0500
Subject: [PATCH 271/558] Compilers - available material
Stanford Lagunita is closing. Replacing with material from the same professor.
https://github.com/ossu/computer-science/issues/645
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 1cc2d3af7..ee2a7c920 100644
--- a/README.md
+++ b/README.md
@@ -318,7 +318,7 @@ If not, or if a student chooses not to take the Capstone, then a separate Final
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Compilers](https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/about)| 9 weeks | 6-8 hours/week | none
+[Compilers](https://web.stanford.edu/class/cs143/index2018.html) ([lectures](https://www.youtube.com/playlist?list=PLDcmCgguL9rxPoVn2ykUFc8TOpLyDU5gx))| 9 weeks | 6-8 hours/week | none
[Software Debugging](https://www.udacity.com/course/software-debugging--cs259)| 8 weeks | 6 hours/week | Python, object-oriented programming
[Software Testing](https://www.udacity.com/course/software-testing--cs258) | 4 weeks | 6 hours/week | Python, programming experience
[LAFF - On Programming for Correctness](https://www.edx.org/course/laff-on-programming-for-correctness) | 7 weeks | 6 hours/week | linear algebra
From 318470e75c32e832c340755549b3f4255890bca1 Mon Sep 17 00:00:00 2001
From: waciumawanjohi
Date: Tue, 11 Feb 2020 17:01:45 -0500
Subject: [PATCH 272/558] Replace Algorithms
Stanford Lagunita is no longer available. Recommending the same course on the Coursera platform.
https://github.com/ossu/computer-science/issues/645
---
README.md | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index ee2a7c920..76acb393b 100644
--- a/README.md
+++ b/README.md
@@ -262,10 +262,9 @@ Courses | Duration | Effort | Additional Text / Assignments| Prerequisites
`NP-completeness`
`and more`
-Courses | Duration | Effort | Prerequisites
+Courses | Duration | Prerequisites
:-- | :--: | :--: | :--:
-[Algorithms: Design and Analysis, Part I](https://lagunita.stanford.edu/courses/course-v1:Engineering+Algorithms1+SelfPaced/about) | 8 weeks | 4-8 hours/week | any programming language, Mathematics for Computer Science
-[Algorithms: Design and Analysis, Part II](https://lagunita.stanford.edu/courses/course-v1:Engineering+Algorithms2+SelfPaced/about) | 8 weeks | 4-8 hours/week | Part I
+[Algorithms](https://www.coursera.org/specializations/algorithms) | 80 hours | any programming language, Mathematics for Computer Science
### Core applications
From e8e7b8f28c7448a3c6339b6ff21512552d92a737 Mon Sep 17 00:00:00 2001
From: waciumawanjohi
Date: Tue, 11 Feb 2020 17:09:55 -0500
Subject: [PATCH 273/558] Update courses.md
---
extras/courses.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/extras/courses.md b/extras/courses.md
index 4b8e58252..6fd32cdf2 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -78,6 +78,7 @@ Courses | Duration | Effort
Courses | Duration | Effort
:-- | :--: | :--:
[How to Use Git and GitHub](https://www.udacity.com/course/how-to-use-git-and-github--ud775) | 3 weeks | 2-3 hours/week
+[Kubernetes Certified Application Developer](https://www.udemy.com/course/certified-kubernetes-application-developer/) | 5 weeks | 2 hours/week
# Online Learning - Great Courses
From 16d46b43c7b811795ce16005c449f9254851553e Mon Sep 17 00:00:00 2001
From: "saif.sohomow"
Date: Wed, 19 Feb 2020 13:49:13 +0400
Subject: [PATCH 274/558] Removes extra column in table core theory
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 76acb393b..75b493d49 100644
--- a/README.md
+++ b/README.md
@@ -263,7 +263,7 @@ Courses | Duration | Effort | Additional Text / Assignments| Prerequisites
`and more`
Courses | Duration | Prerequisites
-:-- | :--: | :--: | :--:
+:-- | :--: | :--:
[Algorithms](https://www.coursera.org/specializations/algorithms) | 80 hours | any programming language, Mathematics for Computer Science
From df1380ce446dc6a64c26692ef82d5b2132b82c81 Mon Sep 17 00:00:00 2001
From: Josh Taylor <35666594+xxylem@users.noreply.github.com>
Date: Fri, 28 Feb 2020 20:33:44 +0000
Subject: [PATCH 275/558] Add Gitter link to Getting help in Summary section
Rationale: A new student probably does not know what Git, GitHub or Gitter are, so explaining what it is and putting it near the top of the page will help guide people to the Gitter more easily.
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 75b493d49..ff3c360a8 100644
--- a/README.md
+++ b/README.md
@@ -85,7 +85,7 @@ just remember that you can't purchase success!
**How to contribute**. Please see [CONTRIBUTING](CONTRIBUTING.md).
-**Getting help**. Please check our [Frequently Asked Questions](FAQ.md), and if you cannot find the answer, file an issue or talk to our [friendly community](#community)!
+**Getting help**. Please check our [Frequently Asked Questions](FAQ.md), and if you cannot find the answer, file an issue or talk to our [friendly community](#community)! In particular, join in the conversation on our [Gitter](https://gitter.im/open-source-society/computer-science) (which is an online chat service, similar to Discord or IRC) where you can chat with other students and get help. [](https://gitter.im/open-source-society/computer-science?utm_campaign=pr-badge&utm_content=badge&utm_medium=badge&utm_source=badge)
# Curriculum
From df581e55a7893f535dafa90768e98e012ae55172 Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Wed, 4 Mar 2020 01:03:18 -0700
Subject: [PATCH 276/558] Align math curriculum with CS2013
See: https://github.com/ossu/computer-science/issues/637
---
README.md | 63 ++++++++++++++++++++++-------------------------
extras/courses.md | 1 +
2 files changed, 30 insertions(+), 34 deletions(-)
diff --git a/README.md b/README.md
index ff3c360a8..e143eeb02 100644
--- a/README.md
+++ b/README.md
@@ -190,32 +190,43 @@ Courses | Duration | Effort | Prerequisites
- **Note**: probably the best resource to learn Haskell: [Haskell Programming from First Principles](http://haskellbook.com/) `paid`
- **Required**, to learn about logic programming, backtracking, unification: [Learn Prolog Now!](http://lpn.swi-prolog.org/lpnpage.php?pageid=top)
-### Core math
-
-**Topics covered**:
-`linear transformations`
-`matrices`
-`vectors`
-`mathematical proofs`
-`number theory`
-`differential calculus`
-`integral calculus`
-`sequences and series`
-`discrete mathematics`
-`basic statistics`
-`O-notation`
-`graph theory`
-`vector calculus`
-`discrete probability`
-`and more`
+### Math Electives
+**Students must choose one of the following topics**: calculus, linear algebra, logic, or probability.
+#### Linear Algebra
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Essence of Linear Algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) | - | - | pre-calculus
[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-to-frontiers-0) ([alt](http://ulaff.net/)) | 15 weeks | 8 hours/week | Essence of Linear Algebra
+
+#### Calculus
+Courses | Duration | Effort | Prerequisites
+:-- | :--: | :--: | :--:
[Calculus 1A: Differentiation](https://www.edx.org/course/calculus-1a-differentiation) | 13 weeks | 6-10 hours/week | pre-calculus
[Calculus 1B: Integration](https://www.edx.org/course/calculus-1b-integration) | 13 weeks | 5-10 hours/week | Calculus 1A
[Calculus 1C: Coordinate Systems & Infinite Series](https://www.edx.org/course/calculus-1c-coordinate-systems-infinite-series) | 13 weeks | 5-10 hours/week | Calculus 1B
+
+#### Logic
+Courses | Duration | Effort | Prerequisites
+:-- | :--: | :--: | :--:
+[Introduction to Logic](https://www.coursera.org/learn/logic-introduction) | 10 weeks | 4-8 hours/week | set theory
+
+#### Probability
+Courses | Duration | Effort | Prerequisites
+:-- | :--: | :--: | :--:
+[Introduction to Probability - The Science of Uncertainty](https://www.edx.org/course/introduction-probability-science-mitx-6-041x-2) | 18 weeks | 12 hours/week | Multivariable Calculus
+
+### Math Core
+In addition to their math elective, students must complete the following course on discrete mathematics.
+
+**Topics covered**:
+`discrete mathematics`
+`mathematical proofs`
+`basic statistics`
+`O-notation`
+`discrete probability`
+`and more`
+
[Mathematics for Computer Science](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/index.htm)**1** | 13 weeks | 5 hours/week | Calculus 1C
**1**: Students struggling with MIT Math for CS can consider taking the [Discrete Mathematics Specialization](https://www.coursera.org/specializations/discrete-mathematics) first.
@@ -324,21 +335,6 @@ Courses | Duration | Effort | Prerequisites
[Introduction to Parallel Programming](https://classroom.udacity.com/courses/cs344) ([alt](https://www.youtube.com/playlist?list=PLGvfHSgImk4aweyWlhBXNF6XISY3um82_)) | 12 weeks | - | C, algorithms
[Software Architecture & Design](https://www.udacity.com/course/software-architecture-design--ud821)| 8 weeks | 6 hours/week | software engineering in Java
-### Advanced math
-
-**Topics covered**:
-`parametric equations`
-`polar coordinate systems`
-`multivariable integrals`
-`multivariable differentials`
-`probability theory`
-`and more`
-
-Courses | Duration | Effort | Prerequisites
-:-- | :--: | :--: | :--:
-[Multivariable Calculus](https://ocw.mit.edu/courses/mathematics/18-02sc-multivariable-calculus-fall-2010/index.htm) | 13 weeks | 12 hours/week | MIT Calculus 1C
-[Introduction to Probability - The Science of Uncertainty](https://www.edx.org/course/introduction-probability-science-mitx-6-041x-2) | 18 weeks | 12 hours/week | Multivariable Calculus
-
### Advanced systems
**Topics covered**:
@@ -394,7 +390,6 @@ If you are struggling, you can find a physics MOOC or utilize the materials from
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Introduction to Logic](https://www.coursera.org/learn/logic-introduction) | 10 weeks | 4-8 hours/week | set theory
[Automata Theory](https://lagunita.stanford.edu/courses/course-v1:ComputerScience+Automata+SelfPaced/about) | 7 weeks | 10 hours/week | discrete mathematics, logic, algorithms
[Computational Geometry](https://www.edx.org/course/computational-geometry-tsinghuax-70240183x) | 16 weeks | 8 hours/week | algorithms, C++
[Introduction to Formal Concept Analysis](https://www.coursera.org/learn/formal-concept-analysis) | 6 weeks | 4-6 hours/week | logic, probability
diff --git a/extras/courses.md b/extras/courses.md
index 6fd32cdf2..78e1233c3 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -33,6 +33,7 @@ Courses | Duration | Effort
[Introduction to Mathematical Thinking](https://www.coursera.org/learn/mathematical-thinking) | 10 weeks | 10 hours/week
[Introduction to Probability and Data](https://www.coursera.org/learn/probability-intro)| - | -
[Linear Algebra (Strang)](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/index.htm) | - | -
+[Multivariable Calculus](https://ocw.mit.edu/courses/mathematics/18-02sc-multivariable-calculus-fall-2010/index.htm) | 13 weeks | 12 hours/week
## Systems
From 2354e9eec4c581de0b50c5ef3538ea0f35f93f4d Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Wed, 4 Mar 2020 01:53:21 -0700
Subject: [PATCH 277/558] Remove defunct courses
See: https://github.com/ossu/computer-science/issues/640
---
README.md | 4 +---
extras/courses.md | 1 +
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index e143eeb02..6dd117003 100644
--- a/README.md
+++ b/README.md
@@ -328,11 +328,11 @@ If not, or if a student chooses not to take the Capstone, then a separate Final
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
+[Introduction to Parallel Programming](https://classroom.udacity.com/courses/cs344) ([alt](https://www.youtube.com/playlist?list=PLGvfHSgImk4aweyWlhBXNF6XISY3um82_)) | 12 weeks | - | C, algorithms
[Compilers](https://web.stanford.edu/class/cs143/index2018.html) ([lectures](https://www.youtube.com/playlist?list=PLDcmCgguL9rxPoVn2ykUFc8TOpLyDU5gx))| 9 weeks | 6-8 hours/week | none
[Software Debugging](https://www.udacity.com/course/software-debugging--cs259)| 8 weeks | 6 hours/week | Python, object-oriented programming
[Software Testing](https://www.udacity.com/course/software-testing--cs258) | 4 weeks | 6 hours/week | Python, programming experience
[LAFF - On Programming for Correctness](https://www.edx.org/course/laff-on-programming-for-correctness) | 7 weeks | 6 hours/week | linear algebra
-[Introduction to Parallel Programming](https://classroom.udacity.com/courses/cs344) ([alt](https://www.youtube.com/playlist?list=PLGvfHSgImk4aweyWlhBXNF6XISY3um82_)) | 12 weeks | - | C, algorithms
[Software Architecture & Design](https://www.udacity.com/course/software-architecture-design--ud821)| 8 weeks | 6 hours/week | software engineering in Java
### Advanced systems
@@ -355,8 +355,6 @@ Courses | Duration | Effort | Prerequisites
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Reliable Distributed Systems, Part 1](https://www.edx.org/course/reliable-distributed-algorithms-part-1-kthx-id2203-1x) ([alt](https://www.youtube.com/watch?v=bPMOpxFMJUE&list=PLpeTtG9-RpWkQHiB_mAR9aftkuTluFxdX)) | 5 weeks | 5 hours/week | Scala, intermediate CS
-[Reliable Distributed Systems, Part 2](https://www.edx.org/course/reliable-distributed-algorithms-part-2-kthx-id2203-2x) ([alt](https://www.youtube.com/watch?v=jFCQ4hmMcus&list=PLx3mQFFeHPjndmQ0iP9j6C58b90hqGa0X&index=92)) | 5 weeks | 5 hours/week | Part 1
[Electricity and Magnetism, Part 1](https://www.edx.org/course/electricity-magnetism-part-1-ricex-phys102-1x-0)1 | 7 weeks | 8-10 hours/week | calculus, basic mechanics
[Electricity and Magnetism, Part 2](https://www.edx.org/course/electricity-magnetism-part-2-ricex-phys102-2x-0) | 7 weeks | 8-10 hours/week | Electricity and Magnetism, Part 1
[Computation Structures 1: Digital Circuits](https://www.edx.org/course/computation-structures-part-1-digital-mitx-6-004-1x-0) | 10 weeks | 6 hours/week | electricity, magnetism
diff --git a/extras/courses.md b/extras/courses.md
index 78e1233c3..3ab1ba263 100644
--- a/extras/courses.md
+++ b/extras/courses.md
@@ -39,6 +39,7 @@ Courses | Duration | Effort
Courses | Duration | Effort
:-- | :--: | :--:
+[Cloud Computing / Distributed Programming](https://www.coursera.org/learn/cloud-computing) | 5 weeks | 5-10 hours/week
[Computer Architecture](https://www.coursera.org/learn/comparch) | - | 5-8 hours/week
[Operating System Engineering](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/) | - | -
[Introduction to Operating Systems](https://www.udacity.com/course/introduction-to-operating-systems--ud923)| 8 weeks | 5-8 hours/week
From 47d156244903adc974f33f7c14694e3deac3d840 Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Wed, 4 Mar 2020 02:17:48 -0700
Subject: [PATCH 278/558] Replace disappearing course
See: https://github.com/ossu/computer-science/issues/645
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 6dd117003..1f4d78c20 100644
--- a/README.md
+++ b/README.md
@@ -388,7 +388,7 @@ If you are struggling, you can find a physics MOOC or utilize the materials from
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Automata Theory](https://lagunita.stanford.edu/courses/course-v1:ComputerScience+Automata+SelfPaced/about) | 7 weeks | 10 hours/week | discrete mathematics, logic, algorithms
+[Theory of Computation](http://aduni.org/courses/theory/index.php?view=cw) ([Lectures](https://www.youtube.com/playlist?list=PLTke5lHMAdSNmi57H0DOTzClHPK6UwSTN)) | 8 weeks | 10 hours/week | discrete mathematics, logic, algorithms
[Computational Geometry](https://www.edx.org/course/computational-geometry-tsinghuax-70240183x) | 16 weeks | 8 hours/week | algorithms, C++
[Introduction to Formal Concept Analysis](https://www.coursera.org/learn/formal-concept-analysis) | 6 weeks | 4-6 hours/week | logic, probability
[Game Theory](https://www.coursera.org/learn/game-theory-1) | 8 weeks | 3 hours/week | mathematical thinking, probability, calculus
From 788f363ca0d013b36d6f7c462c31a2eae236421f Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Wed, 4 Mar 2020 03:04:40 -0700
Subject: [PATCH 279/558] Replace course that is no longer offered.
See: https://github.com/ossu/computer-science/issues/645
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 1f4d78c20..71947fd78 100644
--- a/README.md
+++ b/README.md
@@ -297,7 +297,7 @@ Courses | Duration | Prerequisites
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
-[Databases](https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/about)| 12 weeks | 8-12 hours/week | some programming, basic CS
+[Relational Databases Systems](https://www.coursera.org/learn/relational-database)| 6 weeks | 3 hours/week | -
[Machine Learning](https://www.coursera.org/learn/machine-learning)| 11 weeks | 4-6 hours/week | linear algebra
[Computer Graphics](https://www.edx.org/course/computer-graphics-uc-san-diegox-cse167x)| 6 weeks | 12 hours/week | C++ or Java, linear algebra
[Software Engineering: Introduction](https://www.edx.org/course/software-engineering-introduction-ubcx-softeng1x) | 6 weeks | 8-10 hours/week | Software Construction - Object-Oriented Design
From e475addf995540ff8eaf5d5bff41ba29c94dcc17 Mon Sep 17 00:00:00 2001
From: Alaharon123 <34926441+Alaharon123@users.noreply.github.com>
Date: Wed, 4 Mar 2020 15:06:43 -0500
Subject: [PATCH 280/558] Update to latest ABET guidelines
---
extras/curriculum_guidelines.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/extras/curriculum_guidelines.md b/extras/curriculum_guidelines.md
index 80f97f511..96ac99ef2 100644
--- a/extras/curriculum_guidelines.md
+++ b/extras/curriculum_guidelines.md
@@ -4,7 +4,7 @@
ABET, incorporated as the Accreditation Board for Engineering and Technology, Inc., is a non-governmental organization that accredits post-secondary education programs in applied and natural science, computing, engineering and engineering technology. As of October 2017, 3,852 programs are accredited, distributed over 776 universities and colleges in 31 countries. ABET is the recognized U.S. accreditor of college and university programs in applied and natural science, computing, engineering and engineering technology.
-[Program Criteria for Computer Science, Information Systems, and Information Technology Programs](http://www.abet.org/accreditation/accreditation-criteria/criteria-for-accrediting-computing-programs-2018-2019/#2)
+[Program Criteria for Computer Science, Information Systems, and Information Technology Programs](http://www.abet.org/accreditation/accreditation-criteria/criteria-for-accrediting-computing-programs-2019-2020/#2)
## The Association for Computing Machinery
From e24e97acdaf6bf3f33e951fb36f374cddc79f9c0 Mon Sep 17 00:00:00 2001
From: Waciuma Wanjohi
Date: Wed, 4 Mar 2020 19:10:00 -0700
Subject: [PATCH 281/558] Fixup math
Swap course order, readd header for core math info.
---
README.md | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index 71947fd78..a1f2ef0cc 100644
--- a/README.md
+++ b/README.md
@@ -193,12 +193,6 @@ Courses | Duration | Effort | Prerequisites
### Math Electives
**Students must choose one of the following topics**: calculus, linear algebra, logic, or probability.
-#### Linear Algebra
-Courses | Duration | Effort | Prerequisites
-:-- | :--: | :--: | :--:
-[Essence of Linear Algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) | - | - | pre-calculus
-[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-to-frontiers-0) ([alt](http://ulaff.net/)) | 15 weeks | 8 hours/week | Essence of Linear Algebra
-
#### Calculus
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
@@ -206,6 +200,12 @@ Courses | Duration | Effort | Prerequisites
[Calculus 1B: Integration](https://www.edx.org/course/calculus-1b-integration) | 13 weeks | 5-10 hours/week | Calculus 1A
[Calculus 1C: Coordinate Systems & Infinite Series](https://www.edx.org/course/calculus-1c-coordinate-systems-infinite-series) | 13 weeks | 5-10 hours/week | Calculus 1B
+#### Linear Algebra
+Courses | Duration | Effort | Prerequisites
+:-- | :--: | :--: | :--:
+[Essence of Linear Algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) | - | - | pre-calculus
+[Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-to-frontiers-0) ([alt](http://ulaff.net/)) | 15 weeks | 8 hours/week | Essence of Linear Algebra
+
#### Logic
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
@@ -227,6 +227,8 @@ In addition to their math elective, students must complete the following course
`discrete probability`
`and more`
+Courses | Duration | Effort | Prerequisites
+:-- | :--: | :--: | :--:
[Mathematics for Computer Science](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/index.htm)**1** | 13 weeks | 5 hours/week | Calculus 1C
**1**: Students struggling with MIT Math for CS can consider taking the [Discrete Mathematics Specialization](https://www.coursera.org/specializations/discrete-mathematics) first.
From db2aab4d4f903b8cd085ed8efee5b936a199725b Mon Sep 17 00:00:00 2001
From: dhajn <47918235+dhajn@users.noreply.github.com>
Date: Thu, 5 Mar 2020 13:15:10 +0100
Subject: [PATCH 282/558] Update link to Stanford Compilers
The 2018 course doesn't seem to be accessible anymore. The course is launching on edX on 16 March - I updated the link to the edX version and marked the youtube lectures as alternative.
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index a1f2ef0cc..5b688f140 100644
--- a/README.md
+++ b/README.md
@@ -331,7 +331,7 @@ If not, or if a student chooses not to take the Capstone, then a separate Final
Courses | Duration | Effort | Prerequisites
:-- | :--: | :--: | :--:
[Introduction to Parallel Programming](https://classroom.udacity.com/courses/cs344) ([alt](https://www.youtube.com/playlist?list=PLGvfHSgImk4aweyWlhBXNF6XISY3um82_)) | 12 weeks | - | C, algorithms
-[Compilers](https://web.stanford.edu/class/cs143/index2018.html) ([lectures](https://www.youtube.com/playlist?list=PLDcmCgguL9rxPoVn2ykUFc8TOpLyDU5gx))| 9 weeks | 6-8 hours/week | none
+[Compilers](https://www.edx.org/course/compilers) ([alt](https://www.youtube.com/playlist?list=PLDcmCgguL9rxPoVn2ykUFc8TOpLyDU5gx))| 9 weeks | 6-8 hours/week | none
[Software Debugging](https://www.udacity.com/course/software-debugging--cs259)| 8 weeks | 6 hours/week | Python, object-oriented programming
[Software Testing](https://www.udacity.com/course/software-testing--cs258) | 4 weeks | 6 hours/week | Python, programming experience
[LAFF - On Programming for Correctness](https://www.edx.org/course/laff-on-programming-for-correctness) | 7 weeks | 6 hours/week | linear algebra
From b6d50b14f0b692e2dbf63040ca095947c903d436 Mon Sep 17 00:00:00 2001
From: "saif.sohomow"
Date: Fri, 6 Mar 2020 12:06:47 +0400
Subject: [PATCH 283/558] Algorithms Specialization - Breaks down
specialization into individual courses See:
https://github.com/ossu/computer-science/issues/645#issuecomment-588705984
---
README.md | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 5b688f140..fac963315 100644
--- a/README.md
+++ b/README.md
@@ -275,9 +275,12 @@ Courses | Duration | Effort | Additional Text / Assignments| Prerequisites
`NP-completeness`
`and more`
-Courses | Duration | Prerequisites
-:-- | :--: | :--:
-[Algorithms](https://www.coursera.org/specializations/algorithms) | 80 hours | any programming language, Mathematics for Computer Science
+Courses | Duration | Effort | Prerequisites
+:-- | :--: | :--: | :--:
+[Divide and Conquer, Sorting and Searching, and Randomized Algorithms](https://www.coursera.org/learn/algorithms-divide-conquer) | 4 weeks | 4-8 hours/week | any programming language, Mathematics for Computer Science
+[Graph Search, Shortest Paths, and Data Structures](https://www.coursera.org/learn/algorithms-graphs-data-structures) | 4 weeks | 4-8 hours/week | Divide and Conquer, Sorting and Searching, and Randomized Algorithms
+[Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming](https://www.coursera.org/learn/algorithms-greedy) | 4 weeks | 4-8 hours/week | Graph Search, Shortest Paths, and Data Structures
+[Shortest Paths Revisited, NP-Complete Problems and What To Do About Them](https://www.coursera.org/learn/algorithms-npcomplete) | 4 weeks | 4-8 hours/week | Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
### Core applications
From 02bdf891e6c3ac2d916d55179a7ce3b3301c008b Mon Sep 17 00:00:00 2001
From: waciumawanjohi
Date: Wed, 11 Mar 2020 02:03:04 -0400
Subject: [PATCH 284/558] Remove link to Patreon
This fundraising campaign was closed at the end of 2017. https://gitter.im/open-source-society/computer-science?at=5a354e4a232e79134d596781
---
README.md | 3 ---
1 file changed, 3 deletions(-)
diff --git a/README.md b/README.md
index fac963315..ec8f08e53 100644
--- a/README.md
+++ b/README.md
@@ -11,9 +11,6 @@