First year: intro to programming, basic data structures and algos, parallel programming, databases and a project to finish it. Homework should be kept track of via some version control. Should also be some calculus and linear algebra.

Second year:
Introduce more complex subjects such as programming paradigms, compilers and language theory, low level programming + logic design + basic processor design, logic for system verification, statistics and graph theory. Should also be a project with a company.

Year three:
Advanced algos, datastructures and algorithm analysis. Intro to Computer and data security. Optional courses in graphics programming, machine learning, compilers and automata, embedded systems etc. ends with a big project that goes in depth into a CS subject, not a regular software project in java basically.

  • 2
    You explained exactly my syllabus 😂
  • 0
    Good list! You’re missing system design/architecture (and presumably source control is in there somewhere).
  • 0
    System design and arcitwcture should be covered when you are working at a company to complement the work you are doing there :)
  • 0
    @Worldyn If you get a job with a larger corporation, perhaps. But if you end up going to work for a startup then having at least a rudimentary knowledge of system design/architecture is going to be a serious advantage (not only for your work there but also in terms of getting the job in the first place).

    Source: I’ve worked and hired for both types of companies.
Add Comment