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.
- foundations of computability:
-
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)
-
19300101
Lecture
-
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)
-
19322101
Lecture
-
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)
-
19301401
Lecture
-
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
-
19300701
Lecture
-
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
- models of computation
-
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)
-
19301201
Lecture
-
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
-
19301610
Proseminar
-
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)
-
19301501
Lecture
-
-
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
-