Code: BIE-CSI Introduction to Computer Science
Lecturer: prof. Christoph Kirsch Weekly load: 2C Completion: A
Department: 18101 Credits: 2 Semester: W
Description:
This is an introductory class on Elementary Computer Science for broad audiences: bachelor students in computer science, students majoring in other fields but interested in computer science, high-school students, anybody with a background in basic math and the desire to understand the absolute basics of computer science.

The goal of the class is to introduce and relate basic principles of computer science for students to understand, early on, what computer science is, why things such as high-level programming languages and tools are done the way they are, and even how, on a basic yet representative and practically relevant level.

After taking the class, students are able to answer not just basic computer science questions but also questions about themselves such as which courses to take next and which books to follow up with, ideally realizing if they are interested in computer science more than expected, or even less than before.
Seminar contents:
1. Selfie
2. Language: Programming Language - Machine Code - Formal Grammar
3. Information: Bits - Numbers - Boolean Algebra - Negative Numbers
4. Information: Integers - Overflows - Characters
5. Information: Bytes - Memory - Text
6. Information: Files - Images- Video
7. Information: Audio-Code- Apps
8. Machine: Model-Processor-Memory
9. Machine: Input/Output - Instructions - Emulation - Performance
10. Programming: Literals - Variables -Expressions -Statements - Assignments
11. Programming : Loops - Conditionals- Procedures- Libraries-Apps
12. Computing - Virtual Machine - Virtual Memory
13. Computing: Runtime Systems - Computing as Utility - Cloud Computing
Recommended literature:
There is a draft of a textbook on Elementary Computer Science that is currently being developed for the class. The draft includes references to the literature relevant here.
Keywords:
Programming language, machine code, emulator, computer-science, compiler, virtual machine, teaching, symbolic-execution-engine

Abbreviations used:

Semester:

Mode of completion of the course:

Weekly load (hours per week):