CS-311 / 8 credits

Teacher: Candea George

Language: English

Withdrawal: It is not allowed to withdraw from this subject after the registration deadline.

Remark: Special schedule


Summary

This course teaches the journey taken by software engineering teams from incipient ideas to software products that solve real problems for real people.

Content

The skills acquired in this course will enable students to build effective software products in teams, either within an existing organization or as founders of their own startups.

  • Requirements and specifications
  • Validation, testing, and debugging
  • DevOps (version control, project management, issue tracking, continuous integration)
  • Behavior-driven and test-driven development
  • Development processes
  • Cloud-platform and mobile-platform architectures
  • Product architecture
  • Security, privacy, and data protection

Learning Prerequisites

Required courses

  • CS-214 Software construction (BA3)
  • CS-202 Computer systems (BA4)

Important concepts to start the course

Must be proficient in programming in C and Python and object-oriented Java/Kotlin/Scala

Learning Outcomes

By the end of the course, the student must be able to:

  • Design and implement mobile and/or cloud apps
  • Master a variety of system design patterns
  • Work in (and manage) a team of developers
  • Identify opportunities for using software to solve real-world problems
  • Plan a software product from A-to-Z
  • Assess / Evaluate progress against the plan, and adapt the plan as appropriate
  • Manage priorities + master the basics of product management
  • Optimize the use of time and resources to achieve a given goal
  • Take feedback (critique) and respond in an appropriate manner
  • Develop auto-didact skills

Teaching methods

  • Ex cathedra
  • Extensive team-based project

Expected student activities

  • Work with team members to complete a substantial project
  • Independently research solutions, study documentation, etc. (auto-didact)

Assessment methods

  • Throughout the semester (continuous control)
  • Grade determined based on both team and individual performance in the project
  • Deliverables include an implemented software product

Supervision

Office hours Yes
Assistants Yes

Resources

Websites

In the programs

  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: The software enterprise - from ideas to products
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Project: 10 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: The software enterprise - from ideas to products
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Project: 10 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Fall
  • Exam form: During the semester (winter session)
  • Subject examined: The software enterprise - from ideas to products
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Project: 10 Hour(s) per week x 14 weeks
  • Type: optional

Reference week

Monday, 10h - 12h: Lecture CM1

Monday, 12h - 13h: Exercise, TP CM1

Friday, 9h - 11h: Lecture CM2

Friday, 11h - 12h: Exercise, TP CM2

Related courses

Results from graphsearch.epfl.ch.