JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.
Software defined Infrastructure
Sidebar
Prev
|
Up
|
Next
DNS
Related slides on offer
Contents
Search
Preface
113105 Software development 1
Getting started
Lecture related resources
Using the exercises
Related resources
Coached exercises
Using plain Java™
Using Intellij IDEA
Play!
“Hello, World” and friends.
Simple calculations
A conditional
A loop
Language Fundamentals
Integer, ASCII and Unicode
Primitive types
Variables
Literals
Arithmetic limitations
Conversions
Operators and expressions
Arithmetic and logical operators
Assignment operators
Unary operators
Comments
Statements
The if conditional statement
if-then-else
Using else if
The switch statement
Loops
while
do ... while
for
A table of square numbers
Loops and calculations
Guessing numbers
Smallest multiple
Pythagorean triples
Logic related external exercises
Using automated tests.
Objects and Classes
Working with objects
Packages
Object methods
Encapsulation and access control
Getter and setter methods
Signatures
Method overloading
Constructors
Scopes
Class members and methods
A mathematical table.
Interest calculations
A simple interest calculator
Extending our interest calculator
Integer value considerations.
Programmer's favourite expression
Lotteries revisited
The greatest common divisor and the common multiple
Project dependencies and Maven
Maven command line usage
Intellij IDEA on top of Maven
Building a library of mathematical functions.
Maximum and absolute value
Factorial, the direct way
Factorial, the recursive way
Binomials, the recursive way
Implementing exponentials.
Adding sine
Strange things happen
Unit testing
Tests and implementation
Improving the algorithm
Helpful Junit methods
Technical details
Example: A class representing fractions
Value types and reference types
Method calls, the details
Enumerations (enum)
Enumeration by integer representation
Enumeration by dedicated class
Defining a private constructor
enum replacing class
Using git
Working with git locally.
Shared development with centralized remote.
Conflicts
Core Classes
Objects, equals() and hash-values
Using class Math
String exercises
Analyzing file pathnames
Arrays
Reconsidering System.out.format().
java.util.Arrays helpers
Extending arrays
Storing integer values
Understanding static public int main(String[] args)
Multi-dimensional arrays
Tic-tac-toe
Tic-tac-toe using a two-dimensional array
Changing the game's internal representation
Tic-tac-toe, Computer vs. human
Providing statistical data
Prime numbers revisited
A simple algorithm
Improving performance
The median of a given sample.
Plotting functions
Inheritance
Overriding equals() and hashCode()
Overriding toString()
final methods
Abstract methods
Geometry classes reconsidered
Scaling shapes
Providing toString() methods
protected access
final classes
The instanceof operator
The @Override annotation.
Error Handling
Checked vs unchecked exceptions
Exceptions and Junit
Variants
Class java.lang.Exception
Working with Numbers
Boxing and Unboxing
Number Parsing
Number Formatting
Working with Money
Generating Random Numbers
interface definitions and abstract Classes
Interfaces and sorting
A nonsense generator
An interface based plotter
Application deployment I
Preparations
Exercises
Part II, Exercises
Reading character streams
Preparations
Exercises
Collections
Preparations
Collections I, Exercises
A Set of Strings
A List of Strings
Defining a Coordinate class
A Set of Coordinate instances
Collections I, Exercises
Getting a Set of strings from a text file
Result string ordering
Sorting strings in an unusual way
Result string ordering
Collections III, Exercises
Collections IV, Exercises
Maps 1, Preparations
Exercises
Towns and country names
Creating an overview of grades
Appendix
Examination bonus point projects
Weather forecast
Reverse Polish notation (RPN) calculator
Desired functionality
Implementation hints
Currency converter, Summer 2017
An address database, Winter 2016
Poor man's UNIX grep, Summer 2016
Project Euler's sieve, Winter 2015
Exercising past examinations
Starting an exam
Implementing the project skeleton
Finish the exam
Examination hints
Past Software Development 1 examinations
SD1 examination summer 2024
Implementing tasks
Preparation
Task
Caveats
Executing main(...)
Strange arithmetics
SD1 examination winter 2023
Implementing tasks
Preparation
Task
Caveats
Beginner's nightmare
Strange endless loop result
SD1 examination summer 2023
Implementing tasks
Preparation
Task
Caveats
switch versus if ... else if ... else
Exception handling
Sd1 examination winter 2022
Implementing tasks
Preparation
Task
Caveats
Extraterrestrial integer value representation
An initialization issue
SD1 examination winter 2021
Implementing tasks
Preparation
Tasks
Caveats
equals() and hashCode()
The average of three byte values
SD1 examination summer 2021
Implementing tasks
Preparation
Tasks
Caveats
Spoiled execution
Method overriding
SD1 examination winter 2020/1
Implementing tasks
Preparation
Tasks
Caveats
Type conflict
Weird subtraction
SD1 examination winter 2020/2
Implementing tasks
Preparation
Tasks
Caveats
Surprising difference
Type assignment problem
SD1 examination summer 2020
Implementing tasks
Preparation
Tasks
Caveats
Return type
Weird behaviour
SD1 examination winter 2019
Implementing tasks
Preparations
Tasks
Caveats
Solution
Unexpected value
Solution
Assignment problems
Solution
NullPointerException problem
Solution
SD1 examination summer 2019
Implementing tasks
Preparations
Tasks
Caveats
Solution
Handling change money
Preparation
Description
Tasks
Solution upload
Solution
Logical expression
Solution
Device states
Solution
Missing exception warning
Solution
Software project bonus points
SE1 Klausur Winter 2018
Klassenmethoden
Vorbereitung
Beschreibung
Aufgabe
Allgemeine Hinweise
Hochladen Ihrer Lösung in das Klausursystem
Geographische Längen- und Breitenangaben
Vorbereitung
Beschreibung
Aufgaben
Hochladen Ihrer Lösung in das Klausursystem
Wahr oder falsch?
Zeitangaben und hashCode()
Vergleichen von StringBuffer Instanzen
SE1 Klausur Sommer 2018
Klassenmethoden
Vorbereitung
Beschreibung
Aufgabe
Allgemeine Hinweise
Hochladen Ihrer Lösung in das Klausursystem
Lösung
Artikel
Vorbereitung
Beschreibung
Aufgaben
Hochladen Ihrer Lösung in das Klausursystem
Lösung
Primitive und Klassentypen
Lösung
Ein Interface Problem
Lösung
Farbwerte, byte und int
Lösung
Past Software Development 1 exam preparing tests
First test
Second test
Third test
Fourth test
Working with git
Apache Maven
The project object model pom.xml
Plugins
Dependencies
Lifecycle, phases and goals
List of Exercises
Technical Documentation
Software independent considerations
General remarks
Common building blocks
Block level elements
Docbook
Target formats
HTML
Eclipse Help
Printed output
Selected elements
Paragraph elements
List elements
Formal elements
Graphic elements
Admonition elements
Sectioning elements
Links
Top level elements
Schematron
Customizing
Docbook XSL built in parameters
Docbook XSL style sheets
CSS
Assemblies
Styling the editor application
Modular documents
RelaxNG Schema
Transforming documents
Target format HTML
Target format print
Software
Frontends
Backends
TeX / LaTeX
Docbook
Exercises
LaTeX
LaTeX hello,... world
Important elements
Macro
A complete document
Docbook
Project proposals
Building a reveal.js editor
Authoring journey descriptions
Gitlab pages integration of Docbook
Codingbat reloaded
XML based exercise compilations
Past projects
List of Exercises
113473 Database and application development
Database features
Selected database products overview
Openldap
Installation
Features
CRUD
Query
Schema
Procedures / triggers
Transactions / recovery
Data access control
API support
Exercises
Mongodb
Installation
Features
CRUD
Query
Schema
Procedures / triggers
Transactions / recovery
Data access control
API support
High performance sharding cluster
Exercises
JDBC: Accessing Relational Data
Persistence in Object Oriented languages
Introduction to JDBC™
Write access, principles
Write access, coding!
JDBC™ and security
Network sniffing
SQL injection
Sanitizing user input
java.sql.PreparedStatement
Read Access
Getter methods and type conversion
Handling NULL values.
Dynamically load a JDBC™ driver
Handling surrogate keys
Transactions
JPA
Configuring a Maven based Eclipse Java™ project with Hibernate
Creating a JPA configuration
A round trip working with objects
Persisting objects
Loading Objects by primary key
Loading objects by queries
Criteria based queries
Mapping single entities and database tables
Transient properties
Properties and NULL values
Defining keys
Composed keys
Indexes (non-unique)
Renaming tables and attributes
Changing the default type mapping
Object states and transitions
XML to JPA using JAXB
Supplying a schema
Importing XML data to a RDBMS
Inheritance
Single table per class hierarchy
Database object retrieval
Null values
Joined subclasses
Retrieving Objects
Table per concrete class
Mapping related Components and entities
Primary keys revisited
Defining object equality by primary key
Object equality by natural key
Implementing Object.equals(Object) by natural keys
Entity and value types
Mapping components
Sets and lists
Caching
orphanRemoval vs. CascadeType.DELETE
Project ideas
Extending UNIX grep to databases
Database copy tool
Database schema evolution tool
List of Exercises
Software defined Infrastructure
UNIX / LINUX Basics
Prerequisites
Ubuntu / Debian Package management
Prerequisites
Cloud provider
Hetzner cloud administration GUI
SDI exercises related DNS server
Working with Terraform
Cloud-init
Volumes
Private networks
Terraform and DNS
Generating web SSL certificates
Terraform modules
Terraform loops
Getting started
Accessing your virtual machine
Global configurations
DNS
Preliminaries
Exercises
Querying DNS data.
Installing and configuring Bind
Reverse lookups
Forwarders
Mail exchange record
LDAP
Recommended Preparations
Exercises
Browse an existing LDAP Server
Set up an OpenLdap server
Populating your DIT.
Testing a bind operation as non - admin user
Extending an existing entry
Filter based search
Accessing LDAP data by a mail client
LDAP configuration
LDAP based user login
Backup and recovery / restore
Accessing LDAP by a Java™ application.
Apache web server
Preliminaries
Exercises
First Steps
Virtual hosts
SSL / TLS Support
LDAP authentication
Mysql™ database administration
Providing WEB based user management to your LDAP Server
Publish your documentation
File cloud
Exercises
Network file systems served by Samba
Prerequisites
Samba server installation
Mail
Recommended Preparations
Exercises
Install and send to local Users
Authentication Setup and Virtual Users
TLS
Spam and Virus defense
blacklisting and greylisting
Amavis, Clamav and Spamassasin
SPF (optional)
Docker
Introduction
Managing images
Running container
Volumes
Exercises
The simple way: Using SQLite
The real McCoy: Using Mariadb
Icinga
Functional checks
SNMP based checks
ssh based checks
List of Exercises
Persistence strategies and application development
Selected topics related to persistence in application development
Recommended reading
Getting started
Creating a Hibernate JPA project
Adding keys and AUTO_INCREMENT
Advocating simple key definitions
List of Exercises
Bibliographic links
Glossary
Search Highlighter (On/Off)