![in English](../../kuvat/flag-uk-25x21.gif)
![suomeksi](../../kuvat/flag-fi-25x21.gif)
Tietokoneen toiminta (4 op), Kevät 2010
Computer Organization I (4 cr), Spring 2010
If you are attending this course
in Spring 2010 and want information (and practice session) in English,
please email the instructor (Teemu.Kerola (at) cs.helsinki.fi) about
it. All information will not be provided in English unless there seems
to be demand for it.
This page will be updated whenever necessary, i.e. fairly often.
Check back at least once a week during the course. The contents of the
course may change a little, even at a late stage. There is plenty of
new course material and I am quite sure that there are still some
mistakes or inconsistencies remaining there. I appreaciate all feedback
concerning the course material. Thank you.
There are pretty many instructions, but you should read and follow them to pass the course. The 15 minutes used reading the instructions will save at least 60 minutes of your time later on. Please read all instructions, especially this schedule page. Thank you.
The group meetings begin on the 1st week of the course. Study circles are formed in that meeting. There is tentatively one English speaking study circle group meeting time reserved. Please be there at that 1st study circle group meeting. If you do not belong to to any study circle after the first week, you should contact your instructor immeadiately. Students not belonging to any study circle will be removed from the course roster after the 2nd week. Study circles and their members are shown in projekt pr2 status page.
If you cancel you participation for this course, it is polite to inform your own study circle about it, so that no unnecessary strain in caused to them. You can contact them via email or phone. If a student is not heard for a while (2-3 days?), study circle may deem that student lost and act accordingly. Study circles should not wait for vanished members too long, because the course is only 6 weeks long.
Notice 1: All students must have an account for the Computer Science Department's Linux and Windows systems. Minoring students must first get a UNIX account, or cc account, from the IT Department.
Notice 2: In order to be recognized in the course bookkeeping, all students must have registered for this course through the ILMO system at the department. If you have not registered yet, please do so now. Please give your student id in your ILMO information. Thank you.
Goals
The main goal of the course is to understand the focal 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.
This goal is described in more detail in the course description and learning goals.
Course format: Study Circle and Web Course
The course will be realised through study circles. This means that, instead of so-called normal exercise sessions, the students are divided into smaller teams (study circles) where they complete normal exercises as well as larger projects together. The idea behind study circles 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. Study circles have one compulsory meeting every week with their instructors, and they can meet at other times if they want to.
This course is a web course. This means that it includes the use a considerable amount of online material, and the systematic use of online communication inside the course. Though this is an web course, it cannot be completed purely as a distance course. Most of the learning process should happen during individual work and teamwork, but it is still necessary to be present at campus at some points in the course.
Only the opening and summary lectures are normal lectures. Learning material is covered with web lectures and tect book.
(For Finnish speaking students we also have a weekly summary/duiscussion lecture, but that is only in Finnish. Sorry.)
I recommend that you buy Stallings' book ([Stal10], [Stal06] or [Stal03]) as a remedial text, though it is not absolutely necessary. It is hardly worth it to buy Tanenbaum's book ([Tane10], [Tane06] or [Tane99]) just for this course.
- [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
General Information
- Please see the course homepage http://www.cs.helsinki.fi/teemu.kerola/tito/index.html for general matters in connection with the course (i.e. other than matters specifically related to this semester's course)
- This contents page and (mixed language) Finnish contents and schedule page have all information pertaining to this lecture course. Actual weekly schedule is listed only in the Finnish contents and schedule page.
- If you want a fast response from the lecturer (e.g. the webpage does not open etc), please use e-mail. New matters concerning all students in this course will be published only on the Finnish contents and schedule page (but also in English).
Instruction Schedule
The instruction schedule contains the times when instructor will be present in person. See the Finnish contents and schedule page.
Evaluation
There are more than 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): 6 p, minimum requirement 1 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.
- Projects 14 p, minimum requirement 1 p
- Projects are graded as project points (pp) which are linearly scaled to points toward your grade.
- Project pr1: TitoTrainer programming problems: 12 pp, minimum requirement 0 pp
- Project pr2: Making practice problems: 16 pp, minimum requirement 0 pp
- Course exam: 40 p, minimum requirement 20 p
- Exam points count as is toward your grade.
- Total: 60 p (a little bit more with extra project), minimum requirement 30 p
The bookkeeping shows all course work recorded so far. Passive, inactive students will be removed. If you are still an active member in this course, but your name is missing from the bookkeeping, please contact the lecturer. Projects pr1, pr2a, and pr2b are shown in bookkeeping as HT1, HT2, and HT3.
Study Circles
All students should participate in the study circles. The study circles will remain the same throughout the course and they are formed during the first exercise session. The division of study circles is mainly based on which meeting times will suit the members, so bring your calendars. A study circle will consist of 2-4 students. In special cases, one student can form a study circle alone, but this will mean a little bit heavier workload. And why study alone when you can do it better as a team?
All students can benefit from the study circles. A student who has understood something better than another can enhance that knowledge while helping others to understand. It is easier to ask a fellow student about difficulties than to ask an instructor. Even the lone wolf will benefit from learning teamwork, since after graduation, most work in the job market will entail teamwork. 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.
Exercises and group meetings
There are weekly smaller assignments for the study circles, similar to ordinary course exercises. They can be completed individually or with your own study circle. A good way of going about this is that each student goes over the exercises by themselves and then they 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.
If you want to do homework problems (or any other course work) together with other students, there is one discussion group in course Moodle pages for just this purpose. For example "Hi, Maija and John are doing homeworks in room XYZ, starting at 14.30 today. Do you want to join us?" or "We just started working on homework ABC in room XYZ. Do you want to help us?". It is up to you how to utilize this channel.
We will use a group meeting system, where assignments 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 at least one student who would have 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 practice session. There is not enough time to cover all problems if you do not familiarize yourself with them in advance.
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 discussion 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.
In the English speaking practice session one or more tables may be in English as needed. If it is in English, then all discussions (and presentations, questions and answers) will be in English. All students participating in English practice session should be prepared to join English speaking tables.
It is especially rewarding to explain some topic to another student that has already worked the problem but not quite mastered it yet. Helping other to learn is good for both, 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.
The goal of homeworks is learning, not just getting hwp's for passing the course or for better grade. Learning occurs especially when thinking about and solving the problem and when discussing the solution and the solution method with other students. Yiou 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.
Authorware Web Lectures
Only the first 4 web lectures are in English. Sorry.
NOTE: Authorware Web lectuers are now also in flash-format, which can be viewed (and listened) with any browser with flash plugin. However, the flash versions do not have the nice interactive features, and each lecture forms just one large contininuos lecture. The size of Flash-format lectures is quite large, some 6-23 MB per lecture.
NOTE #2: Now that the Authorware lectures have been ported to Flash, their development is discontinued. So, there not much use to send bug reports any more. The bug report buttons do not even work in Flash versions. Of course, if you find big errors or servers are down, you could still email me about it ASAP.
To follow an online lecture, you need a plug-in (Macromedia Authorware Web Player) for your browser. It is a standard feature in the department's Windows computers for students. (You cannot install it yourself on the department's computers; neither can you install any other browser plug-ins.) This plug-in only exists for the Windows environment and it works best in the Internet Explorer. Sorry. You can test the plug-in here. The system gives certain relevant warnings when starting the plug-in, but as far as I can see, it is safe to use.
On Computer Science Department computers, students can also follow the online Authorware lecture from a Linux environment through the Windows 2003 Terminal Server. The server enables the 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. The Authorware plug-in is already installed into the IE on this server. If you want more control over remote access software, you can use the rdesktop (http://www.rdesktop.org) program with the command "/usr/local/bin/rdesktop winserver".
If you have any problems with the Authorware Web Player plug-in, please report them to the person in charge of the course.
There is a User's Manual and a FAQ (mostly in Finnish, sorry) for the use of the online lectures. They are available on the web and accessible from the online lectures, as well.
Web-lectures are also accessible from their common contents page (only in Finnish, sorry).
Titokone and TitoTrainer
We get acquanted with (symbolic) machine language programming with the ttk-91 computer and its (symbolic) assembly language, designed by Auvo Häkkinen especially for educational use [Häkk98]. We have Titokone simulator environment for assembly language development, running and animation. We learn to use Titokone with programming assignments. Titokone has simple installation and basic use guide.
We also have TitoTrainer (version 2, TitoTrainer2) with which we can automatically check correctness of ttk-91 programs. TitoTrainer keeps track of completed problems and you get points towards your grade from them. Part of the problems are done as normal homework, and the rest in project pr1.
TitoTrainer has still teething problems. Please be patient and report new features and problems to the instructor. Also, if some problems are not clearly specified, please let me know. Thank you.
TitoTrainer requires its own user id and password. Create them by clicking "Sign up" hypertext in TitoTrainerin sign-up page. Make your id part of TitoTrainer course "Kevät 2010".
TitoTrainer-problems have include classification information in their names (e.g., a-150 Simple code segment), where the first letter is the level :
- beginner, simple code, if-then-else, loops
- more complex code, data structures
- calling subroutines, advanced machine code, code optimization
- subroutine implementation, multi-dimensional arrays
- complete programs with subroutines, device driver
- self modifying code, anything
The 3-digit number behind the level give a difficulty within that level (100=easy, 900=difficult). It is recommended, that problems are done 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.
Titokone was implemented by Koski software design project in Spring 2004. TitoTrainer was implemented by Kohahdus software design project in Autumn 2006, utilizing earlier prototype designed by Koskelo software design project in Autumn 2004. TitoTrainer2 was preliminary implemented by NextTito software design project in Autumn 2008, based on the original TitoTrainer spesifications and definitions. Martin Pärtel completed the product version Spring 2009. TitoTrainer2 is also used in Aalto University.
Projects
Project 1 (pr1) is done independently and it includes more ttk-91 programing practice with TitoTrainer.
Project 2 (pr2) is done in a study circle and it includes making two new practice problems. The project is returned in two parts (pr2a and pr2b).
The projects are graded with project points (pp) which are given based on quality of the work and partly on student participation (pr2).
HY Moodle
HY Moodle is Univ of Helsinki Moodle installation. It is a general learning platform for web-learning, but for this course it is used mostly for implementing dicussion groups. Sign up to course "titoK2010" with key "titomoodle".
Common area includes mostly discussion groups, including the above mentioned discussion group to synchronize doing homeworks with other students.
Study circles may create their own group in the course Moodle pages. To achieve this, (a) all study circle members must first visit the course Moodle page once, (b) mail your wish to greate a Moodle group to the lecturer (include group name and names of all students in the group), and (c) the lecturer creates the group. You will have some group tools in your own group, like a wiki and discussion groups. If you need more tools, let me know.
Contents and schedule
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
The rest of the schedule page information (exact schedule and references) will be only on the Finnish Schedule Page. Please read it from there. New information given during the course will be at the beginning of that page. The text given in English is colored green.
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)
![in English](../../kuvat/flag-uk-25x21.gif)