581305-6 Computer Organization I, 4 cr
Position in Curriculum
Undergraduate course in Computer Science. Obligatory for intermediate studies for those majoring in CS, elective for basic studies in CS.
Prerequisites
Introduction to Programming course (or similar).
Learning Goals
Understand salient features of a Computer System from the executing program viewpoint: what are the computer system components and how they execute a given program. The emphasis is on the execution of one program at the (symbolic) assembly language level.
The assembly language level operation of a processor is viewed both in general as well as in operational level using a simple example machine (ttk-91), its (symbolic) assembly language, and simulator that runs assembly language programs developed for that machine. We also look at the operating system role in the program execution.
Learning goals are better described in specific learning goals page (so far only in Finnish, sorry).
Credit Methods
You can get credit for the course (a) by participating in a study circle web course or (b) taking a final exam. The study circle web course is given every Spring. Please notice that the course exam for the lecture course can not be used as a final exam. All exams can be taken in English, but you need to confirm this with the instructor one week before the exam.
The study circle course involves- lectures 4h (only in Finnish, sorry)
- independent study web lectures (first few also in English)
- independent study from text book
- practice problems, dicussion problems and projects done independently or with study group
- automatically reviewed programming problems
- guided practice sessions 2h/week for 6 weeks
- course exam (in English when needed, confirm with the instructor)
Final exam covers all course material given below. It does not include anything else and one does not get credit for possible earlier course work. Final exams cover the same topics as those of the most recent lecture course.
Course Material
- [Stal06], luvut 1-2, 3-3.1, 4.1, 5-5.2, 6-6.1, 7-7.5, 8-8.2, 9-9.2, 10, 11.1, 12.1-3
- [Tane06], luvut 4.2, 5-5.1.4, 7.3-7.4
- Example computer ttk-91 and programming with it: Titokone, TitoTrainer
- General description and operation of Ttk-91: see web lectures lu02e, lu03e ja lu04 (last one only in Finnish)
Contents
- Overall Computer System
- TTK-91 computer and Titokone simulator
- Pregram representation in system and assembly language programming
- CPU and bus basic structure, processor states
- Data representation and error correction codes
- Internal and external memory
- I/O implementation and I/O devices
- Implementing and executing programs in the system, process and its states
- Compilation, linking and loading
- Execution of Java programs
References
- [Stal06] William Stallings, Computer Organization and Architecture - Designing for Performance, 7th Ed., Prentice Hall, 2006.
- [Tane06] Andrew S. Tanenbaum, Structured Computer Organization, 5th Ed, Prentice-Hall, 2006.
- Example computer ttk-91 and programming with it: Titokone.
Teemu Kerola