CS-311 / 8 credits

Teacher(s): Bugnion Edouard, Candea George

Language: English

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 combination of technical and product-management 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
  • Scaling to millions of users
  • Differentiation and value proposition/opportunity assessment
  • MVP and product roadmap
  • Business model alternatives
  • Intellectual property and open-source software/hardware

 

Learning Prerequisites

Required courses

CS-173 Fundamentals of Digital Systems (BA2)

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 & 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
  • Recitations and workshops
  • 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 v.1 and a written product plan for v.2

Supervision

Office hours Yes
Assistants Yes

Resources

Moodle Link

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

Related courses

Results from graphsearch.epfl.ch.