SoSe 23  
Mathematics and...  
Core subject Co...  
Course

SoSe 23: Lehramt für Informatik

Core subject Computer Science (90 cp / Teacher Education, 2009 study regulations)

0087b_k90
  • Object-Oriented Programming

    0086bA1.2
    • 19300101 Lecture
      Object-oriented Programming (Wolfgang Mulzer)
      Schedule: Di 12:00-14:00, Mi 12:00-14:00, zusätzliche Termine siehe LV-Details (Class starts on: 2023-04-18)
      Location: T9/Gr. Hörsaal (Takustr. 9)

      Additional information / Pre-requisites

      Prerequisites

      background as taught in the class "Functional Programming".

      Please also sign up for the class in our KVV.

      Comments

      Contents

      • foundations of computability:
        • universal register machines
        • syntax and operational semantics of imperative programming languages
      • formal methods for the specification and verification of imperative programs:
        • assertions,
        • Hoare-calculus, partial correctness, termination
      • imperative and object-oriented programming concepts (Java):
        • primitive and composite data types,
        • methords (procedures and functions). calling conventions, overloading
        • modules, classes, objects
        • class hierarchies, inheritance, polymorphism
        • abstract classes, interfaces
      • programming methods:
        • stepwise refinement
        • divide and conquer
        • backtracking
      • analysis of time and space requirements:
        • O-notation
        • recursion and iteration
        • analysis of algorithms for sorting and searching
        • algorithms, data structures, data abstraction

      Suggested reading

      • Concepts of Programming Languages, Robert Sebesta, Pearson Education , 10th Edition, 2012, ISBN: 0131395319
      • Data Structures & Problem Solving Using Java, Mark Allen Weiss, Addison Wesley, 4. Auflage, 2010, ISBN: 0-321-54140-5
      • Cormen, Leiserson, Rivest: Introduction to Algorithms, 3. Auflage 2009,
      • Bundle of algorithms in java, third edition, parts 1-5. Sedgewick Robert und Michael Schidlowsky. Addison-Wesley Longman, Amsterdam. 2003.

    • 19300104 PC-based Seminar
      Practice seminar for Object oriented Programming (Wolfgang Mulzer)
      Schedule: Mo 12:00-14:00, Mo 14:00-16:00, Di 14:00-16:00, Di 16:00-18:00, Mi 16:00-18:00, Do 12:00-14:00, Fr 12:00-14:00, Fr 14:00-16:00, zusätzliche Termine siehe LV-Details (Class starts on: 2023-04-18)
      Location: T9/046 Seminarraum (Takustr. 9)
  • Non-Sequential Programming

    0086bA1.4
    • 19322101 Lecture
      Concurrent and Distributed Programming (Barry Linnert, Claudia Müller-Birn)
      Schedule: Mo 14:00-16:00, Mi 12:00-14:00, zusätzliche Termine siehe LV-Details (Class starts on: 2023-04-19)
      Location: Hs A (Raum B.006, 200 Pl.) (Arnimallee 22)

      Comments

      Website: https://www.mi.fu-berlin.de/w/SE/VorlesungNichtseq_Vert_Prg2021

       

      Contents:

      Programming and synchronization of concurrent processes that share resources or interact through message passing.

      • Non-Sequential programs and processes in their various forms, non-determinism, determinism
      • Synchronization mechanisms: locks, monitors, guards, events, semaphores
      • Non-Sequential program execution and object oriented systems
      • Control flow, strategies selection, priorities, handling and avoiding deadlock
      • Coroutines implementation, 
      • - Multiprocessor systems
      • Programming and Synchronisation of concurrent processes that interact through message passing
      • Remote Calling Techniques
      • Client-server, Peer-to-peer Networks
      • Parallel computing over networks
      • Concurrent and coordination languages
      • Processing on the server and on the client.
      • Middleware, structured communication, static and dynamic interfaces
      • Event-based and stream-based processing
      • Security of network applications
      • Non-functional Aspects (time, memory, quality of service)

      Suggested reading

      Literatur:

      • Principles of Concurrent and Distributed Programming. M. Ben-Ari. Addison-Wesley. 
      • Distributed Systems. Concepts and Design. Fifth Edition. George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair. Pearson.

    • 19322102 Practice seminar
      Practice seminar for Concurrent and Distributed Programming (Barry Linnert, Claudia Müller-Birn)
      Schedule: Mo 16:00-18:00, Di 08:00-10:00, Di 10:00-12:00, Di 12:00-14:00, Do 08:00-10:00, Fr 08:00-10:00, Fr 12:00-14:00, Fr 14:00-16:00 (Class starts on: 2023-04-18)
      Location: T9/051 Seminarraum (Takustr. 9)
  • Software Technology

    0159bA1.2
    • 19301401 Lecture
      Software Engineering (Lutz Prechelt)
      Schedule: Mo 12:00-14:00, Do 12:00-14:00, zusätzliche Termine siehe LV-Details (Class starts on: 2023-04-17)
      Location: T9/Gr. Hörsaal (Takustr. 9)

      Additional information / Pre-requisites

      Target group

      • compulsory module in BSc of Computer Science
      • elective module in Computer Science Minor
      • MSc school teacher students (Großer Master mit Zweitfach Informatik) may chose this module together with  "Praktikum SWT (19516c)", thereby replacing modules "Net programming" and "Embedded Internet"

      Requirements

      ALP III or Informatik B

      Language

      The course language is German, including all slides and practice sheets. A minority of slides is in English.

      The exam is formulated in German, but answers may be given in English, too.

      Homepage

      http://www.inf.fu-berlin.de/w/SE/VorlesungSoftwaretechnik

      Comments

      Content

      Software Engineering is the science of software construction on a grand scale, that is the basic course of systems engineering.

      Software Engineering aims at giving answers to the following questions:

      • How to find out which characterstics a software should have (requirements engineering)
      • How to describe these characteristics (specifcation)
      • How to structure software so that it may be built easily and changed flexibly (design)
      • How to change software which does not have such a structure or whose structure you do not understand (anymore) (reengineering)
      • How to disguise defects in software (quality assurance, test)
      • How to organise the tasks in a software company or department to regularly achieve cost-efficient and high-quality results (process management)
      • Which (largely common) problems underlie all of these questions and which (mostly common) general approaches underlie the methods and techniques that are used

      ...and many similar ones.

      This lecture gives an overview of the methods and provides essential basic knowledge for any computer scientist working as an engineer.

      More detailed information may be found on the homepage http://www.inf.fu-berlin.de/w/SE/VorlesungSoftwaretechnik

      Suggested reading

      Bernd Brügge, Allen Dutoit: Objektorientierte Softwaretechnik mit UML, Entwurfsmustern und Java, Pearson 2004.

    • 19301402 Practice seminar
      Practice seminar for Software Engineering (Linus Ververs, Lutz Prechelt)
      Schedule: Di 08:00-10:00, Di 12:00-14:00, Mi 12:00-14:00, Do 10:00-12:00, Fr 12:00-14:00, Fr 14:00-16:00 (Class starts on: 2023-04-18)
      Location: A7/SR 031 (Arnimallee 7)
  • Operating and Communication Systems

    0086bA2.3
    • 19300701 Lecture
      Operating and Communication Systems (Jochen Schiller)
      Schedule: Fr 10:00-12:00 (Class starts on: 2023-04-21)
      Location: T9/Gr. Hörsaal (Takustr. 9)

      Comments

      The module operating and communication systems closes the gap between the hardware of a computer and the applications.

      We will cover the following topics::

      • I/O systems
      • DMA/PIO
      • Interrupt handling
      • Buffers
      • Processes/threads
      • Virtual memory
      • UNIX and Windows
      • Shells
      • Utilities
      • Peripherals and networking
      • Networks
      • Media
      • Media access
      • Protocols
      • Reference models
      • TCP/IP
      • The Internet

      Suggested reading

      • Andrew S. Tanenbaum: Computerarchitektur, 5.Auflage, Pearson Studium, 2006
      • English: Andrew S. Tanenbaum (with contributions from James R. Goodman):
      • Structured Computer Organization, 4th Ed., Prentice Hall International, 2005.

    • 19300704 PC-based Seminar
      Practice seminar for Operating and Communication Systems (Jochen Schiller, Larissa Groth)
      Schedule: Mo 12:00-14:00, Mo 14:00-16:00, Mi 14:00-16:00, Do 14:00-16:00, Fr 08:00-10:00, Fr 16:00-18:00, zusätzliche Termine siehe LV-Details (Class starts on: 2023-04-19)
      Location: T9/K 038 Rechnerpoolraum (Takustr. 9)

      Comments

      Begleitveranstaltung zur Vorlesung 19300701

  • Fundamentals of Theoretical Computer Science

    0086bA3.1
    • 19301201 Lecture
      Foundations of Theoretical Computer Science (László Kozma)
      Schedule: Mo 10:00-12:00, Mi 10:00-12:00, zusätzliche Termine siehe LV-Details (Class starts on: 2023-04-19)
      Location: T9/Gr. Hörsaal (Takustr. 9)

      Comments

      Contents:

      • models of computation
        • automata
        • formal languates
        • grammars and the Chomsky-hierarchy
        • Turing-machines
        • computabilty
      • introduction to the complexity of computational problems

      Suggested reading

      • Uwe Schöning, Theoretische Informatik kurzgefasst, 5. Auflage, Spektrum Akademischer Verlag, 2008
      • John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Einführung in die Automatentheorie, Formale Sprachen und Komplexität, Pearson Studium, 3. Auflage, 2011
      • Ingo Wegener: Theoretische Informatik - Eine algorithmenorientierte Einführung, 2. Auflage, Teubner, 1999
      • Michael Sipser, Introduction to the Theory of Computation, 2nd ed., Thomson Course Technology, 2006
      • Wegener, Kompendium theoretische Informatik - Eine Ideensammlung, Teubner 1996

    • 19301202 Practice seminar
      Practice seminar for Foundations of Theoretical Computer Science (László Kozma)
      Schedule: Mo 12:00-14:00, Di 08:00-10:00, Di 14:00-16:00, Di 16:00-18:00, Mi 08:00-10:00, Mi 14:00-16:00, Mi 16:00-18:00, Do 14:00-16:00, Do 16:00-18:00, Fr 14:00-16:00 (Class starts on: 2023-04-18)
      Location: T9/051 Seminarraum (Takustr. 9)
  • Proseminar: Computer Science

    0086bA3.2
    • 19301610 Proseminar
      Undergraduate Seminar: Computer Systems (Jochen Schiller)
      Schedule: Di 10:00-12:00, zusätzliche Termine siehe LV-Details (Class starts on: 2023-04-18)
      Location: T9/051 Seminarraum (Takustr. 9)

      Comments

      Wechselnd, aufbauend auf der Vorlesung TI II: Rechnerarchitektur

      Suggested reading

      Wird mit der Ankündigung bekannt gegeben.

    • 19301710 Proseminar
      Undergraduate Seminar: Theoretical Computer Science (Mahmoud Elashmawi)
      Schedule: Di 16:00-18:00 (Class starts on: 2023-04-18)
      Location: T9/055 Seminarraum (Takustr. 9)

      Comments

      Contents

      The proseminar delves more deeply into topics covered in the basic classes taught by the theory group. During the winter semester, we consider advanced topics from the theory of computability and of formal languates (in continuation of "Theory of Computation"); during the summer semester, we talk about algorithms (in continuation of "Algorithms, Data Structures, and Data Abstraction").

      Prerequisites

      two semesters of computer science, successful completion of "Theory of Computation"

      Suggested reading

      wird mit der Ankündigung bekannt gegeben

  • Database Systems

    0086bA3.3
    • 19301501 Lecture
      Database Systems (Agnès Voisard)
      Schedule: Di 14:00-16:00, Do 14:00-16:00, zusätzliche Termine siehe LV-Details (Class starts on: 2023-04-18)
      Location: T9/Gr. Hörsaal (Takustr. 9)

      Additional information / Pre-requisites

      Requirements

      • ALP 1 - Functional Programming
      • ALP 2 - Object-oriented Programming
      • ALP 3 - Data structures and data abstractions
      • OR Informatik B

      Comments

      Content

      Database design with ERM/ERDD. Theoretical foundations of relational database systems: relational algebra, functional dependencies, normal forms. Relational database development: SQL data definitions, foreign keys and other integrity constraints, SQL as applicable language: essential language elements, embedding in programming language. Application programming; object-relational mapping. Security and protection concepts. Transaction subject, transactional guaranties, synchronization of multi user operations, fault tolerance features. Application and new developments: data warehousing, data mining, OLAP.

      Project: the topics are deepened in an implementation project for student groups.

      Suggested reading

      • Alfons Kemper, Andre Eickler: Datenbanksysteme - Eine Einführung, 5. Auflage, Oldenbourg 2004
      • R. Elmasri, S. Navathe: Grundlagen von Datenbanksystemen, Pearson Studium, 2005

    • 19301502 Practice seminar
      Practice seminar for Database systems (Muhammed-Ugur Karagülle)
      Schedule: Mi 10:00-12:00, Mi 14:00-16:00, Do 10:00-12:00, Fr 12:00-14:00, Fr 14:00-16:00, Fr 16:00-18:00 (Class starts on: 2023-04-19)
      Location: T9/055 Seminarraum (Takustr. 9)
    • Functional Programming 0086bA1.1
    • Data Structures and Data Abstraction 0086bA1.3
    • Software Lab 0087bA1.6
    • Application Systems (The Impact of Computer Science) 0159bA1.1
    • Fundamentals of Computer Systems 0086bA2.1
    • Computer Architecture 0086bA2.2
    • Logic and Discrete Mathematics 0086bA4.1
    • Student Teaching Lab: Computer Science 0087bA4.3