Course Telegram group is tkt_tito
It is intended for peer support for students, though course instructors may also follow the discussion. Please do not give direct answers to home works here, as that would take away good learning opportunities from your peer students.
LITERATURE AND MATERIALS
William Stallings, Computer Organization and Architecture (10th ed.), Prentice Hall, 2016.
Titokone: Programming environment, where you can compile and execute symbolic machine language programs developed for hypothetical ttk-91 computer system. The environment is designed for educational purposes only. It includes assembly language compiler, software development environment, execution simulator, and execution animator.
TitoTrainer: System that automatically checks the correctness of the answers for given Titokone programming problems. It also keeps track of problems solved for each student.
Telegram-group tkt-tito. This is intended for student peer support. Please do not give homework solutions there.
Web Lectures are old (from 2004-2005), but they are still usable. Only web lectures 1-4 are (also) in English. You do not need to use these, if you attend the lectures.
MOOC-materials are new, but they are only in Finnish. You do not need to use these, because you have lectures and the text book.
Basic topics are also covered in lectures. There is good text book (Stallings).
Course week 1 has no practice sessions. There will be also Ttk-91-workshops for assembly language programming in some course weeks.
Home works can be done alone or with some friends.
In homework sessions all problems are first discussed in each table. In this discussion you may assume that all students are familiar with problems and have at least tried to solve them. If you are not familiar with the problems in advance, you will not gain so much in the practice session as there is no time to cover each problem at that detail. The instructor present will consult each table as needed.
At the end of the practice session the instruction will give out model solutions, and there can be common discussion one some or all homework solutions. The model solutions will be collected back, but they will be available in the web the next week.
It is very helpful for your own learning to discuss and explain homework solutions to some other student, who has also worked on the same problem. Usually the student explaining the solution learns more than the student receiving help. However, please do not give other students your complete answer directly. They do not learn much from that. Good learning is achieved by alternating (a) your own studying, (b) solving practice problems, and (c) discussing problems and their various solutions with other students.
The goal of the home works is learning, not just getting points to pass the course or to get a better grade. Learning happens best when think about the problem, try to solve it your self, and then discuss your solution with other students. There are plenty of similar examples in lectures and text books. Using a homework problem solution only as readable example is a waste of good learning opportunity and a waste of a homework problem.
You will gain home work points from the practice session, but only for the problems you have done and only if you are present. You gain home work points (hwp) from the home works, based on how much work they involve. Those hwp's are then mapped to course points affecting your grade, so that some 5/6 (83%) of maximum hwp's gives you maximum points towards your grade.
Course is done by participating actively the lectures (or web lectures), reading the text book, doing home works and discussing them in the practice sessions, and learning ttk-91 programming in workshops and independently. You need to show own initiative and scheduling, so that your learning happens according to the weekly schedule.
During the lectures there are four small (45 min, 12 p) mini exams. All mini exam can be redone in the replacement exam, which is the 1st separate exam following this course. Basic principle is, that each exam can be taken twice and the best result is used.
Students practice (symbolic) machine language programming in home works, ttk-91 workshops and independently with Titokone simulator system and TitoTrainer programming environment. Mini exam 3 covers assembly language programming.
Course grade is based on mini exams (48 p) and homework sessions participation in course weeks 2-7 (12 p). To pass, you need at least 24/48 points from the exams, and at least 30/60 points overall.
Course bookkeeping (Tikli) has a place for six homework sessions (Exercises), four mini exams (Exams 1-4), and fours replacement exams (Exams 5-8). Please check every now and then, that your points are correctly marked.
Bachelor's programme in Science
Basic studies in Computer and Data Science
Compulsory course in Computer and Data Science study track in Bachelor 's Programme in Science.
Course is available to students in other programmes, including students in Bachelor's Programme in Computer Science (in Finnish).
Students should be able to write programs in some high level programming language. Any programming course will do.
Computer Organization II, Introduction to Data Communication and Operating Systems.
After successful completion of the course, the student will be able to:
- Explain large speed differences between hardware components in the system, and how they affect the overall system.
- Explain, how the processor works while executing machine instructions (fetch-execute cycle).
- Explain basic ideas in bus and memory hierarchy.
- Explain basic operation of cache and virtual memory.
- Explain different processor execution modes, and especially the purpose of privileged execution mode.
- Explain, when and how processor execution mode changes.
- Explain the meaning and implementation of interrupts at instruction execution level.
- Explain, how different types of interrupts differ from each other.
- Explain interrupt processing in the operating system with interrupt handlers.
- Implement with symbolic assembly language global variables, constants, records, 1- and 2-dimensional arrays. Explain, how these data structures are allocated space during compilation, linking and/or loading.
- Implement with symbolic assembly language branching and iterative control structures, and subroutine calls.
- Explain integer and floating point representations, and basic principles of character and string representations.
- Explain in principle, how (moving) images and sounds are represented in the system.
- Explain, how changes in floating point accuracy must be taken care of in computations.
- Explain two ways of storing multi-byte data.
- Change integer representations between number systems in base 2, 10 and 16.
- Implement memory allocation of records, objects and multidimensional arrays (stored in various ways), and references to them.
- Explain differences in memory allocation of and references to global and local data structures.
- Use activation records and activation records stack in implementing (recursive) subroutines.
- Explain the basic methods (parity, Hamming code) for data integrity.
- Explain the process concept, and its representation in the system.
- Explain different process states and and state transitions.
- Explain, when and how the process in execution is changed.
- Explain the basic components of an operating system (process, memory, file, device and network management)
- Explain basic ideas in (symbolic assembly language) compilation, linking, and loading.
- Explain the goals and basic operations of an operating systems, from the user's and system manager's viewpoint.
- Explain, how operating system is implemented with various (privileged) service routines and processes.
- Explain the advantages and disadvantages of static and dynamic linking.
- Explain the operating system device interface implementation with device drivers and interrupt handlers.
- Explain the basic ideas of file server and file cache.
- Explain the structure of a hard disk drive, and compute access time for a file in hard disk.
- Explain different I/O implementation types.
- Explain different ways to execute Java programs, and how those ways differ from each other.
- Explain the basic structure and operation of Java Virtual Machine (JVM), and select the most suitable one for given application.
- Explain the basic idea of Just-in-Time (JIT) compilation.
First year of studies, after the course Introduction to Programming.
Organized in Spring semesters as a normal lecture course in period 4.
Computer system overall structure. Processor structure.
Machine language programming, subroutine implementation (with ttk-91 computer system).
Processor and bus, data representation, data integrity, memory implementation.
Implementation of program and operating system.
External memory and I/O implementation.
Compilation, linking, and loading.
Interpretation and emulation.
Weekly lectures and exercises, four mini exams during lectures. Attendance to exercise sessions is required to get points towards your grade.
Alternatively, the course can be taken as independent self study using the text book and on-line materials. Grading is based on one final exam.
Recommended: William Stallings, Computer Organization and Architecture, 10th ed., Pearson, 2016.
Student: lectures with small group discussions, working on the homework independently, discussing homework problem solutions in practice sessions, workshop guidance for programming with Titokone, independent programming practice with TitoTrainer, participation to the exams.
Instructor and teaching assistants: creating the lecture material, lectures, supervising mini exams, homework problems and solutions, supervising practice sessions, creating exam questions and model solutions for them, supervising exams, grading the exams, supervising teaching assistants, updating course information in web, bookkeeping for the course, student grading.
Assessment is based on the exams and exercises.
Successful completion requires 50% of maximal points, including at least 50% from the exam maximal points.
Every year in the Spring semester, period IV (in English). Student proficient in Finnish can also take the same course offered every year in Autumn semester, period II (in Finnish, with practice sessions in English).