The software enterprise - from ideas to products
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 |
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