Appendix 1: Course list

Master's Programme, Computer Science, 120 credits (TCSCM), Programme syllabus for studies starting in autumn 2020

General courses

Year 1

Supplementary information

Students at KTH:

- from CTFYS or CINTE, who miss the equivalent courses in previous degree are also required to take:
  - DD2350 Algorithms, Data Structures and Complexity 9,5 credits or DD2352 Algorithms and Complexity 7,5 cr.
  - SF1662 Discrete Mathematics 7,5 cr/SF1610 Discrete Mathematics, 7,5 cr./SF1679 Discrete Mathematics 7,5 cr.

- from CDATE, who started 2011 or earlier, have to take the compulsory course ID2200 Operating System 6 cr. in the master's programme.

- from CMETE, who started 2015 or earlier, have to take the compulsory course DM2573 Sustainability and Media Technology 7,5 cr. in the master's programme.

- from CINTE who has read IK1203 Networks and Communication, 7,5 cr, the course IK2218 Protocols and Principles of the Internet, 6 cr, is replaced by a second cycle elective complementary computer science course of at least 6 cr.
A complementary course refers to courses that are not part of the track's 30 credits.

Year 2

Track, Cognitive Systems (CSCS)

Year 1

Conditionally elective courses

Recommended courses

Supplementary information

Prerequisits: SF1626 Calculus in Several Variable, 7,5 credits (or equivalent).

Information regarding conditionally elective courses

One of the subtracks must be chosen:

  1. Vision and Robotics:
    Mandatory courses: DD2410 Audio Technology, DD2423 Image Analysis and Computer Vision, and
    DD2424 Deep Learning in Data Science.
  2. Conversational System:
    - Mandatory course: DT2151 Project in Conversational Systems.
    - At least one must be taken: DT2112 Speech Technology or DT2119 Speech and Speaker Recognition, and
      at least 7,5 credits must be taken from: DD2424 Deep Learning in Data Science, DD2437 Artificial Neural
      Networks and Deep Architectures, DT2140 Multimodal Interaction and Interfaces, DD2418 Language
      Engineering.

Some courses are only given every two years.

Year 2

Conditionally elective courses

Recommended courses

Supplementary information

Prerequisits: SF1626 Calculus in Several Variables, 7,5 credits (or equivalent).

Information regarding conditionally elective courses

One of the subtracks must be chosen:

  1. Vision and Robotics:
    Mandatory courses: DD2410 Audio Technology, DD2423 Image Analysis and Computer Vision and
    DD2424 Deep Learning in Data Science.
  2. Conversational System:
    - Mandatory course: DT2151 Project in Conversational Systems.
    - At least one must be taken: DT2112 Speech Technology or DT2119 Speech and Speaker Recognition, and
      at least 7,5 credits must be taken from: DD2424 Deep Learning in Data Science, DD2437 Artificial Neural
      Networks and Deep Architectures, DT2140 Multimodal Interaction and Interfaces, DD2418 Language
      Engineering.

Some courses are only given every two years.

Track, Data Science (CSDA)

Year 1

Conditionally elective courses

Recommended courses

Supplementary information

Prerequisits: SF1626 Calculus in Several Variable, 7,5 credits (or equivalent).

Information regarding conditionally elective courses

One of the subtracks must be chosen:

1. Machine Learning:
   - Mandatory course: DD2424 Deep Learning in Data Science.
   - One of the courses must be taken: DD2434 Machine Learning Advanced Course,
     DD2437 Artificial Neural Networks and Deep Architectures, or DD2420 Probabilistic Graphical Models.

2. Natural Language Processing:
    Mandatory courses: DD2476 Search Engines and Information Retrieval Systems and 
    DD2418 Language Engineering.

3. Bioinformatics:
    Mandatory course: SF2940 Probability Theory.

Some courses are only given every two years.

Year 2

Conditionally elective courses

Recommended courses

Supplementary information

Prerequisits: SF1626 Calculus in Several Variable, 7,5 credits (or equivalent).

Information regarding conditionally elective courses

One of the subtracks must be chosen:

1. Machine Learning:
   - Mandatory course: DD2424 Deep Learning in Data Science.
   - One of the courses must be taken: DD2434 Machine Learning Advanced Course,
     DD2437 Artificial Neural Networks and Deep Architectures, or DD2420 Probabilistic Graphical Models.

2. Natural Language Processing:
    Mandatory courses: DD2476 Search Engines and Information Retrieval Systems, and
    DD2418 Language Engineering.

3. Bioinformatics:
    Mandatory course: SF2940 Probability Theory.

Some courses are only given every two years.

Track, Interaction Design (CSID)

Year 1

Conditionally elective courses

Recommended courses

Information regarding conditionally elective courses

At least 15 credits must be taken: DH2321 Information Visualization, DH2400 Physical Interaction Design and Realization,
DH2632 Human-Computer Interaction Research Seminars, DH2642 Interaction Programming and the Dynamic Web.

Some courses are only given every two years.

Year 2

Conditionally elective courses

Recommended courses

Information regarding conditionally elective courses

At least 15 credits must be taken: DH2321 Information Visualization, DH2400 Physical Interaction Design and Realization,
DH2632 Human-Computer Interaction Research Seminars, DH2642 Interaction Programming and the Dynamic Web.

Some courses are only given every two years.

Track, Scientific Computing (CSSC)

Year 1

Conditionally elective courses

Recommended courses

Supplementary information

Prerequisits: SF1626 Calculus in Several Variable, 7,5 credits.

Information regarding conditionally elective courses

At least one must be taken:
DD2437 Artificial Neural Networks and Deep Architectures, DD2257 Visualization, DD2365 Advanced Computation in Fluid Mechanics.

Some courses are only given every two years.

Year 2

Conditionally elective courses

Recommended courses

Supplementary information

Prerequisits: SF1626 Calculus in Several Variable, 7,5 credits.

Information regarding conditionally elective courses

At least one must be taken:
DD2437 Artificial Neural Networks and Deep Architectures, DD2257 Visualization, DD2365 Advanced Computation in Fluid Mechanics.

Some courses are only given every two years.

Track, Security and Privacy (CSSP)

Year 1

Conditionally elective courses

Recommended courses

Information regarding conditionally elective courses

At least two must be taken:
DD2448 Foundations of Cryptography, DD2525 Language-Based Security, DD2496 Privacy Enhancing Technologies, DD2443 Parallel and Distributed Computing, and
at least one must be taken:
DD2497 Project course in System Security, EP2510 Advanced Networked Systems Security.

Some courses are only given every two years.

Year 2

Conditionally elective courses

Recommended courses

Information regarding conditionally elective courses

At least two must be taken:
DD2448 Foundations of Cryptography, DD2525 Language-Based Security, DD2496 Privacy Enhancing Technologies,
DD2443 Parallel and Distributed Computing,
and at least one must be taken:
DD2497 Project course in System Security, EP2510 Advanced Networked Systems Security.

Some courses are only given every two years.

Track, Software Technology (CSST)

Year 1

Conditionally elective courses

Recommended courses

Information regarding conditionally elective courses

One of the subtracks must be chosen:

1. Programming Languages
- Mandatory courses: DD2481 Principles of Programming Languages and DD2488 Compiler Construction.
- One must be taken: DD2372 Automata and Languages or DD2457 Program Semantics and Analysis.

2. Software Engineering
- Mandatory course: DD2487 Large-Scale Software Development.
- At least two must be taken: DD2443 Parallel and Distributed Computing, DD2459 Software Reliability,
DD2460 Software Safety and Security, DD2481 Principles of Programming Languages, DD2482 Automated Software Testing and DevOps, 
DD2528 Dependable Autonomous Systems (will not be given Autumn 2020).

Some courses are only given every two years.

Year 2

Conditionally elective courses

Recommended courses

Information regarding conditionally elective courses

One of the subtracks must be chosen:

1. Programming Languages
- Mandatory courses: DD2481 Principles of Programming Languages and DD2488 Compiler Construction.
- One must be taken: DD2372 Automata and Languages or DD2457 Program Semantics and Analysis.

2. Software Engineering
- Mandatory course: DD2487 Large-Scale Software Development.
- At least two must be taken: DD2443 Parallel and Distributed Computing, DD2459 Software Reliability,
DD2460 Software Safety and Security, DD2481 Principles of Programming Languages, DD2482 Automated Software Testing and DevOps, 
DD2528 Dependable Autonomous Systems.

Some courses are only given every two years.

Track, Theoretical Computer Science (CSTC)

Year 1

Conditionally elective courses

Recommended courses

Supplementary information

Mandatory courses for all:
- DD2467 Individual Project in Theoretical Computer Science, 7,5 credits,
- SF2xxx, any course in Mathematics, second cycle, 7,5 credits.

Information regarding conditionally elective courses

One of the subtracks must be chosen:

1. Algorithms, Complexity and Cryptography:
- Mandatory course: DD2448 Foundations of Cryptography.
- At least one of the courses must be taken: DD2445 Complexity Theory, DD2442 Seminars on Theoretical Computer Science.

2. Formal Methods and Semantics:
- Mandatory course: DD2452 Formal Methods.
- At least 7,5 credits must be taken: DD2459 Software Reliability, DD2448 Foundations of Cryptography,
DD2457 Program Semantics and Analysis, DD2460 Software Safety and Security, DD2372 Automata and Languages,
DD2443 Parallel and Distributed Computing, DD2442 Seminars on Theoretical Computer Science, DD2445 Complexity Theory.

Some courses are only given every two years.

Year 2

Conditionally elective courses

Recommended courses

Supplementary information

Mandatory courses for all:
- DD2467 Individual Project in Theoretical Computer Science, 7,5 credits,
- SF2xxx, any course in Mathematics, second cycle, 7,5 credits.

Information regarding conditionally elective courses

One of the subtracks must be chosen:

1. Algorithms, Complexity and Cryptography:
- Mandatory course: DD2448 Foundations of Cryptography.
- At least one of the courses must be taken: DD2445 Complexity Theory, DD2442 Seminars on Theoretical Computer Science.

2. Formal Methods and Semantics:
- Mandatory course: DD2452 Formal Methods.
- At least 7,5 credits must be taken: DD2459 Software Reliability, DD2448 Foundations of Cryptography,
DD2457 Program Semantics and Analysis, DD2460 Software Safety and Security, DD2372 Automata and Languages, 
DD2443 Parallel and Distributed Computing, DD2442 Seminars on Theoretical Computer Science, DD2445 Complexity Theory.

Some courses are only given every two years.

Track, Visualization and Interactive Graphics (CSVG)

Year 1

Conditionally elective courses

Recommended courses

Information regarding conditionally elective courses

At least 18 credits must be taken:
DD2257 Visualization, DH2321 Information Visualization, DH2323 Computer Graphics and Interaction, DH2413 Advanced Graphics and Interaction, DH2650 Computer Game Design.

Some courses are only given every two years.

Year 2

Conditionally elective courses

Recommended courses

Information regarding conditionally elective courses

At least 18 credits must be taken:
DD2257 Visualization, DH2321 Information Visualization, DH2323 Computer Graphics and Interaction, DH2413 Advanced Graphics and Interaction,
DH2650 Computer Game Design.

Some courses are only given every two years.