CIVIL-127 / coefficient 3

Enseignant(s): Alahi Alexandre Massoud, Menghrajani Alok Deshmukh

Langue: Anglais


Summary

Python programming course to advance students' existing programming skills and help write better software. The course will teach best practices and techniques such as refactoring, debugging, and unit testing.

Content

Review major Python features (any feature available in 3.12.x is in scope), such as:

  • Basic data types (str, int, float, bool, list, tuple, sets, dictionaries)
  • Loops
  • Control flow
  • Classes
  • Common librariesTooling (IDE, linters, type checkers, etc.)

Writing testable code

  • Unittesting
  • Integration testing
  • Dependency Injection
  • Code coverage

Debugging techniques

Selected topics in the field of software design

  • Common patterns
  • Common pitfalls

Using git to manage a codebase

  • Basic commands in a CLI.
  • Splitting large commits into smaller chunks

Technical writing

  • Writing technical documents
  • Writing effective comments
  • Writing effective error messages

Keywords

Python, software development

Learning Prerequisites

Required courses

Basic knowledge of python

Learning Outcomes

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

  • Apply industry-standard best practices in Python programming.
  • Develop clean, testable and easily reviewable code.
  • Assess / Evaluate existing codebases to improve code quality and functionality.
  • Test ,debug and fix bugs in a systematic and efficient manner.
  • Implement new features in existing large-scale software projects.

Transversal skills

  • Evaluate one's own performance in the team, receive and respond appropriately to feedback.
  • Respect relevant legal guidelines and ethical codes for the profession.

Teaching methods

Class in-person lectures + labs

Expected student activities

Attend to classs lectures/labs, complete weekly programming assignements and projects.

Assessment methods

MCQ exam + grades programming assignements+project

Supervision

Office hours No
Assistants Yes
Forum Yes

Resources

Virtual desktop infrastructure (VDI)

No

Moodle Link

Dans les plans d'études

  • Semestre: Printemps
  • Forme de l'examen: Pendant le semestre (session d'été)
  • Matière examinée: Programming and software development for engineers
  • Cours: 1 Heure(s) hebdo x 14 semaines
  • TP: 2 Heure(s) hebdo x 14 semaines
  • Type: obligatoire

Semaine de référence

Mardi, 11h - 12h: Cours INJ218

Mardi, 13h - 15h: Exercice, TP GRA330
GRA331

Cours connexes

Résultats de graphsearch.epfl.ch.