ossu / ossu/computer-science

Reorganize Advanced Curriculum

Open
#799 12 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.