Main resources - where to find course information
Exercises. https://sieprog.ch is created (and hosted) by Dr. Thomas Lochmatter.
Additional material (by me) can be found on my GitLab pages .
EPFL
2024-09-11
Instructor
Assistants
Research areas
Teaching activities (since 2012 at EPFL)
Tools
Objectives
Learning outcomes
Nominally:
| Day | Hours (room) | Activity |
|---|---|---|
| Wednesday | 13h-14h (GCC330) | Lecture |
| 14h-15h (GRB001 + GRC002) | Exercise / Project (independent) | |
| 15h-16h (GRB001 + GRC002) | Exercise / Project (with assistants): | |
| Friday | 10h-11h (GCA331) | Lecture |
| 11h-13h (GRB001 + GRC002) | Exercise / Project (with assistants) |
We will reduce the lectures and increase the number of independent hours toward the end of the project period.
Exercise
Project
Note difference from previous course.
CS-119:
ENG-270:
Expectations are set by the course, students should become capable of formulating questions and searching for resources to learn concepts largely on their own.
If assistants cannot answer your question in 5 minutes, we recommend that you post your question to Ed Discussion.
Stack Overflow provides a good guide on how to ask questions, particularly related to programming. You are also welcome to post general questions on Stack Overflow, but for course-specific questions, you can use our Ed Discussion Forum.
Main points to note before posting a question asking for help:
When you are ready to post your question, follow this checklist:
Providing minimal working example that reproduces this error:
Do not copy/paste your entire program into the forum - include just enough code + data to allow others to reproduce the problem.
It will take time to ask your question properly, but this is an important pedagogical exercise that we emphasize in the course. It is often the case that you will diagnose your own problem while following the steps above to prepare the minimal example problem.
Main points:
Mid-term exam (50%)
Projects (50%)
Computational methods
A nonexhaustive, nonexclusive classification:
Computational tools
In exercises
In projects
Exercises. https://sieprog.ch is created (and hosted) by Dr. Thomas Lochmatter.
Additional material (by me) can be found on my GitLab pages .
Popular LLMs
Can also integrate into editor (VSCode)
During exercises
During project
You will not be able to rely on AI tools during the midterm exam.
You are ultimately responsible for the accuracy and quality of the submitted code + report.
General recommendations
AnthropicAI provides a guide on prompt engineering [1] [2] for their Claude AI model.
Optimistic scenario
Pessimistic scenario
Is ENG-270 still relevant?
To code and run/compile Python and C, you must install:
The MATLAB installation is all inclusive.
When working on your projects to solve a particular problem, you may need to download or install additional libraries (Python/C) or toolboxes (MATLAB) which contain functions for a specific domain.
| Language | Implementation | Interpreter / Compiler | Editor / IDE*> |
|---|---|---|---|
| Python | CPython | Anaconda/Miniconda | Visual Studio Code + Python extension |
| MATLAB | R2024a | MATLAB R2024a | MATLAB IDE |
| C | > C99 | GCC 14 | Visual Studio Code + C/C++ extension |
| Bash | Terminal** |
*IDE = integrated development environment
**Recommended: Terminal (GNU/Linux, macOS), MSYS2 terminal (Windows)
| Free | Restrictive | |
|---|---|---|
| Open | free | “source available” |
| Closed | — | proprietary |
Definitions:
Example - installing VSCode places a set of files (including an executable file) in a directory, and this directory is often added to the system path so that other programs can find it. (Also instructions for uninstall may also be copied to your machine.)
| OS | Executable location | Extensions |
|---|---|---|
| Linux | /usr/bin |
~/.vscode/extensions |
| Windows | %USERPROFILE%\AppData\Local\Programs\Microsoft VS Code\bin |
%USERPROFILE%\.vscode\extensions |
| macOS | /Applications/Visual Studio Code.app/Contents/Resources/app/bin |
~/.vscode/extensions |
%USERPROFILE% in Windows is nominally C:\Users\{Username}.~/ is the user directory; nominally in Linux it is /home/{Username} and /Users/{Username} on macOS.Remotely log onto ENAC machines that have software installed.
Non-exhaustive classifications
Selection criteria:
Why
Some languages (C, Fortran, Lisp) are defined by published standards. A language standard (or specification) defines what features of the language should be supported by a standard-compliant implementation.
Some languages are defined by their implementation.
In principle, the distinction between compiled and interpreted languages is in the implementation. (However, in most common implementations, Python remains an interpreted language and C remains a compiled language.) An interpreter translates human code into machine code instruction by instruction, whereas a compiler translates the whole program into machine code before the code is run.
There are 100s of editors and the selection is a personal choice. They are tools to help you write and repair code.
A proper editor provides
DO NOT use word processors that deal with RTF, DOC, DOCX, etc. to deal with code - they can insert invisible characters that will give you headaches later. For a quick view, open in simple editors like Notepad, TextEdit, or gedit instead.
Recommend VSCode for Python and C for the course - unless you prefer to use something else.
VSCode provides a framework for adding plugins or extensions that make it aware of each language (Python, C/C++). These extensions do not install Python or C so you must install them separately.
Linter - warns you of errors in your code or bad style. SOMETIMES YOUR CODE DOES NOT CONTAIN AN ERROR BUT IS MARKED BECAUSE THE LINTER HAS NOT UPDATED OR THE STYLE IS NOT CONSISTENT.
Example of linter (providing correct syntax error warning)