8 ECTS cr
|Language of instruction
Lecturing in Finnish, course and exercise material available in English.
Autumn, periods 1-2.
Upon completion of the course:
Student understands the basic computer architecture and organization.
Student understands CPU operation and basic datapath operation.
Student knows different number systems and data representations in computers.
Student is familiar of I/O operation with peripheral devices in general.
Student is able to implement small programs with the C programming language for general-purpose computers for embedded systems.
Student is able to implement small assembly language programs.
Student recognizes how embedded systems programming is different from programming general-purpose computers.
Overview of computer architecture and organization, CPU and datapath, memory hierarchies, data types, interrupts, registers and I/O, basics of the C programming language and basics of assembly language. Embedded systems programming.
|Mode of delivery
Web-based teaching and face-to-face teaching, if applicable.
|Learning activities and teaching methods
Lectures (32h), course exercises (10-30h), laboratory exercise (3h) and two course projects, one is completed in a group and the other alone.
2nd year students of computer science and engineering and 3rd year students of Electronics and Communications Engineering.
|Prerequisites and co-requisites
Elementary programming 521141P.
|Recommended optional programme components
The course is an independent entity and does not require additional studies carried out at the same time.
|Recommended or required reading
Lecture notes and exercise material are available in the course website.
Bryant & O'Hallaron, Computer Systems: A Programmer's Perspective, 3rd Edition, Chapters 1-9.
Patterson & Hennessy, Computer Organization and Design: The Hardware/Software Interface, 5th Edition, Chapters 1-2, 4-5.
Patterson & Hennessy, Computer Organization and Design, 5th Edition: The Hardware/Software Interface, 2014.
Bryant & O'Hallaron, Computer Systems: A Programmer's Perspective, 2016.
|Assessment methods and criteria
The assessment criteria is based on the learning outcomes of the course. Students complete the course exercises, participate to the laboratory exercise and complete the course projects. Assessment is based on the exercises and the course projects. More detailed information on assessment is published in the lecture material.
Numerical grading scale 1-5, zero stands for fail.
|Working life cooperation
Visiting lectures with experts from local industry are possible.
The course learning platform is Lovelace (lovelace.oulu.fi).