Computer Science - Courses in English - HAW Hamburg

Page created by Yvonne Elliott
 
CONTINUE READING
Computer Science - Courses in English - HAW Hamburg
Computer Science
                - Courses in English -

                      Artificial intelligence & software agents
                      Artificial intelligence & software agents (The Project)**
                      Data Analysis with Python (The Project)**
                      Data Science
                      Databases¹
                      Deep Specification
                      Embedded Machine Learning
                      MARS - Modelling & Simulation Research Project*
                      Operating Systems¹
                      RIOT in the Internet of Things (The Project)**
                      Science & Technology Studies (The Project)**
                      Security in Distributed Systems
                      Software Construction 2¹
                      Software Engineering¹

* semester-long research project ** summer semester 2022 (subject to change for future semesters. New elective
projects will be made available each summer semester)

¹ This module is offered in collaboration with Information Engineering/Department of Information and Electrical
Engineering

Courses are offered in the summer semester (March – July) only

Department of Computer Science (June 2021)
Course Name: Artificial Intelligence & software agents (elective)

Degree programme:
Computer Science (Bachelor)                                         Responsible Lecturer: Prof. Dr. Thomas Clemen

Work load: 180 hrs                     Lecture hours per week: 2 hrs + 2 hrs lab                      ECTS Credits: 6

Course objectives:
How do we come to a decision? How do we perceive our surrounding environment? Computer scientists,
psychologists, and cognitive scientists have been considering these questions for a long time. This course gives
an experimental introduction in corresponding topics of artificial intelligence. Here, software agents will be
implemented as ‘digital twins’ of humans.

Contents:
    •    Cognitive processes and architectures
    •    Human perception and decision-making
    •    Agent-based modeling and simulation

About didactics and work load distribution:
Seminar-style lecture and practical training in small subgroups

Requirements for participation:                                                                              Course language:
    •    Successful completion of elementary studies                                                         English
    •    Good programming skills (C#, Java, Python or similar)

Type of exam:
Technical report and presentation

Requirements for credit point allocation:
 Active participation in class and successful completion of technical report and presentation

Literature:
    •    Steven Bird, Ewan Klein, Edward Loper: Natural Language Processing with Python, O’Reilly 2009
    •    Joel Grus: Data Science from scratch – First Principles of Python, O’Reilly 2015
    •    K.R. Chowdhary: Fundamental of Artificial Intelligence, Springer 2020
    •    Laurence Moroney: AI and Machine-Learning for Coders: A Programmer’s Guide to Artificial Intelligence, O’Reilly 2020
Course Name: Artificial Intelligence & Software Agents (The Project)

Degree programme:
Computer Science (Bachelor)                                            Responsible Lecturer: Prof. Dr. Thomas Clemen

Work load: 270 hrs                   Lecture hours per week: Team research project               ECTS Credits: 9

Course objectives:
The students work in student teams to investigate complex systems, e.g., large cities, autonomous vehicles or
crowds by describing them with AI-based models, especially agent-based models, to run simulation scenarios
and evaluate them.

Contents:
 - Development of agent-based simulation models and so-called digital twins
 - Implementation of simulation experiments based on research questions
 - Management, visualization and analysis of very extensive result data
 - Processing of results for scientific publications

About didactics and work load distribution:
Independent development of project-specific results under weekly guidance with regular feedback and coaching leading to
presentation and documentation of the project. Team leaders present weekly to professor.

Requirements for participation:                                                                        Course language:
     •    Good programming skills (preferable in C#)                                                   English
     •    Fundamentals of Artificial Intelligence

Type of exam:
Individual oral examination as presentation of the research or technical paper

Requirements for credit point allocation:
Regular attendance is compulsory, active team work in project team, successful completion of examination

Literature:
Scientific primary literature (Journal Paper and Conference Proceedings)
Course Name: Data Analysis with Python (The Project)

Degree programme:
                                                              Responsible Lecturer: Prof. Dr. Marina Tropmann-Frick
Computer Science (Bachelor)

Work load: 270 hrs                   Lecture hours per week: 3 + 3 hrs labs                       ECTS Credits: 9

Course objectives:
On completion, students will have the ability to:
    •    examine and evaluate various data analysis methods and techniques
    •    develop applications for data analysis and interpret results of the analyses
    •    perform exploratory data analysis
    •    compare and apply clustering and classification methods
    •    apply selected topics from machine learning and artificial intelligence

Contents:
This course deals with data analytics and decision-making related to these analytics. Those who possess the
essential information have a powerful tool in their hands and are clearly at an advantage. Extracting the
essential from an incredibly large, heterogeneous and dynamic set of data is not a trivial matter. Suitable
techniques for this purpose come from the fields of data mining, predictive analytics, visual analytics, statistical
modeling and machine/deep learning. The focus is on practical work with different tools from the field of data
analytics and visualization techniques.

About didactics and work load distribution:
    •    Lecture: Tuition in seminars, whiteboard, slides, computer simulation
    •    Laboratory: Laboratory- and computer practical course
    •    Attendance: 90h, individual study: 108h

Requirements for participation:                                                                          Course language:
Good knowledge in programming, interest in the topic, ability to work in a team                          English

Type of exam:
Proof of successful attendance

Requirements for credit point allocation:
    •    Active participation in lectures and lab
    •    Passing lab requirements and exam

Literature:
    •    Steven Skiena, “Data Science Design Manual”, Springer
    •    Henk Tijms, “Understanding Probability”, Cambridge University Press
    •    Daniel Keim, Jörn Kohlhammer, Geoffrey Ellis, and Florian Mansmann, "Visual Analytics"
    •    J. Han, M. Kamber, “Data Mining. Concepts and Techniques”
    •    “Deep Learning. The comprehensive handbook: fundamentals, current techniques and algorithms, new research approaches”, by
         Ian Goodfellow , Yoshua Bengio, et al.
    •    recent conference papers
Course Name: Data Science

Degree programme:
                                                            Responsible Lecturer: Prof. Dr. Marina Tropmann-Frick
Computer Science (Bachelor)

Work load: 180 hrs                     Lecture hours per week: 2 + 2 hrs labs              ECTS Credits: 6

Course objectives:
On completion, students will have the ability to:
        -    understand essential mathematical principles from the fields of stochastics, analysis and linear algebra
        -    apply methods for data collection, preparation and visualization
        -    formulate hypotheses and perform statistical analyses on data
        -    apply selected methods from the fields of data mining, machine learning and artificial intelligence to
             data from different domains
        -    understand the concepts of data governance, data ethics and privacy

  Contents:
  A data scientist must have the ambition, intuition, and curiosity to not only solve problems as they are
  presented, but also to identify and specify problems themselves. Intellectual curiosity and the ability to
  experimentation require a fusion of analytical and creative thinking. Employers are currently seeking candidates
  who can ask the “right” questions to form intelligent hypotheses and explore data using basic statistical
  methods and machine learning models. After all, those who are able to efficiently identify patterns and
  dependencies can make faster and more informed decisions, design processes more effectively and save costs.
  - Selected topics from the theory of probability
  - Selected topics in descriptive and inferential statistics
  - Correlation analysis
  - Data mining
  - Visual analytics / exploratory data analysis
  - Clustering
  - Linear and logistic regression
  - Classification
  - Selected topics from Machine Learning and Artificial Intelligence

About didactics and work load distribution:
    •       Lecture: Tuition in seminars, whiteboard, slides, computer simulation
    •       Laboratory: Laboratory- and computer practical course
    •       Attendance: 72h, individual study: 108h

Requirements for participation:                                                                   Course language:
Knowledge about databases and good programming skills.                                            English

Type of exam:
presentation and term paper

Requirements for credit point allocation:
    •       Active participation in lectures and lab
    •       Give presentation and write the term paper
Literature:
    •   Steven Skiena, “Data Science Design Manual”, Springer
    •   Henk Tijms, “Understanding Probability”, Cambridge University Press
    •   Daniel Keim, Jörn Kohlhammer, Geoffrey Ellis, and Florian Mansmann, "Visual Analytics"
    •   J. Han, M. Kamber, “Data Mining. Concepts and Techniques”
    •   “Deep Learning. The comprehensive handbook: fundamentals, current techniques and algorithms, new research approaches”, by Ian
        Goodfellow , Yoshua Bengio, et al.
    •   recent conference papers
Course Name: Databases

Degree programme:
Information Engineering (Bachelor)                              Responsible Lecturer: Prof. Dr. Wilfried Wöhlke

Work load: 180 hours                Lecture hours per week: 3 + 1 hrs lab/week                  ECTS Credits: 6

 Course objectives:
 On completion students will have
   • the ability to design a relational database system,
   • the knowledge of Entity Relationship Modeling, Normalization, Structured Query Language.

 Contents:
    •   History
    •   Database Management Systems
    •   Entity Relationship Model
    •   Algebra of Relations
    •   Normalization
    •   Structured Query Language
Students will look at data models, database design, the relational model, relational query languages (SQL),
transactions, multi-user synchronization, data integrity and security issues.

 About didactics and work load distribution:
 Lecture: Tuition in seminars, blackboard, slides, computer simulation
 Laboratory: Laboratory- and computer practical course

 attendance: 72h, individual study: 108h

 Requirements for participation:                                                                 Course language:
 Good knowledge of software construction (This is an upper division class)                       English

 Type of exam:
 Lecture: Successful passing of written exam                                                     Code for class schedule:
 Laboratory: Successful participation of the lab-courses with written reports and short final    DB / DBP
 exam

 Requirements for credit point allocation:
    •   Active participation in lectures and lab
    •   Passing lab requirements & written exam

 Literature:
    •   Ramez Elmasri, Shamkant B. Navathe: Database Systems Pearson 2016
    •   Thomas Connolly, Carolyn Begg: Database Systems: A Practical Approach to Design, Implementation and Management, Pearson
        2014
    •   Raghu Ramakrishnan, Johannes Gehrke: Databas Management Systems; McGraw-Hill 2001
    •   Antonio Badia: SQL for Data Science: Data Cleaning, Wrangling and Analytics with Relational Databases, Springer 2020
Course Name: Deep Specification

Degree programme:
Computer Science (Bachelor)                                      Responsible Lecturer: Prof. Dr. Julia Padberg

Work load: 180 hours                 Lecture hours per week: 2 + 2 hrs lab/week                   ECTS Credits: 6

 Course objectives:
 On completion the students will be able to read and write specification, know how to verify software and be
 aware of interactive theorem provers.

 Contents:
 This course is based on material from https://deepspec.org. It is an introduction to specification and verification
 that is based on the Interactive theorem prover coq. Interactive theorem provers provide a uniquely tangible
 way for students to learn how to deal with mathematical topics such as reading and writing specifications. The
 instantaneous and interactive feedback students get about the “The Deep Specification Project” addresses this
 problem by showing how to build software that does what it is supposed to do, no less and (just as important)
 no more: No unintended backdoors that allow hackers in, no bugs that crash your app, or your computer, or
 your car. “What the software is supposed to do” is called its specification. So, because using an interactive
 theorem prover often feels like “just programming,” the mathematics connects with students in a way that is
 more concrete than in traditional pen-and-paper approaches.

 About didactics and work load distribution:
 Lecture: Tuition in seminars, whiteboard, slides, computer simulation
 Lab: lab and practical computer course
 Attendance: 72 hrs; individual study: 108 hrs

 Requirements for participation:                                                               Course language:
 Good knowledge in programming, basic notions from discrete mathematics (logic, set            English
 theory, natural induction, etc.)

 Type of exam:
 Graded presentation

 Requirements for credit point allocation:
 Active participation in lectures and lab
 Presentation of chosen topic/homework/implementation

 Literature:
   •    Benjamin C. Pierce, Arthur Azevedo de Amorim, Chris Casinghino, Marco Gaboardi, Michael Greenberg, Catalin Hritcu, Vilhelm
        Sjöberg, and Brent Yorgey. Logical Foundations. Software Foundations series, volume 1. Version 5.8 (2020-09-09 20:57, Coq
        8.12)
        https://softwarefoundations.cis.upenn.edu/
   •    Benjamin C. Pierce, Arthur Azevedo de Amorim, Chris Casinghino, Marco Gaboardi, Michael Greenberg, Catalin Hritcu, Vilhelm
        Sjöberg, Andrew Tolmach, and Brent Yorgey. Programming Language Foundations. Software Foundations series, volume 2.
        Version 5.8 (2020-09-09 21:10, Coq 8.12) ) https://softwarefoundations.cis.upenn.edu/
   •    Leonidas Lampropoulos and Benjamin C. Pierce. QuickChick: Property-Based Testing in Coq. Software Foundations series, volume
        4. Electronic textbook, Version 1.1 (2020-10-14 10:24, Coq 8.12) https://softwarefoundations.cis.upenn.edu/
   •    Benjamin C. Pierce. Basic Category Theory for Computer Scientists. MIT Press, 1991.
   •    Cheng, Z., Tisi, M. & Douence, R. CoqTL: a Coq DSL for rule-based model transformation. Softw Syst Model 19, 425–439 (2020).
        https://doi.org/10.1007/s10270-019-00765-6
   •    Yannick Forster, Dominique Larchey-Wendling, Andrej Dudenhefner, Edith Heiter, Dominik Kirst, etal.. A Coq Library of
        Undecidable Problems. CoqPL 2020 The Sixth International Workshop on Coq for Programming Languages, Jan 2020, New
        Orleans, United States. 10.1017/S0960129597002302.hal-02944217
Course Name: Embedded Machine Learning

Degree programme:
                                                                Responsible Lecturer: Prof. Dr. Stephan Pareigis
Computer Science (Bachelor)

Work load: 180 hrs                  Lecture hours per week: 2 + 2 hrs labs                       ECTS Credits: 6

Course objectives:
After successful participation in the module, students will be able to apply deep learning methods, train a
convolutional network with their own data, convert the trained model and have the inference performed on
an embedded system. Students will be able to select network architectures and hardware to apply machine
learning techniques on embedded systems. They can use analysis tools to analyze and visualize the training
process. Students have gained experience with a real embedded application scenario through an individually
executed project. Students will be able to evaluate and technically document machine learning methods for
embedded systems.

Contents:
-    Introduction to ML tools, anaconda, python, tensorflow, keras
-    Introduction to neural networks
-    Introduction to convolutional networks (CNN) and deep learning
-    Classification and object recognition with MobileNet and SSD
-    Introduction to development with Raspberry Pi and ML accelerator Coral, TFlite
-    ML inference with and without software and hardware accelerators
-    In-depth topics: Transfer learning, measuring inference times, using GPUs, ML methods for signals,
     learning in the cloud
-    Individual project of own choice using Raspberry Pi, Jetson Nano or similar or cell phone from robotics,
     autonomous driving, mobility, smart home and others
-    Documentation of the own project in LaTeX with technical description and evaluation of the technologies
     used

About didactics and work load distribution:
    •   Lecture and practical course are integrated
    •   Lectures with slides, programming examples with Jupyter Notebook, project work.
    •   Attendance: 72h, individual study: 108h

Requirements for participation:                                                                          Course language:
Good knowledge in programming etc.                                                                       English

Type of exam:
term paper

Requirements for credit point allocation:
    •   Active participation in lectures and lab
    •   Passing term paper

Literature:
    •   www.tensorflow.org
    •   Schwaiger, R.; Steinwendner, J.: Neuronale Netze programmieren mit Python. Rheinwerk Computing
    •   Alpaydin, E.: Introduction to Machine Learning, MIT Press, 2020, ISBN: 0262043793
Course Name: MARS - Modelling & Simulation Research Project (interdisciplinary)

Degree programme:
Computer Science (Bachelor/Master/PhD students)                       Responsible Lecturer: Prof. Dr. Thomas Clemen

Work load: 180 hours*                  Lecture hours per week: N/A                                     ECTS Credits: 6*

 Course objectives:
 Students will be part of the MARS research group (http://mars-group.org/) where they will work on an
 individual research and development project suitable to their level. A major objective of this module is to
 learn how to complete collaborative research in a larger team.
 Note: The classes in this module handbook are undergraduate classes. It is however possible for Master or
 PhD students to do a semester-long research project within the MARS group only.

 Contents:
 Self-learning materials and coaching will be provided to students during the semester. A highly experienced
 team is also available. The semester covers:
     •   an introduction to modeling & simulation
     •   how to sharpen the research question
     •   conceptual modeling
     •   how to select the right simulation framework
     •   verification & validation

 About didactics and work load distribution:
 Individual studies and collaborative project work. A research and milestone plan will be created at the beginning of the
 module.

 * The workload of this project can be increased to 12 credits by writing a research paper, so that together with other
 modules it can make up a total semester workload of 30 ECTS.

 Requirements for participation:                                                                              Course language:
 Successful completion of elementary studies. Interest in interdisciplinary research issues.                  English

 Type of exam:
 Conference or journal paper draft, ready for submission

 Requirements for credit point allocation:
 -
 Literature:
     •   Steven F. Railsback, Volker Grimm: Agent-based and Individual-based Modelling: A Practical Introduction, Second Edition,
         Princeton 2019
     •   MARS Group papers: https://mars-group.org/publications
Course Name: Operating Systems

Degree programme:
Information Engineering (Bachelor)                               Responsible Lecturer: Prof. Dr.-Ing. Holger Gräßner

Work load: 180 hours                 Lecture hours per week: 3 + 1 hrs lab/week                   ECTS Credits: 6

 Course objectives:
The students have
    • an overview about existing operating systems and their individual characteristics,
    • the ability to use different OS resources in order to program dedicated application tasks,
    • the ability to design and realize complex systems using the available OS resources.

 Contents:
    •   Multitasking methods
    •   Communication and synchronization
    •   Resource sharing and timing control
    •   Interaction with external signals
    •   I/O programming, OS driver basics
    •   OS comparison and selection
    •   Selected topics in modern OS
    •   Exemplary applications during the lab with in-depth system-analysis and realisation

 About didactics and work load distribution:
       Lecture: Q&A, repetition, exercises, in-depth topics
       Lab exercises deepen the lecture content; working in teams of 2 students; exercises prepared before and presented
        during lab hours
 attendance: 72h, individual study: 108h

 Requirements for participation:                                                               Course language:
                                                                               th
 Basic knowledge of software construction, computer architecture (This is a 6 semester         English
 class)

 Type of exam:                                                                                 Code for class schedule:
 Lecture: Successful passing in written exam                                                   OS / OSL
 Laboratory: Successful participation in lab-courses with lab preparations with reviews,
 functional
 programmes, lab reports

 Requirements for credit point allocation:
    Active participation in lectures and lab
    Passing lab requirements
    Passing written exam OR practical project

 Literature:
    •   Tanenbaum, A.S. (2009): Modern Operating Systems, Prentice Hall
    •   Kernighan, B.W.; Ritchie, D. M. (2000): The C-Programming Language (ANSI C), Markt+Technik Verlag
    •   Kerrisk, M. (2010): The Linux Programming Interface, No Starch Press
    •   Corbet, J. et al. (2005): Linux Device Drivers, O’Reilly
Course Name: RIOT in the Internet of Things (The Project)

Degree programme:
                                                                Responsible Lecturer: Prof. Dr. Thomas Schmidt
Computer Science (Bachelor)

Work load: 270 hrs                   Lecture hours per week: 2 + 4 hrs labs                     ECTS Credits: 9

Course objectives:
On completion, students will have the ability to:
    •    develop application software with the loT operating system RIOT in C
    •    use standard functionalities of an operating system
    •    develop drivers for IoT devices
    •    focus on communication between several sensor nodes as well as to the interface and hardware

Contents:
  loT (Internet of Things) describes a network of everyday devices that gain functionality through the exchange
  of information. Here, communication between machines (M2M) plays a special role and replaces the classic
  human-machine interface. Despite often severely limited resources, typical loT platforms are linked to the
  Internet by standard protocols.
  RIOT is the friendly operating system for loT and was born three years ago together with partners from HAW
  Hamburg. Meanwhile RIOT forms a large open-source developer community and speaks the standard
  protocols of the loT. With this project you can become part of the RIOT community!
  The goal of the project is to bring loT into everyday life. With sensors and other hardware, we develop smart
  gadgets like balloon networking, smart lightening, climate sensors, oracles for elevators, Bike2Bike
  communication, speedometers, etc. Intuitive user applications on the web or on smartphones are also part of
  the interdisciplinary project.

About didactics and work load distribution:
Lecture: Tuition in seminars, blackboard, slides, computer simulation
    •    Team work in project
    •    Attendance: 90h, individual study: 180h

Requirements for participation:                                                                       Course language:
Good knowledge in embedded IoT programming                                                            English

Type of exam:
Proof of successful attendance

Requirements for credit point allocation:
    •    Active participation in lectures and lab
    •    Passing lab requirements & written exam
    •    Active participation in project

Literature:
    •    https://www.riot-os.org/
    •    https://www.haw-hamburg.de/hochschule/beschaeftigte/detail/person/person/show/thomas-schmidt/172/#area3
Course Name: Science & Technology Studies (The Project)

Degree programme:
                                                                     Responsible Lecturer: Dr. Susanne Draheim
Computer Science (Bachelor)

Work load: 270 hrs                     Lecture hours per week: 2 + 4 hrs labs                          ECTS Credits: 9

Course objectives:
On completion, students will have the ability to:
    • understand and describe Computer Technologies from a Social Science Perspective
    • gain an Insight into the central Concepts and Terms of Science & Technology Studies
    • fundamentally comprehend the Influence of Social Processes on the Creation of Computer Technologies

Contents:
Introduction to key concepts of
    •    Science & Technology Studies
    •    Actor-Network-Theory
    •    Sociology of Knowledge
    •    Social Construction of Scientific and Technical Realities
    •    Feminist Epistemologies of Science
    •    Laboratory studies, including fieldwork

About didactics and workload distribution:
    •    Lecture: Tuition in seminars, whiteboard, slides etc.
    •    Laboratory: conceptional and prototyping practical course
    •    Attendance: 90h, individual study: 180h

Requirements for participation:                                                                                Course language:
    •    Willingness to engage intensively with social science texts.                                          English
    •    Willingness to reflect on Computer Science from an interdisciplinary perspective.
    •    Basics of scientific writing

Type of exam: no exam.
Proof of successful attendance

Requirements for credit point allocation:
    •    Active participation in lectures and lab
    •    Passing reading, writing and protoyping requirements

Literature:
    •    Sergio Sismondo (2011): An Introduction to Science and Technology Studies (Blackwell).
    •    Ulrike Felt, Rayvon Fouché, Clark A. Miller, Laurel Smith-Doerr (2017): The handbook of science and technology studies. 4th ed.,
         The MIT Press, Cambridge, USA.
    •    Bruno Latour (2005): Reassembling the Social: An Introduction to Actor-Network Theory (Oxford University Press).
    •    Rosi Braidotti, Maria Hlavajova (2018): Posthuman Glossary. Bloomsbury academic. London – New York – Oxford – New Delhi –
         Sydney.
Course Name: Security in Distributed Systems

Degree programme:
                                                              Responsible Lecturer: Prof. Dr. Klaus-Peter Kossakowski
Computer Science (Bachelor)

Work load: 180 hrs                    Lecture hours per week: 2 + 2 hrs labs                ECTS Credits: 6

Course objectives:
On completion, students will have the ability to:
    •    Understand security models and security properties of cryptographic methods and be able to assess their
         strength.
    •    Know attack techniques in networks / distributed systems and the use of cryptographic measures to
         defend against such attach techniques.
    •    Be familiar with methods for constructing secure protocols for protecting distributed systems and know
         practically important protocols such as Transport Layer Security (TLS) as well as Kerberos.

Contents:
Today, IT security is so important that everyone has a say – but also plays a key role in its own security by applying
best practices and safeguards. Whether it's the NSA of some country eavesdropping on entities / citizens of other
countries, or computer criminals of unknown nationality using your bank data to get their hands on your money,
or name a popular big data driven company losing its customers' passwords... it's often the same technical
vulnerabilities that are exploited. And while it's hard enough for us as users to take care of our data, we often
can't trust small - or even big - companies as well as government agencies to take reasonable care of our data.
This course gives you an insight to:
    •    introduction to cryptography and its mechanisms
    •    security in distributed systems, design of security protocols, authentication in distributed systems, Kerberos
         and TLS as examples of complex protocols.
    •    public key infrastructure (PKI), process and security model, top view of the structure of a PKI

About didactics and work load distribution:
    •    Lecture: Tuition in seminars, whiteboard, slides, computer simulation
    •    Laboratory: Laboratory- and computer practical course
    •    Attendance: 72h, individual study: 108h

Requirements for participation:                                                                   Course language:
    •    Reasonable programming skills                                                            English
    •    use of command-line interfaces on LINUX operating systems
    •    administering network applications like web servers

Type of exam:
written or oral exam

Requirements for credit point allocation:
    •    Active participation in lectures and lab
    •    Passing lab requirements
    •    successful exam
Literature:
    •   Background reading: History of Cryptography and Cryptanalysis: Codes, Ciphers, and Their Algorithms (History of Computing) / John
        F. Dooley. – Springer: 2019.
    •   Context of security in computing and networks: Security in Computing / Charles P. Pfleeger et al. – Prentice Hall: 2015. [5th Edition,
        older ones are okay!]
    •   Public Key Cryptography: Introduction to Public Key Infrastructures / Johannes A. Buchmann et al. – Springer, 2013.
    •   Further reading: Modern Cryptography for Beginners: A Complete Guide to Discover History, Features, Developments and
        Applications of Modern Cryptography / Simon Edwards. - Independently published: 2020.
Course Name: Software Construction 2

Degree programme:
Information Engineering (Bachelor)                                  Responsible Lecturer: Prof. Dr. Marc Hensel

Work load: 180 hours                   Lecture hours per week: 3 + 1 hrs lab/week                     ECTS Credits: 6

 Course objectives:
 The students
 • understand JAVA syntax and can write a JAVA program,
 • can construct classes in object oriented form using the JAVA API,
 • are able to design and test JAVA programs inside a development tool,
 • are able to use encapsulation and inheritage structures,
 • can use packages, streams, file handling, threads, swing and other parts of the basic JAVA API,
 • can construct JAVA software including a graphical user interface for small applications.

 Contents:
 Lecture:
 • Introduction into the object oriented programming in JAVA
 • The Programming environment and the fundamental programming structures in JAVA
 • The object oriented programming fundamentals
 • The basic usage of classes, associations, inheritance, encapsulation and other object oriented subjects
 • Main libraries of the API (Application Programming Interface)
 • The execution of JAVA programs using graphical user interfaces and threads

 Lab:
 During the laboratories students learn how to the transfer the main parts of the object-oriented JAVA syntax
 into applications. The implementation of JAVA programs, the usage of JAVA classes and the usage of the JAVA
 software Developers Kit (SDK) is the main focus of this module.

 About didactics and work load distribution:
        Lecture: Q&A, repetition, exercises, in-depth topics
        Lab exercises deepen the lecture content; working in teams of 2 students; exercises prepared before and presented
         during lab hours
 attendance: 72h, individual study: 108h

 Requirements for participation:                                                                       Course language:
 Basic knowledge of software construction (This is a 2nd semester class)                               English

 Type of exam:
 Lecture: Successful passing in written exam                                                           Code for class schedule:
 Laboratory: Successful participation in the lab-courses with written reports and a final              SO2 / SOL2
 exam

 Requirements for credit point allocation:
    Active participation in lectures and lab
    Passing lab requirements
    Passing written exam OR practical project

 Literature:
 • Haines, S.; Potts, S. (2002): Java 2 Primer Plus, SAMS Publishing
 • Flanagan, D. (2005): JAVA in a Nutshell, A Desktop Quick Reference, O’Reilly
 • Horstmann, C.S.; Cornell, G. (2003): Core Java 2, Volume I-Fundamentals, Sun Microsystems Press
 • Esser, F. (2001): Java 2, Designmuster und Zertifizierungswissen, Galileo Press
 • Eckel, B. (2006): Thinking in Java, Prentice Hall
 • Arnold, K.; Gosling, J.; Holmes, D. (2001): The Java Programming Language Third Edition, Addison-Wesley
Course Name: Software Engineering

Degree programme:
Information Engineering (Bachelor)                                 Responsible Lecturer: Prof. Dr. Marc Hensel

Work load: 180 hours                    Lecture hours per week: 3 + 1 hrs lab/week                   ECTS Credits: 6

  Course objectives:
 The students systematically craft useful, reliable, and maintainable software by
     •     elaborating customer needs and transforming these into requirements,
     •     modelling the structure and time-behaviour of object-oriented software, and
     •     testing software to fulfil technical requirements and user needs.

  Contents:
     •     Basic ideas of the software engineering process (including analysis, design, realization, and test), process
           models, and modelling using UML (Unified Modelling Language)
     •     Requirement analysis and use case studies
     •     Modelling by selected UML diagrams (e.g., class, object, activity, state machine, sequence, and/or
           communication diagrams) based on requirements
     •     Introduction to a software engineering tool
     •     Construction of object-oriented software for small applications using software engineering methods
           (e.g., selected design patterns)

  About didactics and work load distribution:
  Lecture: Tuition in seminars, blackboard, slides, computer simulation
  Laboratory: Laboratory- and computer practical course

  attendance: 72h, individual study: 108h

  Requirements for participation:                                                                  Course language:
  Very good knowledge of software construction, object-oriented software construction in           English
  JAVA (This is an upper division class)

  Type of exam:                                                                                    Code for class schedule:
  Lecture: Successful passing of written exam                                                      SE / SEL
  Laboratory: Successful participation of the lab-courses with written reports and short
  final exam

  Requirements for credit point allocation:
     •     Active participation in lectures and lab
     •     Passing lab requirements & written exam

  Literature:
In the current issue:
     •     Booch, G.; Rumbaugh, J.; Jacobson, I.: The Unified Modeling Language User Guide, Addison-Wesley
     •     Douglass, B.P.: Real Time UML: Advances in the UML for Real-Time Systems, Addison-Wesley
     •     Rumbaugh, J.; Jacobson, I.; Booch, G.: The Unified Modeling Language Reference Manual, Addison-Wesley
     •     Sommerville, I.: Software Engineering, Addison-Wesley
You can also read