Skip to content

EtienneBonvin/public

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

EPFL Software Engineering

This is an undergraduate course taught at EPFL by Prof. George Candea. It covers the basics of modern software development, focusing on techniques and practices used to build computer software that meets high standards of quality, reliability, security, and maintainability. Real-world software differs from programs written in typical university courses: it is large and complex, it is developed by a team, it lives long and evolves and needs to be maintained, and it can cause serious harm if it fails.

Software engineering is a long-established field of computer science, with a wide range of techniques that have been proposed, a subset of which are actually in use, and of those a subset are of demonstrated value. This course focuses on three aspects: Which are the tools and practices of modern software? How do we produce high-quality software? How do we develop software in a team? The tools include version control systems, automated testing, and continuous integration. The practices include design patterns, defensive programming, modularity, abstraction, and agile development. Learning to work collaboratively with a team of people to write, test, and debug a single piece of software can be at times challenging and frustrating, but it is impossible for one person to produce software of the size and complexity of modern applications or systems. For this reason, we focus on learning the skills for developing software together with other people.

This is a hands-on, practical course that applies the ideas learned in lectures through an extensive class project that requires a large amount of programming.

In this repo you can find related materials that we make available to the public. More will follow over time.

About

SwEng materials for the public

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%