Main Content

Technical Computer Science (Winter term 2023/2024)

Micro-Controller
Foto: iStock

Lecturer: Prof. Dr. Thorsten Thormählen
Module name: CS 140
Language of lecture: German

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.

Qualification objectives

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.

Organization

The course consists of a lecture (4 hours per week) and exercises (2 hours per week).
Lecture: Tue 12h15 - 13h45, (H | 05) HS +5/0030 (HS A) and Thu 08h30 - 10h00, (B | 01) HS +1/0020
Exercises: Tue 14h15 - 15h45, (H | 05) HS +5/0030 (HS A)

Course Structure

  1. Introduction and historical background
  2. Representation of numbers and characters
  3. Boolean algebra
  4. Normal Forms
  5. Conversion and minimization
  6. Time behavior and hazards
  7. Logic circuits
  8. Memory
  9. CPU
  10. Machine language and assembler
  11. Processor architectures

Lecture slides

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.

Interactive demonstrations

 Several lecture slides contain interactive demonstrations. These are listed here:

1.2 Japanese abacus (Soroban) demo
1.2 Chinese Abacus (Suan Pan) demo
1.2 Napier's Bones demo
2.1 Positional Notation demo
4.1 Normal Forms demo
5.2 Karnaugh Maps demo
5.3 Quine–McCluskey algorithm demo
6.1 Amilosim (A Minimalistic Logic Simulator) demo
9.1 CPU Simulator demo

OnlineClicker.org

During the lectures, short anonymous polls are conducted. Students can participate by opening the website OnlineClicker.org.

OnlineQuestions.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.