Course syllabus
Course-PM
EEN255 Applied computer programming lp1 HT26 (7.5 hp)
Course is offered by the department of Electrical Engineering
Contact details
- Examiner: Christian Häger (christian.haeger@chalmers.se, office room 6439, EDIT building)
- Questions should generally be asked during the lectures, not via email.
- Teaching assistants (TAs): Navid Seyed Elyasi (elyasi@chalmers.se), Alberto Otero (albertoo@chalmers.se)
- Questions should generally be asked during the exercise and lab sessions, not via email.
- Student representatives:
- Joel Aldin (joelaaldin@gmail.com)
- Edvin Ejdebäck (edvinejdeback@gmail.com)
- Alba Finnstedt (albafinnstedt@gmail.com)
- Simone Snijder (simonesnijder232@gmail.com)
- Hanna Unger (hanna.unger@outlook.com)
Course purpose, learning objectives, and syllabus
Schedule
The course schedule including room allocations can be found on TimeEdit.
Course literature
The course is based on a set of lecture notes: https://comsys.e2.chalmers.se/een255/. To access the lecture notes, you must either be connected to the Chalmers network (Eduroam, for instance) or be connected to the Chalmers VPN (instructions for Windows and for Mac). If you try to access the notes from outside of Chalmers, you will get an error message.
The lecture notes can be easily used with tools for students with disabilities. More information about these tools can be found here: https://www.chalmers.se/en/education/student-support/disability-study-support/#Software-adapted-to-students-with-disabilities:~:text=Software%20adapted%20to%20students%20with%20disabilities
For students who wish to dive deeper, there are also many books on Python (none of which are mandatory):
- Introducing Python: Modern Computing in Simple Packages, by Bill Lubanovic, 2nd edition, 2020, ISBN: 978-1492051367.
- Online copy available through the library: Chalmers' Library here
- Python från början, by Jan Skansholm, 2019 or 2024, ISBN: 9789144187617 or 9789144134932
- Available in the Library: https://research.ebsco.com/c/lu54te/search/details/ntl77npocv
- Robust Python, by Patrick Viafore, 2021, ISBN: 9781098100667.
- Available to borrow in the library: https://research.ebsco.com/linkprocessor/plink?id=eb0c1ecb-f4bb-3cc8-9900-4a9b59ab1db3
Course design
The course mainly consists of lectures, exercise sessions, and lab sessions:
- Lectures (Tuesday afternoon): The teacher discusses the course material of the week.
- Before the lecture, students should prepare by reading the relevant chapters in the lecture notes (see below).
- You are encouraged to follow along examples with your own computer and ask questions!
- Exercise sessions (Thursday morning, start at 8:15): One TA solves a list of exercises together with the students.
- You are expected to bring your own computer (or team up with others)
- The TA will provide programming problems for you to practice
- Note that the exercises are not graded
- Lab sessions (Friday morning, start at 8:15): Two TAs will be present to answer your questions.
- There is no fixed agenda for the lab sessions. Students are recommended to work on the homework assignments for that week (self-study time).
- The lab sessions are the main channel for you to ask questions regarding installation problems, homework submissions, course material, etc.
Note that none of the above sessions are mandatory. However, students are responsible for keeping up with the course material, assignments, deadlines, and practical information communicated during scheduled course activities. The scheduled sessions are also the primary opportunity to ask questions and receive help.
Topics for each week
- Course overview and introduction to computer programming (Chapters 1 and 2)
- Python building blocks and functions (Chapters 3 and 4)
- Control flow statements (Chapter 5)
- Data structures (Chapter 6)
- Modules and code quality (Chapters 7 and 8)
- Object-oriented programming (Chapter 9)
- Exceptions and files (Chapters 10 and 11)
- Data visualization (Chapter 12)
Examination form
There are two mandatory components for the examination:
- Weekly homework assignments (25 points): In total, there will be 8 homework assignments. However, the first assignment is a practice assignment and will not be graded. The remaining 7 assignments are graded pass/fail. An assignment is passed if all problems have been solved, meaning that your provided solution (i) solves the given task and (ii) runs without errors.
- To pass the 3.5-credit module in LP1, students must pass at least 2 out of the 3 graded homework assignments offered during LP1. Students who do not pass 2 assignments during LP1 may still complete the module by passing additional assignments during LP2, until they have passed at least 2 assignments in total. Note that passing the 3.5-credit module is mandatory for passing the course.
- Each passed assignment also provides points that count towards your final course grade. In particular, assignments 2-4 provide 3 points each, while assignments 5-8 provide 4 points each. The maximum number of homework points is therefore 3*3+4*4=25.
- Final exam (75 points): The final exam will assess your understanding and critical reasoning about the course content. See previous exams (under Modules) for the format.
- The exam is conducted digitally through Inspera.
- This is a "closed-book" exam and you will not have access to the lecture notes, the Internet (including AI chatbots), or a Python code execution platform (interpreter).
The final grade will be decided based on the total score from both the homework assignments and the final exam, according to the following scale:
- Total score: <55 => Grade: Fail
- Total score: [55, 70) => Grade: 3
- Total score: [70, 85) => Grade: 4
- Total score: [85, 100] => Grade: 5
Course summary:
| Date | Details | Due |
|---|---|---|