1. Introduction to the computer systems (5 ECTS)¶
The first part of the course module focuses on two topics:
- Basics of computer operation
- Basics of the C programming language
- Embedded systems programming with C
The course could be completed using the provided learning material in Lovelace.
The following books provide English language material for the course:
- Kernigham & Ritchie: The C programming language (from 2nd edition)
- C Programming
- The C programming language (MIT OpenCourseWare)
- Embedded Systems
- Patterson & Hennessy, Computer Organization and Design, 5th Edition: The Hardware/Software Interface, 5th edition. (Only chapter 1. needed)
- Bryant & O'Hallaron, Computer Systems: A Programmer's Perspective, 3rd edition. (Only chapter 1. needed)
This module is implemented in five parts:
- Lectures in lecture room. This year, lectures will take place in English. Schedule can be found in Peppi or in Tuudo once you have registered to the course.
- Lovelace content covers the same (and more) information than is presented in lectures.
- Lecture quizzes and C programming exercises here in Lovelace.
- The exercises can be completed on your own or during the exercises shifts in the computer rooms. Support is available in the class during the sessions or through the course's Discord channel.
- Please note, only the exercises with points (1-3p) marked in the title will be graded. Observe that some introductory exercises are not graded.
- Obligatory laboratory exercise.
- There are two laboratory exercises that must be completed during the booking lab session in a computer classroom.
- After the exercise the students have sufficient knowledge on how to program the embedded device and can take it home to work on the course project.
- Course project with the course embedded device.
- The project can be completed either in the computer rooms during the exercise sessions or at home at your own pace. Project must be done in groups of 2 or 3 people.
- Intermediate exercise tests
- During the course some quizzes containing different questions / exercises can be proposed. Students will have 12 hours and several attempts to answer those questions / exercises. Not getting minimum points in those tests, might involve automatic failure of the course.
Schedule¶
The schedules are officially published in the Peppi study guide.
Deadlines¶
C programming exercises covering material chapters 1-12 at 2024-10-11 23:59.
Course project deadline is 2024-11-17 23:59. Please see the course project material for instructions.
Lectures¶
You can follow the lectures in the lecture room. Recordings can be found in Lovelace.
Time | Place | Contents |
Mo 02.09.2024 klo 12.15-14.00 | L3 | Introduction to the course. |
We 04.09.2024 klo 08.15-10.00 | L3 | Embedded systems. A typical computer, Bits and number systems |
Mo 09.09.2024 klo 12.15-14.00 | L3 | Bitwise operations, C variable types, Functions in C, Control structures |
We 11.09.2024 klo 08.15-10.00 | L3 | Input and output, Pointers (I) |
Mo 16.09.2024 klo 12.15-14.00 | L3 | Pointers (II), Data structures |
We 18.09.2024 klo 08.15-10.00 | L3 | C preprocessor, Libraries |
Mo 23.09.2024 klo 12.15-14.00 | L3 | Embedded systems programming,Embedded I/O, Peripheral devices |
We 25.09.2024 klo 08.15-10.00 | L3 | Interrupts, Serial communications |
Mo 30.09.2024 klo 12.15-14.00 | L3 | Wireless communications,Embedded state machines |
We 02.10.2024 klo 08.15-10.00 | L3 | Embedded programming examples. Final project presentation |
Exercise sessions¶
The exercise sessions for programming exercises and course project are voluntary and can be participated in person in the reserved classrooms. We have 2 rooms for each sesssion: TS135 and TS137.
Exercises sessions (start 17.09)
Tuesday | 10-12 ja 14-16 |
Thursday | 10-12 |
Week 41 and 42 are reserved for the laboratory exercise which has a different schedule (see below). Week 43 and 44 also have a special schedule in Peppi.
C Language Programming tasks¶
Students need to complete the exercises individually in Lovelace. Lovelace will provide automatically the grade. Students can repeat the exercise as many times as they want. Exercises delivered after the deadline wont count for points.
Laboratory exercise¶
As a part of the Introduction-course, students will complete two guided laboratory exercise sessions to learn to program the course embedded device.
Students must attend to the laboratory exercise session in the computer classroom. Students must book the time beforehand. Members of the same team for the course project should try to come during the same session if possible.
Time | Place | Session |
Mon 07.10. klo 10-12 | TS135 | Session 1 |
Mon 07.10. klo 12-14 | TS135 | Session 1 |
Tue 08.10. klo 12-14 | TS135 | Session 1 |
Tue 08.10. klo 14-16 | TS135 | Session 1 |
Wed 09.10. klo 12-14 | TS135 | Session 1 |
Wed 09.10. klo 14-16 | TS135 | Session 1 |
Thu 10.10. klo 10-12 | TS135 | Session 1 |
Thu 10.10. klo 12-14 | TS135 | Session 1 |
Mon 14.10. klo 10-12 | TS135 | Session 2 |
Mon 14.10. klo 12-14 | TS135 | Session 2 |
Tue 15.10. klo 12-14 | TS135 | Session 2 |
Tue 15.10. klo 14-16 | TS135 | Session 2 |
Wed 16.10. klo 12-14 | TS135 | Session 2 |
Wed 16.10. klo 14-16 | TS135 | Session 2 |
Thu 17.10. klo 10-12 | TS135 | Session 2 |
Thu 17.10. klo 12-14 | TS135 | Session 2 |
Course project(s)¶
Project work is done in groups of 2-3 people. No individual work is accepted.
More detailed submission and grading instructions for the project work will be published in the project work materials on Lovelace. The project work will be graded in a separate grading session where all members of the team must attend.
You can work on the project independently according to your own schedule. When working remotely, support is available on Discord and in workstation classrooms during exercise sessions.
Course grading¶
- 50% from completed C programming exercises in Lovelace
- Exercises are individually scored based on difficulty: 1-3p. Maximum 30 points
- Some of the quizzes with limited amount of time to answer (12 hours). Those quizzes will be announced in advanced.
- ATTENTION: The lecture material include exercises that do not provide any points.
- 50% from embedded programming course project. Maximum 30 points
- Grading details are published later in the project material.
- The final project might include one or more quizzes with a limited amount of time to answer (12 hours). Those quizzes will be announced in advanced.
- A functional implemetation, with minimum requirements of the course project is required.
- In order to pass the course it is required to meet all following conditions (
AND
, notOR
): - Sum of all points is at least 31 (out of 60)
- Each one of the two blocks (C programming exercises and embedded programming course project) should have at least 16 points each.
- Final project fulfill minimum requirements (more information provided in the project report)
- Students are able to answer correctly oral questions done during the final assessment meeting. Those questions are related to their project work. Student should be able to explain theoretical concepts in their implementation. All students in the group should be able to answer those questions. If students show a lack of knowledge in the topic or are not able to explain how they have implemented different aspects of the code, cannot pass the project work part and then will fail in the course.
- Students have a minimum number of correct answers in the time limited quizzes. If they do not reach that minimum it is not warranteed that students pass the course.
Special path for students aiming for 1.
- Students should have at least 16 points in the C Lovelace exercises
- Students must complete the project work fullfilling minimum requirements (more information in the final project)
- Students should present the work in the assesment meeting and explain their code and main challenges
- Students should have a minimum number of correct answers in the time limited quizzes. Some of those time limited quizzes might be open ONLY to students that opt for 1.
Points Range | Grade |
< 31 | 0 |
31 - 36 | 1 |
37 - 42 | 2 |
43 - 48 | 3 |
49 - 54 | 4 |
55 - 60 | 5 |
Students from previous years¶
- Students who took the course the previous year (2023) does not need to implement the whole course again.
- Grade from C exercises can be kept
- Grade from Embedded Programming Project Work can be kept
- Grade from Assembly language exercises can be kept
- Grade from Assembly project exercises can be kept
- Students need to follow 2024 assessment criteria (including project work specifications and exercises) to pass the missing block.
- Students need to inform the course staff as soon as possible from which of these blocks they would like to keep the grade for 2024
- As a general rule students who implement the course before 2023 need to repeat the whole course.
- In principle, students who took Introduction to Computer Systems, cannot take Computer Systems this year, wihtout repeating the whole course.
- Only exception is that Computer Systems is mandatory course for that student. He/she should ask permission from study.itee to remove the grade from Introduction to Computer Systems and substitute it by the grade of the course Computer Systems.
Use of AI¶
By default, this course endorses to the guidelines for the use of Artificial Intelligence in Education defined by the University of Oulu.
As a particular rule of the course:
- Student can use any AI system to solve any of the questions
- If they use AI, students should include in the code:
- Which AI tool they used
- Which prompt they used
- How they modified the code obtained by the AI
- If they do not include this information, students might commit plagarism, and are subject to the general rules of the university on the subject related to ethical research.
- Students are fully responsible for the code they generate.
- If code is not working properly cannot blame the AI
- Students MUST understand the generated code
- If students are not able to answer questions related to the written code, and cannot link pieces of the code to theoretical aspects of the course **they cannot pass the course**.
Help with Exercises¶
The best way to get help outside of exercise hours is to ask on the course's Discord channel or by email at
computer-systems@lists.oulu.fi
. The easiest way for problematic exercises is to share the page found behind the "number of answers" link in the box on the left side of the task. This can be done by opening that page, copying the address from the browser's address bar, and pasting the address into your message. You can also directly click on the "Help!" link, which automatically adds the said address to the email. Remember to also mention the actual problem and your question in the message!Alternatively, you can send the code causing problems directly as an email attachment along with your question and the feedback given by Lovelace; without the code file (or your attempted answer), it's often impossible to guess the cause of the problem. Do not attach images to your email!