CS-311 / 8 crédits

Enseignant: Candea George

Langue: Anglais

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

Remark: The lectures and bootcamp during the first three weeks are essential for the project. This material will be tested on the exam at the end of Week 3


Summary

The course teaches the journey that software development teams take from nascent ideas to products that solve real problems for real people, in an era where the engineer's craft increasingly centers on specifying, directing, reviewing, and validating the work of AI agents.

Content

Students work in teams to specify, design, implement, test, and deliver a substantial software product, with a strong emphasis on modern software-engineering workflows, responsible use of AI, and native Android development. The skills they acquire in this course will enable students to build and ship effective software products, either within an existing organization or as founders of their own startups.

 

The course is project-intensive: students should expect to spend a significant part of each week coordinating with teammates, implementing features, reviewing code, testing, debugging, and preparing deliverables.

 

We will cover the following topics in lectures:

 

  • Agentic software development
  • Requirements and specifications
  • Validation, testing, and debugging
  • Behavior-driven and test-driven development
  • DevOps (version control, project management, issue tracking, continuous integration)
  • Agile development processes
  • Product architecture
  • Cloud-platform and mobile-platform architectures
  • Product management
  • 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, Python, and object-oriented Java/Kotlin/Scala

Learning Outcomes

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

  • Produce good software both by writing code directly and by directing AI coding agents, as appropriate
  • Design and implement a native Android application
  • Evaluate the output of AI coding agents for correctness, security, and design quality
  • Formulate requirements and specifications for a software product
  • Design a software product
  • Plan a software product from concept to delivery
  • Manage a software-development team
  • Apply behavior-driven and test-driven development, with and without AI assistance
  • Use cloud and mobile platforms effectively

Transversal skills

  • Assess progress against the plan, and adapt the plan as appropriate.
  • Plan and carry out activities in a way which makes optimal use of available time and other resources.
  • Take feedback (critique) and respond in an appropriate manner.
  • Give feedback (critique) in an appropriate fashion.
  • Identify the different roles that are involved in well-functioning teams and assume different roles, including leadership roles.
  • Resolve conflicts in ways that are productive for the task and the people concerned.
  • Negotiate effectively within the group.
  • Make an oral presentation.
  • Use both general and domain specific IT resources and tools

Teaching methods

  • Ex-cathedra
  • Independent study assignments
  • Independent programming assignments
  • Extensive team-based project

Expected student activities

  • Study relevant materials both independently and with guidance
  • Complete individual programming assignments
  • Work with team members to complete a substantial project
  • Self-directed research of solutions, study of documentation, etc.

 

This course is designed to take a total of 240 h of student work during the 14 weeks of the semester, which averages to a little over 17 h/week.

Assessment methods

  • Throughout the semester (continuous control)
  • Final grade based on both team and individual performance, including exam(s) and project
  • Deliverables include an implemented software product

Supervision

Office hours Yes
Assistant.e.s Yes

Resources

Virtual desktop infrastructure (VDI)

Yes

Websites

Dans les plans d'études

  • Semestre: Automne
  • Forme de l'examen: Pendant le semestre (session d'hiver)
  • Matière examinée: The software enterprise - from ideas to products
  • Cours: 2 Heure(s) hebdo x 14 semaines
  • Exercices: 1 Heure(s) hebdo x 14 semaines
  • Projet: 14 Heure(s) hebdo x 14 semaines
  • Type: optionnel
  • Semestre: Automne
  • Forme de l'examen: Pendant le semestre (session d'hiver)
  • Matière examinée: The software enterprise - from ideas to products
  • Cours: 2 Heure(s) hebdo x 14 semaines
  • Exercices: 1 Heure(s) hebdo x 14 semaines
  • Projet: 14 Heure(s) hebdo x 14 semaines
  • Type: optionnel

Semaine de référence

Lundi, 10h - 12h: Cours CM1

Vendredi, 10h - 12h: Cours CM2

Cours connexes

Résultats de graphsearch.epfl.ch.