The courses of this module teach the students fundamental programming and algorithmic skills. The students should be enabled to analyze small problems, find solutions to these problems, and develope them in the Java programming language.
With weekly exercises the students deepen the practical contents of the lecture on the computer.
They use an integrated Java development environment to create, test and modify programs.
In the following exercises the students program simple calculations with Java using variables, expressions and control structures.
This also includes graphical data processing tasks.
Later, the students develop object-oriented programs on the computer. In the end, they solve recursive problems and implement solution strategies with the help of backtracking.
Selected exercises with solutions, slides in PDF format, Java programs and their documentation as Javadoc. Supplementary Java exercises with solutions to deepen the programming skills.
Lecture participation. Solving simple exercises in the lecture with teacher support.
The course introduces the theory of formal languages and focusses on regular and context-free languages.
The course first consolidates the basics of propositional logic, set theory, the O-calculus and elementary proof techniques. Then the classical areas of theoretical computer science such as finite automata and their minimisation, regular expressions, the Chomsky hierarchy, the pumping lemma for regular and context-free languages as well as associated decision algorithms are covered. Push down automata, normal forms and closure properties are also discussed.
The aim is to develop an understanding of the basic computational power of classical computer models with limited memory capacity.
The substance of the lecture will be discussed at the blackboard. Lecture notes containing the complete material are also available. Furthermore, there are sample solutions to all exercises.
Literature: D. W. Hoffmann: Theoretische Informatik, 3. Auflage. Hanser, 2015.
M. Sipser: Introduction to the Theory of Computation, 3rd edition. Cengage Learning, Inc., 2012.
This course will take place as a pure lecture. Numerous exercises deepen selected areas and will be discussed in tutorials.
In weekly exercises, students deepen their understanding of the practical content covered in the lectures.
Initially, they use terminal commands, but later transition to a professional, integrated Java development environment to create, debug, test, and modify programs.
Starting with simple calculations in Java using variables, expressions, and control structures, the assignments gradually become more complex, incorporating basic data modeling tasks. By the end, students will have programmed simple games and implemented solutions of mathematical problems, e.g., using approximation methods.
In addition to ensuring the correctness and functionality of their programs, students also learn to follow good programming practices and adhere to coding conventions — an essential skill for future work in teams.
Students learn the technical basics of media design. They develop design concepts and are able to implement them practically in the context of simple tasks, taking usability and user experience into account when designing user interfaces.
The students become acquainted with the theoretical foundations of media design. This includes knowledge about creativity techniques, design rules and gestalt principles, systems of organisation, micro- and macro typography, colour theory, logos/pictograms/icons as well as grid systems for layouts. Additionally, they gain insights into the conception and design of digital media content exemplified through web applications. The students explore the history of design, starting at the dawn of industrialisation and including the seminal design movements of the 19th and 20th centuries as well as contemporary trends in design. This overview enables students to categorise and evaluate different design styles, allowing an integration of the acquired knowledge into their own design processes.
Participants learn the mathematical basics from linear algebra, which are often used in computer science. These basics are specifially needed in computer graphics, robotic, cryptography.
The participants should learn basic knowledge of mathematics and especially of linear algebra and acquire the methods to solve smaller mathematical tasks by themselves. In the part on linear algebra we will focus on knowledge needed in computer grafic and 3D simulations.
Content of the lectures: Proof methods, relations, euqivalence relations, modulo-calculation, Euklid's algorithm, functions, operations, groups, rings, fields, polynomial rings, finite fields, interpolation, vector spaces, basis, dimension, linear equations, rank, Gauß-Jordan-algorithm, determinant, matrices, linear map, inverse matrices, rotation, translation, scaling, scalarproduct, norm, vectorproduct, orthogonal matrizen, eigenvalues, eigenvectors, homogeneous coordinates.
Own writings from the blackboard,
Exercises and summaries from the internet,
Textbook: Peter Stingl: Mathematik für Fachhochschulen, Hanser Verlag, 8. Auflage, 2009, ISBN-10: 3-446-42065-7
Lecture,
Exercises,
Summary of the solutions in the lecture,
Tutorials for further assistance
Improving the knowledge of the related lectures,
basics in computer-algebra systems, mathematical problem solving with computer assistance.
With the help of the computer algebra system Maple different, applied mathematical questions from the fields of geometry, curves, interpolation and linear equations will be solved. It will be focussed on matrices and homogenous coordinates, which are an important foundation for computer grafic.
Short introduction will be given. Exercises distributed in the classes and also
available on the internet.
Exercises in the labs with Maple (instructor will be present).
The learning of a foreign language is an integral component of the in the course of studies communicated key qualification.
After a grading test students can deepen their English skills to three grades. The entry level requires the competence grade A2 (basic user) in the six-stage common European reference framework. The first two grades (English for advanced learners 1 and 2) engage besides a recapitulation of grammar mainly in issues of job-oriented common language and cultural studies, e.g. job application letters, descriptions of products and services, business telephone calls, progress of formal and informal conferences, presentations etc. The thus achieved grade complies with 173 points in the TOEFL (computer-based) or the competence grade B2 (independent user) of the European reference framework. In the following grade special language skills (English for science and technics) are leant: In business English the priority is on spoken language and small study groups. At the beginning of the semester each group founds its own company which advances dynamically during the course of the semester. At the same time vocabulary and phrasing in respect of topics like company structures, meetings, negotiation, marketing, production and sale, finances, comprehending of reports and presentations are gone through in order to make the attendees handle the language instruments to cope with each step of the simulation in English. The highlights of the course are a simulated exhibition, a hiring procedure and the group presentation. In technical English the priority is on the learning and practice of a technical basis vocabulary and typical expressions of technical communication.
Literature depends on grade, PowerPoint presentations, execises, Videos, DVDs
Lecture participation, short talks, discussions
The students learn about basic algorithms and data structures. They can estimate in which situations specific and complex data types are used, how they work and how much time they take. They are able to prove the correctness of algorithms. In practical assignments the students are enabled to implement various algorithms and data structures.
The lecture is divided into several parts building on one another:
Weekly exercises for reviewing lecture content and for exam preparation. Simple tasks in the lecture.
The students deepen the knowledge acquired in the lecture by implementing and testing selected algorithms in Java. They use standard development environments. The algorithms and data structures to be implemented are used culminating in a final task.
Assignements and basic source code.
Practical exercise with discussion of solutions
This course covers programming languages that belong to the C/C++ family of languages including new forms such as Go and Rust. After this course, students will be able to code in C/C++, are able to understand the commonalities and differences to Java and have an understanding of the latest developments such as C++20 plus new forms such as Go and Rust. Lectures introduce concepts via some live coding followed by some lab sessions where students work on smaller practical exercises. Several (online) quizzes allow students to test their knowledge.
Content.
C/C++ basics.
Recent extensions and new directions.
Written final exam, closed book. Exam questions refer to practical exercises that are covered in the lab.
The students implement projects with an increasing complexity in C++. They have to use generic classes, inheritance, polymorphism, abstract classes and interfaces and concepts for error handling and detection like exceptions and assertions. Additionally they will learn to use elements of the STL and to model the classes and their relationships with UML.
On the homepage: Project description with a step-by-step instruction, Java script, optional exercise with solutions, books:
Laboratory work
The two lectures on the topic of distributed systems ("Distributed Systems 1” and "Distributed Systems 2”) teach both foundational and advanced principles that are illustrated through practical examples of existing paradigms and technologies. Principles treated in this course encompass foundations of goals and classes of distributed systems, as well as their architectures, processes, communication and name systems. Advanced principles include synchronisation, consistency and replicability, error-tolerance and security. The principles introduced in this course are exemplified through the paradigms of web-based systems and component-based systems. This includes sample implementations of individual principles. In addition, the course gives an introduction into the development of corresponding systems using actual technologies as examples.
The course provides a practical introduction to the concepts and paradigms of distributed systems using the example of web technologies and application development on the web. This initially involves an introduction of the world wide web with basic protocols such as HTTP and other standards in the context of the Internet. After that an introduction to the design and construction of web applications is provided. This includes firstly the frontend development with HTML5, CSS3 as well as client-side JavaScript and secondly the backend development with server-side JavaScript on the Node.js platform. Interactions between frontend and backend follow modern REST/HTTP and AJAX techniques. In addition, mechanisms for personalization with cookies and sessions as well as to authenticate users are presented. The course closes with a detailed discussion of web application security.
Upon completing this lecture class, students will acquire practical skills in the development and deployment of web applications, grounded in an understanding of distributed systems and web technologies. They will learn to proficiently use HTML5, CSS3, and JavaScript for frontend development, alongside server-side development with Node.js, enhancing their ability to create dynamic, full-stack web applications. Additionally, students will gain knowledge in implementing modern REST/HTTP and AJAX techniques for efficient frontend-backend communication, as well as in employing cookies, sessions, and authentication strategies for personalizing user experiences and ensuring application security. This comprehensive skill set will prepare students for a wide range of roles in web development and application design, equipping them with the necessary tools to address current and future challenges in the field.
In preparation for individual lecture units, the self-study of basic content is required by means of the accompanying literature (relevant chapters will be announced in the event). Further independent work concerns the follow-up of the lecture contents and the exam preparation.
The lab course covers the practical application of various basic web technologies. The selection of technologies follows the topics of the VS1 lecture. In the laboratory, a complete web application is created in several steps. Each step takes a closer look at a range of web technologies. This will specifically promote skills in understanding and applying Web technologies including the areas of declarative languages such as HTML, CSS, and JSON, client-side and server-side JavaScript programming, and special technologies for single-page applications and REST architectures.
Basic knowledge of general programming and declarative web languages is required (the latter can be obtained by a limited self-study of the accompanying literature). The course includes 50% supervised presence time (1 SWS) in the LKIT lab and 50% individual work. Proof of achievement is provided by presentation and defense of the solution.
This course provides students with the theoretical and applied knowledge about the creation of media-based web applications. This includes the foundations of the markup language HTML and Cascading Style Sheets, how to embed different types of media, as well as the conception, design and programming of responsive web applications.
Lecture notes, slides (PDF), multiple examples of programs
Preparation of lecture contents and exam
Students will learn the basic concepts of computer engineering. They learn the mathematical concepts of number representation and Boolean algebra, which are required for the analysis and design of hardware circuits. They understand how the basic digital computing elements are constructed and how to combine them into complex switching networks. Furthermore, the students will be able to explain the structure and operation of current standard circuits such as adders or shift registers. Additionally, students are familiar with internal functions of typical processors. They are able to implement the hardware related software parts using the "C" programming languege including the use of typical peripherals. All knowledge gained is reinforced by practical work in the laboratory.
On the processor side, the lecture will cover the following, basic processor hardware, processor architecture, addressing modes, instructions, memory mapping, peripherals and bit processing. The special features of the programming languages C / C++ needed for hardware programming will also be covered.
Powerpoint slide, personal notes, web based exercises and the suggested solution (provided upon request).
The student will be required to come prepared to participate in the lecture and will be expected to be able to develop a summary upon completion of the lecture, all exercises provided for reinforcement will be required to be individual work.
Lab experiments will be conducted using:
Exercises, equipment provided and various manuals and other support material.
All laboratory work will be group work. It will include the conduct of the experiment, demonstration of the required result and be prepared to answer questions on the work and the results. Groups are on their own and are required to come to the laboratory prepared to conduct the exercise. Each group will prepare a final documentation of the exercise.
The statistics lecture teaches skills in handling and analyzing empirical data, as well as an introduction to probability theory.
Students learn to analyze and model data by seeing common statistical methods and models in action, which will enable them to apply static methods to evaluate data themselves.
The contents of the lecture include:
Teschl G. und Teschl S. Mathematik für Informatiker. Band 1 und Band 2. Springer Verlag. Zum Beispiel 3. Auflage 2010.
Having successfully completed the module, students will be able to understand and explain the functions and structures of modern operating systems and how they are embedded in various computer architectures. They will be able to use system-related knowledge to design, develop and implement performant software solutions. In addition, they are able to organize, collaborate on and successfully complete complex programming tasks in a team. They have further developed their technical, social and personal skills as well as their communication skills and self-management.
The course "System Software" covers the fundamental tasks and functionalities of modern operating systems and enables students to apply these techniques independently and systematically in teams to solve system-level development tasks. The course is divided into four main thematic areas:
Fundamentals, Process Management, and Scheduling:
File Systems and Persistence:
Memory Virtualization:
Concurrency: Processes and Threads:
In addition, the specific challenges of each topic are discussed, along with common strategies for addressing them. Practical exercises complement the lectures to facilitate the application of theoretical concepts to realistic scenarios.
Slides, videos, textbooks, and other literature:
The lecture will take the form of seminars with exercises.
The course is organized in three exercises, covering compiler construction and interprocess communication. Starting with a scanner, the students consolidate their skills in handling large dynamic data structures, pointers, and doing low level IO. The second exercise focuses on the development of a recursive descendent parser and a short introduction to semantic analysis and code generation. The third exercise is an introduction to the field of interprocess communication. Within the exercise, elementary techniques and concepts are trained:
Slides and textbooks:
Attended teamwork and three lectures.
The module teaches the basics and practical skills in database systems and communication networks.
Competence objectives in the field of databases:
Competence goals in the area of communication networks:
The module promotes analytical thinking, practical problem-solving skills and teamwork and provides a foundation for topics such as network security and distributed systems.
The lecture covers the following topics:
In this course, students expand their knowledge of communication networks, in particular by taking an in-depth look at the functionalities and challenges of the layers of the Internet protocol stack. After completing the course, they will be able to analyze, evaluate and practically apply advanced mechanisms and protocols in the application layer, transport layer, network layer and security layer. They will be able to identify complex network problems, combine specific solution modules and develop innovative solutions.
The lecture covers the following topics:
The lecture is taught in a flipped classroom format. Students prepare for the classroom sessions independently using lecture slides and explanatory videos. In these sessions, the topics are explored in greater depth through case studies and exercises. Online tests offer students the opportunity for self-assessment and to collect bonus points for the exam. The examination consists of a 60-minute written exam, which is part of the module exam "Databases and Communication Networks 2".
The total workload is 75 hours, divided into 25 hours of attendance time, 25 hours of asynchronous learning and 25 hours for exam preparation and follow-up.
The knowledge learned in "Databases 1" is deepened and practiced in group work. The interaction of a database with a higher programming language (Java) is understood. The use of SQL (DCL; DML; DDL), transactions and isolation levels and the avoidance of deadlocks is mastered.
A database application for warehouse management will be designed and prototypically implemented. This includes the setup of a DB schema, the design and testing of SQL queries, the use of transactions and transaction levels as well as the programming of queries and transactions with Java using JDBC based on Oracle (the preparation for the laboratory should be done in PostgreSQL or MySQL).
Finally, several given verbal facts are analyzed, transferred to an Entity Relationship model, normalized, transferred to a physical schema and finally created in SQL. Finally, the handling of the OR mapper Hibernate is practiced.
Supervised laboratory with final presentation on the computer, independent work, preparation for follow-up, writing a laboratory report on the tasks.
In the lab, students apply practical knowledge and skills to consolidate the content of the lecture of the same name. After completing the lab, they will be able to analyze, configure and programmatically implement network protocols in various layers and measure and evaluate the performance of network applications.
After successful participation, students will be able to:
The laboratory includes the following experiments, which are carried out in teams of 2-4 people:
The experiments are carried out in a virtual environment as group work. The students document their results and present them at the end. The examination consists of the successful completion of the four laboratory experiments and the presentation of the results. The workload is 30 hours, including 15 hours of attendance time and 15 hours of independent preparation and follow-up work.
The students have a solid knowledge of different interaction forms of human-machine interfaces as well as the conception and design of multimodal user interfaces. They are extensively engaged with various aspects of the design process, such as transitions and animations in the use of graphical user interfaces, microinteractions, and different types of prototyping. Moreover, they can define and differentiate the characteristics of current design trends.
The students are able to conceive multimedia projects based on design tasks and implement them using wireframes, mockups, and interactive prototypes. They can justify and present their solutions.
The courses of this module teach the students fundamental programming and algorithmic skills. The students should be enabled to analyze small problems, find solutions to these problems, and develope them in the Java programming language.
By means of periodic evening events they get basic understanding of association work, concretely the work of the Usability Professionals' Association (UPA).
An MMC-task which is standard practice is designed starting from task analysis up to the paper prototype. This prototype is subject - possibly over several iterations - of a usability test until the specified quality targets are reached.
Script, eye-tracker and user monitoring space in the Usability Lab Textbooks:
Supervised group work with presentation and discussion; test the usability of the prototype, prepare a test report with proposals for improvements.
Students are introduced to the fundamental concepts of general business administration. They learn about economic processes and interrelationships and become familiar with typical processes and requirements within companies. They are able to identify and outline the various areas of business administration.
Using diferent tools and concepts, students can describe and analyze a company's situation.
In addition, students are equipped to independently calculate and analyze key performance indicators that provide insights into a company's efficiency and effectiveness.
In the Business Administration lecture, topics such as the economic environment (economics), business structures, organization, investment and financing, marketing, and accounting are covered in depth. This enables students to gain a comprehensive understanding of how a company operates and the resulting requirements.
The lecture covers the core processes of IT service management as well as methods for systematic planning, provision and support of IT services. For each process, the objectives, tasks, demarcation, mode of operation and the dependencies on the other processes are worked out. The students thus acquire the competence to know the relevant technical terms and to apply them in practical situations.
The necessary roles and responsibilities are learned. The students understand how IT processes are represented in reference models. The lecture is based on the IT Infrastructure Library (ITIL), which is a generally accepted standard for the structure and operation of IT organizations.
Lecture material as PowerPoint slides
Blackboard notes for interactive development of core problems
Numerous multiple-choice questions on each process in ILIAS
After completing this module, students will be able to handle important work-related skills that are also relevant for the practical semester. They can use the Scrum process model to manage projects and work in corresponding Scrum teams. They master techniques for the professional creation of scientific documents, can prepare data in a targeted manner and visualise their findings in an appealing way using modern presentation tools.
This course deals with the general handling of MS Office products and gives specifically an introduction to the main functions of MS-Excel. Topics include input methods, formulas, chart depictions and search functions. Basic knowledge about the programming in VBA are also taught. These methods will also be used for macro skripts in MS-Word.
Afterwards, the students have learned how to solve typicals problems efficiently with these today's standard programs.
Exercises, programs with solutions and online documentation.
Practical assignment in a computer laboratory.
This lecture deals with the general handling of MS Office products and specifically provides an introduction to the most important functionalities of MS Excel. Students learn, for example, how to use input methods, formulae, diagrams and search functions. Basic knowledge of programming under VBA is also taught. These are then used to create macro scripts in MS Word.
The focus is on the efficient use of MS Office products. Participating students are then able to quickly solve typical tasks.
Lecture notes
The course consists of a lecture (50%) and supervised practical exercises (50%).
The internship is designed to deepen the previously acquired knowledge and skills by qualified collaboration in a larger project. The focus is on improving the technical competence and the development of social and personal skills. The student needs to assert himself as an independent member of the team. He becomes acquainted with new fields of duty and will become familiar with new tools. He learns to evolve himself and to assess his skills. The internship may be pursued in a company, in a research facility or an authority.
The project must include at least 95 days presence and a relevantly application in computer science using modern technologies. There are to create an internship report and an experience report. The supervising company grants a work certificate. By the university of applied sciences each student is assigned a mentor. The task of the mentor is to monitor the quality of training detail.
The material depends on the task and is made available by the supervising company.
Participation in a larger project
The students learn how to work independently and productively in large software projects. This includes the decomposing of development tasks as well as the determination and assessment of appropriate architectures. They are able to capture the necessary steps in the context of a given task, to structure and clarify their decisions using suitable tools and methodologies, independently.
In this context, the students also gain the ability to recognize and classify goals and problems of distributed software systems. They can explain the general concepts of architectures, processes, communication, naming, coordination, replication fault tolerance and security, and apply them to the construction of distributed software services and applications.
The course "Software Engineering" builds on the practical experience students have gained during their internships and introduces techniques and methods for structured large-scale software development. The lecture begins with a review and consolidation of fundamental concepts such as objects, classes, associations, methods, inheritance, and polymorphism to ensure a solid understanding of the basics. It then focuses on the challenges of modern software development processes and structured approaches to address them effectively.
Students learn how to integrate agile methodologies, such as Scrum, with established process models like the Unified Software Development Process to manage complex software projects. UML is introduced as a core modeling language to document development decisions and facilitate clear communication. Particular emphasis is placed on understanding the complexities of large-scale systems and applying structured methods and processes to address these challenges.
Throughout the course, students develop the ability to work independently in agile environments, make informed development decisions, and document these decisions methodically. Theoretical concepts are complemented by practical examples that help bridge the gap between theory and real-world applications.
In the associated lab, students apply the knowledge gained in the lecture to various example projects. They conduct the first iteration of a software development process, practicing teamwork, the use of agile methods, and professional documentation with UML.
Slides, videos, textbooks, and other literature:
The lecture will take the form of seminars with exercises.
The lecture conveys both fundamental and extended principles of distributed systems and illustrates these in practical form on the basis of concrete paradigms and technologies. The spectrum of principles covered includes fundamental aspects of the objectives and classes of distributed systems, as well as their architectures, processes, communications, and naming. Advanced principles include coordination, consistency and replication, fault tolerance and security. The covered principles are exemplified by various paradigms. Here, exemplary implementations of individual principles are presented. In addition, an introduction to the development of corresponding systems based on concrete software technologies is given.
Upon completing this lecture class, students will achieve a comprehensive understanding of the principles underlying distributed systems, ranging from their fundamental objectives and architectures to advanced concepts such as coordination, consistency, replication, fault tolerance, and security. They will gain insights into the practical application of these principles through the examination of specific paradigms and technologies, enhancing their ability to analyze and design distributed systems. Moreover, the introduction to developing these systems using concrete software technologies will equip students with the practical skills necessary for implementing robust, efficient, and secure distributed systems in various computing environments.
Autonomous work includes pre- and post processing of lectures, exercises and exam preparation.
In the Software Engineering Lab, students complete a full iterative software development process within a team. Starting with requirements analysis, they develop an analysis and design model and implement it in Java. Along the way, they actively engage with concepts such as use-case-driven development, architecture orientation, iterative and incremental approaches, and component-based software design.
Through a concrete example project, students experience the practical application of these methods and learn to make independent design decisions while adhering to given requirements. The lab emphasizes teamwork and independent problem-solving, preparing participants to work effectively in agile development teams and address the challenges of complex software projects.
Slides, videos, textbooks, and other literature:
Attended teamwork
The lab provides practical insights into the functioning and construction of distributed information systems. To this end, current paradigms are taken up and fundamental principles are examined in the context of exemplary realizations. The lab tasks are based on the contents of the lecture, but also address current topics of industrial research and development. The practical implementation is done under utilization of modern industry-relevant platforms and frameworks.
Basic knowledge of programming, operating systems and databases is required. The course includes 50% supervised presence time (1 SWS) in the LKIT lab and 50% individual work. Proof of achievement is provided by presentation and defense of the solution.
In this course, students expand their knowledge of communication networks, in particular by taking an in-depth look at the functionalities and challenges of the layers of the Internet protocol stack. After completing the course, they will be able to analyze, evaluate and practically apply advanced mechanisms and protocols in the application layer, transport layer, network layer and security layer. They will be able to identify complex network problems, combine specific solution modules and develop innovative solutions.
The lecture covers the following topics:
The lecture is taught in a flipped classroom format. Students prepare for the classroom sessions independently using lecture slides and explanatory videos. In these sessions, the topics are explored in greater depth through case studies and exercises. Online tests offer students the opportunity for self-assessment and to collect bonus points for the exam. The examination consists of a 60-minute written exam, which is part of the module exam "Databases and Communication Networks 2".
The total workload is 75 hours, divided into 25 hours of attendance time, 25 hours of asynchronous learning and 25 hours for exam preparation and follow-up.
Visual cognition and its creation through modern computer graphics, as well as color models, textures and graphic effects are understood in basic theoretical details as well as in practical application.
The students learn to store, code and display two-dimensional graphics in the computer and external storage media.
They will be able to apply their mathematical skills to simple areas of computer graphics, such as the use of coordinate systems, modeling three-dimensional objects with polygons, designing algorithms to calculate sections of geometric objects.
The students learn about photorealistic image generation using ray tracing techniques.
They can describe and implement homogeneous coordinates in object space and model space.
OpenGL can be used in principle for practical programming.
In the practical assignment, the knowledge of computer graphics imparted in the lecture will be deepened using the following practical tasks on the computer:
C++ is used as the implementation language.
Detailled description of the assigments.
The solutions are presented and discussed with the supervisor in the exercises.
Students will be able to independently apply the knowledge they have acquired in their previous studies to a complete task. They can analyse the problem, create a solution concept, find an implementation and implement it on their own. They can also write down their results observing scientific standards. They can also present their work in a short presentation and defend it in a subsequent discussion.
A student research project deals with a topic in the field of software or hardware. The aim is to carry out a practical task, but work in the areas of evaluation or literature research is also possible.
Students analyse the task and research which tools are best suited to solve it. They then use these accordingly. Comprehensive documentation must be prepared for the project work, covering all steps of the task and its completion (e.g. the exact problem definition, the concept, the implementation, operating instructions and more). A joint colloquium concludes the project work. The students show their results in a short presentation and then take part in a discussion. The project work is thus a preparation for the later final thesis, which the students will write according to very similar guidelines.
Depending on the task
The colloquium marks the conclusion of the project work. Students present their results in a short presentation and then take part in a discussion. In doing so, they demonstrate that they are able to explain and defend the problem, the realisation of the work and the solution found in a short, concise form.
All work will be individual work and will include the presentation, discussion, defense of the work.
The compulsory elective subjects enable students to set specialisations according to their own interests and thus apply further specialist areas of computer science or media informatics. The courses belonging to the module are announced on the intranet at the beginning of each semester.
The course teaches practical methods of empirical software engineering and focuses on analysing and evaluating software systems in real-life use. The focus is on field and case studies that deal with the behaviour of users, the interaction with software and its technical and functional properties. By analysing authentic usage contexts, realistic insights are gained that are important for both science and industry.
Students actively participate in the planning, implementation and evaluation of a real field study, which is carried out in cooperation with the university's IDSS research institute and partners from industry. They work as part of an ongoing research project and test scientific methods in an application-oriented environment. The tasks include the systematic collection and evaluation of usage data as well as the organisational support of the study and the technical validation of the software under investigation.
Through practical experience, participants develop an in-depth understanding of the empirical investigation of software systems and their utilisation. They acquire skills in project management, in the application of empirical research methods and in software-supported data analysis. They also learn how to systematically gain scientific knowledge and critically assess its relevance for the further development and optimisation of software systems.
Seminar work with practical components, practical group work + final presentation
User Research - methods all around fictitious and real users, to to establish a "human centered approach" in projects.
Teaching contents are methods which contribute to a better understanding of people and their usage contexts, to improve the development, design and evaluation of interactive products and systems.
Following topics - in theory and praxis - will be part of the seminar:
Seminaristic lecture with practical exercises.
Contents:
ERP basics, system integration, system architectures, and logistics: Distribution (SD), Materials Management (MM), Production Planning and Control (PP) as well as Financial Accounting (FI) and Controlling (CO). In addition, an overview is given to the software selection.
Recommended reading: Lecture material completely as PowerPoint documents, blackboard notes for interactive development of central problem positions, a main textbook to ERP, a main textbook to SAP ECC 6.0.
Kind of work: Lecture participation
Students will be able to understand the fundamental concepts of software development for embedded real-time systems. In the context of this lecture, embedded systems are all computers controlled by software that are part of a larger system and whose primary function is not computing. Real-time systems also involve aspects of temporal behavior, i.e., they are systems that not only have to provide a correct answer, but also have to calculate the system answer within a predetermined and guaranteed period of time. In detail, topics from the following areas are covered: design and architecture of automotive control units, fundamentals of real-time programming, coding for data transmission, embedded C. The participants of the lecture apply their knowledge on the basis of exercises.
Slides, blackboard, exercise sheets
Lecture
Contents:
The lecture teaches the construction of mobile media applications. The main concepts are discussed using the Android platform. In a first partt, the basic technologies and limitations of mobile devices are shown. The second part examins different development strategies like native applications, device independend abstractions and web applications. A main part of the lecture is the integration of different media types into mobile applications and the constraints the developer has to keep in mind.
will be announced
Leacture with exercise
The buzzword "Cloud" represents a variety of interesting technologies which gained importance in the life of a computer science professional. Those are being collected, examined, explained and understood during the course. Primary objective is usefulness for the student, regardless of whether he acts as a cloud user, developer, administrator or even entrepreneur. Understand the broad meaning of "Cloud Computing" from a variety of perspectives: Definition, use cases, technology basics, key players, APIs, scaling, redundancy …
Powerpoint slides
The courses of this module teach the students the fundamental concepts about embedded systems. Students know the basic terminology about embedded systems and they are able to distinguish different types of real-time systems from each other. By studying the CAN bus technology, students get to know a typical communication medium and acquain with the CDMA technology an important coding scheme for data transmission. Students are able to implement typical programming tasks in the field of embedded systems in C. Furthermore, students learn how to deal with software tools that are suited for analyzing and developing embedded systems.
The lecture introduces software development methods for embedded real time systems. Embedded systems within the meaning of this lecture are systems that are controlled by computer software and are part of a larger system whose primary function is not compute-oriented. For real-time systems, the result has to be computed within a specified time frame. In particular, topics from the following areas are covered: Design and architecture of automotive ECUs, bus architectures, data transmission encodings, Embedded C.
Slides, blackboard, exercise sheets
Lecture
With the help of the modeling tool CANoe the participants design a control unit in the field of automotive electronics. The project also includes tasks from the field of signal decoding.
Software and hardware tools für designing automative ECUs
Practical work
This module integrates different media technologies. The students will be able to write user interfaces for rich fat clients and mobile media applications. They learn how computer vision works and how computer vision ist used in media applications.
The lecture first deals with SWT/JFace and the Eclipse Rich Client Platform 4 (RCP), which uses SWT and JFace as its basis. The most important topics are the model-view-controller pattern, layout management and event handling using the observer pattern. Based upon this techniques advanced technologies like the separation of business logic and user interface code using data binding and dialog control are presented. Other topics are internationalization and multithreading in the context of user interfaces. The last part of the lecture shows the declarative construction of user interfaces and the application of the RCP framework.
Books and Web sites:
Lecture preparation, exam preparation, implementing the bonus exercise, 30% of the lecture is held as a computer exercise
The lecture teaches the construction of mobile media applications. The main concepts are discussed using the Android platform. In a first partt, the basic technologies and limitations of mobile devices are shown. The second part examins different development strategies like native applications, device independend abstractions and web applications. A main part of the lecture is the integration of different media types into mobile applications and the constraints the developer has to keep in mind.
will be announced
Leacture with exercise
The student should learn how a common, computer science-related content will be refurbished for a specific group of audiants. Additionnally he should have learned how to give his presentation and defend it.
Each participant of the seminar creates under the guidance of a supervising faculty staff a written report in housework. The contents of the report should be computer science related. Based on the report suitable presentation techniques (slides, video sequences, programmed examples) are selected. Each participant individually presents his report followed by a discussion. The seminar topics are classified into thematic groups. Besides the technical problem the student has to learn how to do 'self-marketing'. The assessment of the student is based on the following criteria: degree of difficulty, quality of written preparation; didactically skillful presentation.
Depends on the topic
Meetings with the faculty supervisor; eventually experimental studies, literature refurbishment; presenting the work-out; defend the own presentation; active participation in discussing the presentations of others.
A students creates under the guidance of a supervising faculty staff the topic, prepared in IB631. He should learn how to construct a presentation, tailored to an specific group of audiants. Additionally he/she has to give his presentation and successfully defend it in a discussion with the audience He presents his content individually in the context of a lecture with an closing discussion. Besides the technical problem the student has to learn how to do 'self-marketing'. The assessment of the student is based on the following criteria: compliance with the requirements of time, didactically skillful presentation, discussion strength.
Depends on the topic
Presenting the work-out; defend the own presentation; active participation in discussing the presentations of others.
On successful completion of the module, students will be able to
Participants learn to understand intercultural competence as a strategic competitive factor and to organise their own actions in a culturally appropriate way:
To exist in the political, social, economical and cultural living nowadays the students must be able to held speeches and to participate in discussions without stoppages. This seminar shows how to express oneself independently of a concrete text.
PowerPoint slides
Lectures and practical exercises
The student should be able to lay his emphasis on individual interests.
HsKAmpus is intended to provide comprehensive functions for students of all faculties of the HsKA:
This primarily includes functions from the so-called. Online services based on the LSF server (events/schedule, facilities, people, student life), the QIS server (grade view) and other servers (canteen, KIT, KVV, ...). Other formats and functions are possible:
http://www.hskampus.de
https://www.facebook.com/hskampus
https://www.instagram.com/hskampus/
The lecture deals with legal issues in information technology and media law that students encounter in their everyday work. For example, students learn the basics of dealing with copyright-protected works, data, trademarks, designs or personal rights as well as the legally compliant design of websites, web shops and apps.
RA Josua Neudeck (https://www.vogel-partner.eu/team/josua-neudeck/)
RA Jeremias Held (https://www.vogel-partner.eu/team/jeremias-held/)
The students learn
Contents:
Basic knowledge of ethical hacking is advantageous.
Technological and topological mechanisms for securingnetworks, attack patterns and defense mechanisms againstthem. Basics of, variants of and defense against malicioussoftware. Analysis and judgement of security mechanismsand related activities. Excercies at the end of each semester provide practicalexperience in dealing with security topics.
Presentation with a lot of room for discussions andinteraction. Finalized by a hands-on session.
First, students are given an overview of the international consulting market and learn the methodological principles of this industry as well as the main areas of work of IT consulting. Various approaches to strategy consulting, process consulting and IT system consulting are discussed, along with the respective consulting tools and methods.
Lecture material completely as pdf documents, blackboard notes for interactive development of central problem positions, instructions for interactive role play and case study material
Participation lecture, development of an interactive role play in the group, individual execution of a short case study.
Students will be able to develop typical algorithms used in embedded systems in the C++ programming language. Students will develop a prototypical CDMA decoder that is able to extract the bits sent by GPS satellites from a composite signal.
Software and hardware tools für designing automative ECUs
Practical work
Important frameworks for "classic" application development with Python are presented (WAS):
In a smooth transition between lectures and exercises, an end-to-end example is provided for each framework (WOMIT), from the interface (REST, GraphQL) to the database (PostgreSQL, MySQL, SQLite). The object-relational mapping is implemented using SQLAlchemy. Furthermore, each example project is built as a Docker image and run as a container with Docker Compose. The examples are installed and explained together on the student notebooks with VS Code.
During these guided exercises with finished and executable applications, the students are also familiarised with the necessary infrastructure for Python. This includes e.g:
As a result, students acquire the skills to weigh up the advantages and disadvantages of established Python frameworks against frameworks with Java or JavaScript, for example (WOZU).
This lecture introduces various concepts and areas of sound design. Besides technical basics to:
creative applications of sound design like:
will also be thematized. The lecture teaches how professional soundscapes and moods can be created to achieve desired effects.
The lecture is accompanied by exercises in which the knowledge is practically applied. The content of the assignments ranges from editing audio tracks, sound synthesis and scoring of film scenes to the development of sound brands.
Starting with clarifying the terminology of business process management, the lecture gives an introduction and analysis of various concepts for business process documentation and modeling. This includes a discussion of support through appropriate methodologies and software tools. Modern concepts such as process mining are also covered.
Using different tools, business processes are documented and subsequently simulated as part of a case study. Finally, aspects of process quality assurance, performance evaluation, and process cost accounting are addressed. Students are enabled to independently handle processes in a business environment, including documentation, modeling, and analysis.
Overview:
Students learn in a practical way about the architectural principle of microservices, which have established themselves alongside conventional, cumbersome application servers. Using a consistent example, microservices are developed with the following platform:
As a result, students acquire the skills to weigh up the advantages and disadvantages of microservices against monolithic architectures (WOZU).
"Spring Framework Documentation", https://docs.spring.io/spring/docs/current/spring-framework-reference
"Spring Boot Reference Guide", https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle
"Spring GraphQL Reference", https://docs.spring.io/spring-graphql/docs/1.0.0-M2/reference/html
"Spring Data JPA", https://docs.spring.io/spring-data/jpa/docs/current/reference
Docker, https://www.docker.com/why-docker
Kubernetes, https://kubernetes.io/docs
The student should be able to lay his emphasis on individual interests.
The Internet of Things (IoT) networks a large number of sensors and actuators in the private smart home sector as well as in the industrial environment. The end devices only have very limited resources in terms of computing power, memory size and energy budget. Nevertheless, the end devices must be able to fulfil their task in a timely and reliable manner without becoming a target for cyber attacks.
This course provides an overview of the special requirements for software development for embedded, networked systems in order to be able to operate them in an energy-efficient manner and with limited resources. Topics covered include memory management, multitasking and scheduling, access to hardware and peripherals, various bus protocols, connectivity and security aspects.
These topics are deepened practically in a laboratory and the students will implement the knowledge they have learnt in an example project.
In the course "Practical Application of Network Engineering and System Operations", students acquire practical skills in the planning, configuration and implementation of company networks. They learn to create network concepts, apply subnetting and configure switches with VLANs and redundant connections. In addition, basic firewall settings are made with PfSense, including security policies such as DMZ, NAT and zero trust principles.
Another focus is on setting up NAS systems with suitable RAID levels and creating highly available storage and Proxmox clusters. The students deploy virtual machines and simulate system failures. In the final project, they develop a complete network and hosting concept for a practical scenario, implementing redundancy, VPN access and encrypted communication.
At the end of the course, students will be able to plan, set up and operate company networks securely.
After successfully completing this module, students will be able to
Design, plan and set up a small business network.
Identify network components such as switches, firewalls and routers and explain their tasks in the OSI model.
Create a network concept and carry out correct subnetting.
Configure VLANs (access, tagged and trunk ports) and set up redundant connections between switches.
Configure a switch via console cable or SSH and make basic VLAN settings.
Install and configure a PfSense firewall (WAN/LAN ports, DNS, DHCP).
Set up firewall rules for network security (DMZ, default no-access, zero trust, microsegmentation, NAT, port forwarding).
Implement the combination of switches and firewalls to realise a secure network.
Configure NAS systems with appropriate RAID levels and set up file shares.
Set up and administer high-availability storage clusters.
Install and configure Proxmox clusters and deploy virtual machines (VMs).
Perform live migrations between cluster nodes and simulate system failures.
Design an enterprise network for 24/7 operation and overcome the challenges of continuous operation.
Identify and eliminate sources of error such as single points of failure.
Plan and implement network segmentation and cabling strategies for different use cases.
Develop a network and hosting concept for a specific scenario (e.g. corporate network).
Implement VPN solutions for different user groups.
Consistently implement security guidelines such as "default no access" and encrypted communication.
Create and partially implement a concept for fail-safe and redundant networks.
Lecture notes KN1+2
Prerequisites:
This course will give you an insight into the multifaceted world of game design. You will deal with fundamental questions such as the definition of a game, the constituent elements of a game and what actually constitutes fun. The aim of the course is to provide you with basic tools to help you analyze and design games.
Boundary conditions and expectations of communication are developed in intense discussion. Strategies and tactics for discussions and the management of critical situations are trained.
Blackboard and whiteboard-poster
Seminary lecture, block course after the end of the term
The students
Content:
Florian Dalwigk, "Ethical Hacking - The big book on hacking with Python" (provided as script)
This course is a placeholder for an external, graded course from another faculty or university. You must have the external subject approved before attending it.
This course is a placeholder for an external, graded course from another faculty or university. You must have the external subject approved before attending it.
This course enables students to obtain ECTS credits for social work done at Karlsruhe University of Applied Sciences. The activity must be closely coordinated with a professor of the faculty. This can be, for example, support for the O-Phase or support for visually impaired students. In the case of the O-Phase, you will usually have to work on two semesters in order to achieve the required minimum number of hours.
If you are interested, you can also obtain the "Certificate of International and Intercultural Competence (CIIC)". It certifies the intercultural competences and foreign language skills acquired during the degree programme, provides evidence of study-related experiences abroad and lists the framework in which the participants have been involved in intercultural activities. To earn the CIIC, you must cover three of four subject areas. The main component in subject area 1 is the voluntary commitment of at least 50 hours (about 2 hours per week in one semester), which can be completed in institutions or projects with an international and/or intercultural connection. In addition to the commitment, you will attend an introductory event as well as a reflection workshop and prepare an experience report, which is necessary to pass the subject area. If you have any questions about the certificate, please contact the Center of Competence: https://www.h-ka.de/ciic
Through the Center of Competence, it is also possible to obtain the "Certificate for Social Engagement (ZGE)". It takes into account an even wider range of opportunities to get involved. Find your suitable area, whether it is community, social, cultural or ecological engagement. Your social engagement should comprise at least 100 time hours and last for at least one year. In addition to your commitment, you will attend various seminars from the Studium Generale (a total of 8 ECTS) to link your practical experience with theoretical knowledge. This certificate cannot be recognised as an elective subject. You can find more information here: https://www.h-ka.de/zge
At regular intervals, the Center of Competence offers introductory events and reflection workshops for HKA students who are involved in voluntary work outside of their studies. This gives them the opportunity to exchange their experiences as volunteers with other participants and learn to reflect on and classify the insights they have gained. The next dates can be found on the CIIC website.
Collaboration on the "High Speed Karlsruhe" project in the MMT faculty. If you are interested, please contact Mr Stumpf: oliver.stumpf@h-ka.de
http://www.hskampus.de
https://www.facebook.com/hskampus
https://www.instagram.com/hskampus/
Introduction to the ABAP programming language with practical exercises in SAP NetWeaver Application Server ABAP. Students should familiarise themselves with language elements, workbench, database, selection screens, function modules and ABAP OO and be able to apply them independently to new problems.
The lecture focuses mainly on practice oriented project management and new procedure models like Scrum.
Students gain practical access to the field of software quality assurance. They work on a specific chapter from the field of software quality assurance and present their results to the other students in a series of short presentations. The participants then discuss the results.
Hoffmann: "Software-Qualität", Springer-Verlag, 2013
Lecture, student presentations
This module enables students to apply the basic principles of research in computer science in a method-based manner. They can evaluate scientific literature to use it in their own work. They are then able to write their own scientific papers.
Students work independently on a practical problem using scientific and practical methods. Topics include the independent development of the methodology, the topic and the exact problem as well as the structure of the paper and the creation of a bibliography. The results are discussed and presented with the lecturers. The students thus learn the procedure for writing the final Bachelor's thesis.
After successfully completing this module, students are able to independently solve a practical problem or research task using scientific methods within a specified period of time. They can structure the task, check dependencies, collect the necessary resources and then work on the task using a specially derived schedule. They can present the written results in an appealing form.
In the final thesis, students work independently on a practical problem or research task within a specified period of time using scientific methods. They structure the task, check dependencies, collect the necessary resources and work on the problem according to a timetable. The written thesis summarises the results in a didactically meaningful way and meets academic standards.
Suitable for the task as agreed
Participation in this module enables students to convincingly present the results achieved within a specialised, application-related thesis to an expert audience. They can analyse the content of such work, select the key aspects and present these in a didactically appropriate short presentation. In a subsequent discussion, they are also able to defend their results.
The final examination covers all topics relevant to computer science in the main study programme. Students demonstrate that they have understood and can apply interdisciplinary contexts. They answer questions from various areas of media informatics that are related to their final thesis. With the final examination, they demonstrate that they have the competence to independently work on novel problems in the field of media informatics.