Programming and software development for engineers
CIVIL-127 / coefficient 3
Teacher(s): Alahi Alexandre Massoud, Menghrajani Alok Deshmukh
Language: English
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 libraries
- Tooling (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 class lectures, labs, complete weekly programming assignments and projects.
Assessment methods
MCQ exam + graded programming assignments+project
Supervision
Office hours | No |
Assistants | Yes |
Forum | Yes |
In the programs
- Semester: Spring
- Exam form: During the semester (summer session)
- Subject examined: Programming and software development for engineers
- Courses: 1 Hour(s) per week x 14 weeks
- TP: 2 Hour(s) per week x 14 weeks
- Type: mandatory