Module Computer Science 1, Media Computer Science (Bachelor) (ER 6)

English language
Compact font

Color scheme

Module summary

Computer Science 1

MINB110

Prof. Dr. Carsten Sinz

/

1st Semester

none

none

The courses in this module provide fundamental knowledge of programming and theoretical computer science, which are essential skills for every computer scientist.

Students acquire basic concepts of object-oriented programming, such as modeling, selecting and creating data structures, implementation, and quality assurance. They also develop essential problem-solving skills by analyzing problems and solving them using programs.

In theoretical computer science, fundamental concepts such as formal languages, propositional logic, and formal mathematical automaton models are introduced. They are motivated by their relevance to practical applications in computer science.

Written Exam 120 Min. (graded)
Course Computer Science 1

MINB111.a

Lecture

Prof. Dr. Carsten Sinz

German

4.5/4

135 hours in total, including 60 hours of contact study.

Module exam

Students in this course will learn the fundamentals of object-oriented programming using the Java programming language.

They will become familiar with basic programming constructs such as variables, types, expressions, control structures, and arrays, enabling them to solve simple problems.

Additionally, participants will acquire initial knowledge of object-oriented design and will be introduced to fundamental concepts of object-oriented programming, such as methods, classes, objects, and fields, which they will apply in small programs.

Problem-solving paradigms such as divide-and-conquer will be introduced, along with their practical implementation using recursive programs.

Besides arrays, students will also become familiar with fundamental data structures such as lists and their implementation, enabling them to use these structures for problem-solving.

Furthermore, participants will be introduced to more advanced object-oriented programming concepts, including inheritance, interfaces, information hiding, generic programming, and polymorphism.

  • Board notes, slides
  • Exercises with solutions
  • Collection of past exams and their solutions
  • Java programs and their documentation as Javadoc
  • Additional Java exercises with solutions for further practice
  • Peter Pepper, "Learning to Program: A Fundamental Introduction with Java", Springer Verlag, 3rd edition, 2007.
Course Computer Science 1 Laboratory

MINB112

Exercise

Prof. Dr. Carsten Sinz

German

3/4

90 hours in total, including 60 hours of contact study.

Exercise 1 Semester (not graded)

In weekly exercises, students deepen their understanding of the practical content covered in the lectures.

Initially, they use terminal commands, but later transition to a professional, integrated Java development environment to create, debug, test, and modify programs.

Starting with simple calculations in Java using variables, expressions, and control structures, the assignments gradually become more complex, incorporating basic data modeling tasks. By the end, students will have programmed simple games and implemented solutions of mathematical problems, e.g., using approximation methods.

In addition to ensuring the correctness and functionality of their programs, students also learn to follow good programming practices and adhere to coding conventions — an essential skill for future work in teams.

Course Theoretical Computer Science

MINB111.b

Lecture

Prof. Dr. Heiko Körner

German

4.5/4

135 hours in total, including 60 hours of contact study.

Module exam

This course introduces the theory of formal languages. The aim is to convey the Chomsky hierarchy as a level model of differently complex languages. Furthermore, finite automata are introduced as representatives of today's computers and their limitations are pointed out. A further learning objective is the confident application of various proof techniques.


The course covers the following areas of theoretical computer science: Boolean logic, formal languages, proof techniques, the Big-O-notation, finite automata, regular languages and expressions, the Chomsky hierarchy, the pumping lemma for regular and context-free languages and the minimisation of finite automata according to the Myhill-Nerode theorem. Pushdown automata, the CYK-algorithm and closure properties of regular and context-free languages are also discussed.

  • Discussion at the blackboard
  • Lecture notes
  • Sample solutions for all exercises
  • D. W. Hoffmann: Theoretical Computer Science, 5th edition. Hanser, 2022
  • M. Sipser: Introduction to the Theory of Computation, 3rd edition. Cengage Learning, Inc, 2012

This course will take place as a pure lecture. Numerous exercises deepen selected areas and will be discussed in tutorials.