Reorganize Advanced Curriculum
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 209k
- Forks
- 25.9k
- PR merge metrics
- No merged PRs in 30d
Description
Currently, the Advanced CS courses are organized in such a way where the learner is encouraged to pick a subset of the courses. I think that organizing it in a way such that there are separate "sequences" and having the learner pick from those sequences allows for the following benefits:
- Organizes courses by topic
- A better description of the topics covered by the courses in the repository, and more clarity on the subject area of each of the courses
- Ability to integrate more prerequisites into the curriculum
- Students can pick and choose topics instead of specific courses
- I personally think it looks more organized than listing a bunch of specializations out in one "Applications" section.
A short example of what I had in mind is shown below.
Advanced CS
After completing every required course in Core CS, students should choose a couple of topics in Advanced CS based on interest.
Programming Languages
| Courses | Duration | Effort | Prerequisites |
|---|---|---|---|
| Introduction to Haskell | 14 weeks | - | - |
| Learn Prolog Now! | 12 weeks | - | - |
| Compilers | 9 weeks | 6-8 hours/week | none |
| Functional Programming in Scala (Specialization) | 29 weeks | 4-5 hours/week | One year programming experience |
Software Development
| Courses | Duration | Effort | Prerequisites |
|---|---|---|---|
| Software Debugging | 8 weeks | 6 hours/week | Python, object-oriented programming |
| Software Testing | 4 weeks | 6 hours/week | Python, programming experience |
| Software Architecture & Design | 8 weeks | 6 hours/week | software engineering in Java |
Robotics
| Courses | Duration | Effort | Prerequisites |
|---|---|---|---|
| Classical Mechanics | - | - | Single Variable Calculus |
| Differential Equations | - | - | Single Variable Calculus, Vector-valued Functions, Matrices |
| Modern Robotics (Specialization) | 26 weeks | 2-5 hours/week | Classical Mechanics, Linear Algebra, Calculus, Differential Equations |
Theory (Focus on Algorithms)
| Courses | Duration | Effort | Prerequisites |
|---|---|---|---|
| Theory of Computation (Lectures) | 8 weeks | 10 hours/week | discrete mathematics, logic, algorithms |
| Advanced Algorithms | - | - | Algorithms |
| Computational Geometry | 16 weeks | 8 hours/week | algorithms, C++ |
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the current Advanced CS and Applications curriculum sections in the repository, then compare their organization with the proposed topic sequences. Review how prerequisites and course descriptions are currently represented. Done means the advanced courses are reorganized by topic with clearer descriptions, prerequisites, and sequence structure.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100