Skip to content

Reorganize Advanced CurriculumΒ #799

@bryanyli

Description

@bryanyli

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++

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions