Computer Science - Courses in English - HAW Hamburg
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
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