The software enterprise - from ideas to products
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 |
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
Mo | Tu | We | Th | Fr | |
8-9 | |||||
9-10 | CE12 | ||||
10-11 | CM1 | STCC - Cloud C | |||
11-12 | CE12 | ||||
12-13 | CM1 | ||||
13-14 | |||||
14-15 | |||||
15-16 | |||||
16-17 | |||||
17-18 | |||||
18-19 | |||||
19-20 | |||||
20-21 | |||||
21-22 |