Tietokoneen toiminta : English information

The main goal of the course is to understand the key features of a computer system from the aspect of the executable program; how is the computer system organized and how does it execute a program? The focus is on running one program at the machine-language level on a single processor.

This goal is described in more detail in old course description and learning goals.

 

Course format

Course has lectures in Finnish, web lectures (four first ones in English also), weekly exercise sessions and study team tasks. The English-speaking students need to also read a course book, because majority of the lectures are only in Finnish.

I recommend that you get Stallings' book on Computer Organization & Architecture ([Stal10], [Stal06] or [Stal03]). If you have access to Tanenbaum's book on Structured Computer Organization ([Tane10], [Tane06] or [Tane99]) instead, it is just fine to use it.

  • [Stal10] or [Stal06], chapters 1-2, 3-3.3, 4.1, 5-5.2, 6-6.1, 7-7.5, 8-8.2, 9-9.2, 10
  • [Tane10] or [Tane06], chapters 4.2, 7.3-4

You can find the course schedule from the Finnish page 'Aikataulu'.

 

Evaluation

There are 60 p available, and 30 p is needed to pass. Normal grade levels are: 1 (30 p), 2 (35 p), 3 (40 p), 4 (45 p) ja 5 (50 p). These can be changed if needed.

Grading is composed on the following components:

  • Homeworks (including some TitoTrainer problems): max 6 p
    • Homeworks are graded as homework points (hwp, htp), which are linearly scaled to points toward your grade. You get the maximum points with some 90% of max hwp.
  • Titotrainer tasks: max 6 p, minimum requirement 3 p
    • 10 solved problems gives one point and every 8 more gives another point.
  • Study team project: max 6 p
  • Course exam: 42 p, minimum requirement 20 p

 

Study teams or study circles

The students are divided into study teams (3-5 students) where they can study together the material and do titotrainer tasks and weekly exercises. Study teams will remain the same throughout the course. Each team must also produce a report of their work as attachment to the team assignment. The idea behind study teams is that people learn better when they learn together. When students explain things to each other, they learn themselves and/or discover gaps in their own knowledge.

The general principles of study circles at the department of Computer Science are described in the guide by Kurhila & Lokki, "Opintopiirikurssien opettajan opas.” Attachment 5 of the guide is a guide for students. You will find it translated here. A Study Circle Contract, given in the same guide, will be signed when study circles are formed.

Report (return at the latest Friday Feb 25, 2011 on paper to room D225 on in moodle).

Report must have a cover page (names of the team members, who participated in writing the report), a topic part (3 pages) and an analytic part (1-2 pages).

The topic part should explain what happens to a program from the writing to the execution. Explain also the process execution. All steps in the sequence at not at the focus of this course, so they can be just briefly mentioned. Try not to jump over any step in the sequence. You will not be able to include all interesting details to the given numebr of pages, so focus on the key parts.

The analytic part shoud explain how did your study tem work. What did you do, how often did you meet, etc.  You may also give feedback and suggestions for improving the course.

 

Weekly exercise sessions

Problems 1 Problems 2
Problems 3
Problems 4
Problems 5
Problems 6
Solution 1 Solution 2
Solution 3
Solution 4
Solution 5
Solution 6

 

The weekly exercise problems can be completed individually or with your own study team. A good way of going about this is that each student goes over the exercises by themselves first and then solve them together in the study circle. Each student should learn the subject matter of the exercises thoroughly, preferably before the exercise is discussed at the weekly group meeting. Students get points for the exercises according to their difficulty level, but only for completed exercises and only if present at their own group meeting.

We will use a group meeting system, where problems are discussed only in student-led small discussion groups. The instructor assigns students into tables trying to assign students so that in each table for each problem there would be at least one student who has solved it. You may assume that all students have at least tried to solve all homework problems. If someone has not, then he/she can not get maximum gain from the session.

Correct solutions are given in the practice session to each table so that you can evaluate the correctness of your solutions. The correct solutions will be placed into web the following week. Once the table has discussed all homeworks, they can continue discussions based on the additional topics given with the model solutions. If the table is completely done, its members may join other tables as consultants. However, everybody will stay in the class room.

It is especially rewarding to explain some topic to another student that has already worked the problem but not quite mastered it yet. Helping others to learn is good for everyone, and usually the one doing the teaching will learn more. However, please do not ruin a good homework by giving the answer directly - that will not induce so much learning. Good learning is achieved by alternating (a) independent study, (b) problem solving, and (c) discussions on problems and their solutions with other students. You do not learn as much by just reading the given solutions. There are similar examples in lecture notes and text books, so using homework solutions as readable examples is a waste of good homeworks.

The instructor will consult all tables as needed.

 

Web Lectures

The web lectures created by Teemu Kerola are available both in Authorware and flash-format. The Authorware version gives you more control on the progress of the lecture.

The Authorware version works only in Windowsm, but on Computer Science Department's computers, students can follow the online Authorware lecture from a Linux environment through the remote Windows Server. The server enables the remote use of Windows environment and programs, even from Linux computers. You can access the server from department Linux computers simply with the command “windows”. This opens a login box to the Windows system. Login with your usual CS Department username and password.

There is a User's Manual and a FAQ (mostly in Finnish, sorry) for the use of the Authoware-based online lectures. They are available on the web and accessible from the online lectures, as well.

Web-lectures are accessible from their common contents page (mainly in Finnish). Only the first 4 web lectures are in English.

 

TitoTrainer and Titokone

You get acquanted with (symbolic) machine language programming with the ttk-91 computer and its (symbolic) assembly language, designed by Auvo Häkkinen in 1991 especially for educational use [Häkk98]. You may use Titokone simulator environment for assembly language development, running and animation. Titokone has simple installation and basic use guide.

You must use the TitoTrainer (version 2, TitoTrainer2) to record your progress in learning the assembly language. TitoTrainer2 will automatically check correctness of ttk-91 programs. It keeps track of completed problems and you get points towards your grade based on the number of solved problems. Part of the problems are already done as part of the weekly exercises.

TitoTrainer requires its own user id and password. Plese do not use the password used to log in to oodi, mappi or department's computers. Create your account by clicking "Sign up" hypertext in TitoTrainerin sign-up page. Make your id part of TitoTrainer course "Kevät 2011".

TitoTrainer-problems include classification information in their names (e.g., a-150 Simple code segment), where the first letter is the level :

  1. beginner, simple code, if-then-else, loops
  2. more complex code, data structures
  3. calling subroutines, advanced machine code, code optimization
  4. subroutine implementation, multi-dimensional arrays
  5. complete programs with subroutines, device driver
  6. self modifying code, anything

The 3-digit number after the level gives a difficulty within that level (100=easy, 900=difficult). It is recommended that problems are solved in level/difficulty order. Problems with difficulty 700 at any level may be challenging. Problems with difficulty 900 require deeper understanding beyond the learning goals for this course.

 

The Spring 2010 course has more explanations for this course.