Technical Computer Science (Winter term 2020/2021)
Lecturer: Prof. Dr. Thorsten Thormählen
Module Name: CS 140
Introduction and Motivation
Computer systems are omnipresent in today's professional and private life. Desktop computer, laptop, tablet, mobile phone, washing machine, television, electric toothbrush, vacuum cleaner, etc. - in every household there are numerous devices that contain computers. With the various applications and user interfaces one can easily forget that all these digital computer systems are ultimately based on the simple principle that binary numbers (these are numbers that are represented with zeros and ones) are processed by operations based on Boolean algebra. In a digital computer system you have several electrical circuits, which take over the processing and storing of binary numbers. These circuits are mainly composed of transistors, which can be considered in a simple manner as a miniaturized version of an electrically controlled on/off switch. Complex microelectronic circuits may comprise several 100 million of these very small transistors. Computer systems are capable of running different applications because of their programmability, i.e. the underlying microelectronic circuit behaves outwardly different, depending on which user program is executed. Nowadays, computer systems are typically programmed with high-level languages that make it as simple as possible for a human programmer to implement the desired functionality. Ultimately, these high-level languages must, however, be translated into a device-specific machine language that consists of specific instructions and operands in binary representation. However, often a machine instruction does not directly control the computational units, but executes internally a binary microcode that controls the switches of the computing units.
The lecture Technical Computer Science teaches basic knowledge about computer structures and microelectronic circuits. This includes the laws of Boolean algebra, the design and simplification of Boolean circuits, knowledge in the design of sequential circuits as well as knowledge of arithmetic circuits and CMOS transistors. Furthermore, the lecture provides an understanding of the structure and functionality of a central processing unit (CPU), basic skills in machine language programming, and an understanding of different computer architecture concepts. In addition, the course aims at improving the overall ability of the participants to perform scientific work, to solve problems, and to communicate.
Group 1: Wed 16h00 - 18h00, MZ 6 HS III (03A14)
Group 2: Wed 16h00 - 18h00, MZ 6 HS VI (03A11)
Group 3: Fri 14h00 - 16h00, MZ 6 HS I (03A20)
Group 4: Thu 14h00 - 16h00, MZ 6 SR II (03A21)
Group 5: Thu 14h00 - 16h00, MZ 6 HS VI (03A11)
Group 6: Thu 16h00 - 18h00, MZ 6 HS II (03A16)
- Introduction and historical background
- Representation of numbers and characters
- Boolean algebra
- Normal Forms
- Conversion and minimization
- Time behavior and hazards
- Logic circuits
- Machine language and assembler
- Processor architectures
The lecture slides are available as HTML5 websites. It is recommended to use a modern browser (such as Google Chrome, Mozilla Firefox). The slides and more details can be found at the German version of this page.
Several lecture slides contain interactive demonstrations. These are listed here:
|1.2||Japanese abacus (Soroban)||demo|
|1.2||Chinese Abacus (Suan Pan)||demo|
|6.1||Amilosim (A Minimalistic Logic Simulator)||demo|
During the lectures, short anonymous polls are conducted. Students can participate by opening the website OnlineClicker.org.
Of course, questions can be asked at any time. In addition, the tool OnlineQuestions.org is employed, which allows students to submit questions or comments anonymously or to upvote questions of other students.