CAS Software Development Herbstsemester 2014
Inhaltsverzeichnis 1 Abstract 3 2 Umfeld und Motivation 3 3 Zielgruppe 3 4 Ausbildungsziele 3 5 Voraussetzungen 3 6 Kursübersicht 3 7 Kompetenzprofil 4 8 Organisation 4 9 en 5 9.1 Java 5 9.2 Datenstrukturen und Algorithmen 5 9.3 Relationale Datenbanken und SQL 6 9.4 XML Technologien 6 9.5 Graphische Benutzeroberflächen / Ergonomie 6 9.6 Integrationsprojekt 7 10 Kompetenznachweise 7 11 Dozierende 8 12 Ergänzende Lehrmittel 8 13 Termine 9 14 Dokumenteninformation 9 Study Guide Software Development Herbstsemester 2014 2/9
1 Abstract Fundierte Kenntnisse von Programmier-Werkzeugen, der Datenmodellierung und von Datenstrukturen und Algorithmen sind für jeden Software Entwickler selbstverständlich. Dieses CAS vermittelt fundiertes Wissen und Fähigkeiten für das Arbeiten in einem professionellen Software- Entwicklungsumfeld. 2 Umfeld und Motivation In einem zunehmend komplexer werdenden Umfeld bildet ein praxisorientierter Lehrgang in die Software Entwicklung die Grundlage, um professionelle Software Systeme zu modellieren, zu entwickeln und zu warten. Fundierte Kenntnisse der wichtigsten Programmier-Werkzeuge (Java, SQL, XML), DB-Modellierungsmethoden und Datenstrukturen sind für jeden Software-Entwickler selbstverständlich. 3 Zielgruppe Das CAS richtet sich an Personen, die bereits Erfahrung in der Entwicklung von Software haben, sich jedoch eine vertiefte Ausbildung im Bereich Datenstrukturen, Datenbanken sowie Software- Entwicklung in Java aneignen möchten. 4 Ausbildungsziele Die Teilnehmenden erwerben fundiertes Wissen und Fähigkeiten für das Arbeiten in einem professionellen Software-Entwicklungsumfeld. 5 Voraussetzungen Neben den generellen Zulassungsbedingungen erwarten wir gute Programmier-Kenntnisse und Projekterfahrung in einer OO Sprache, Kenntnisse von UML und Design Patterns sowie HTML. 6 Kursübersicht Kurs/Lehreinheit Lektionen Stunden Java 40 Datenstrukturen und Algorithmen 40 Relationale Datenbanken und SQL 32 XML Technologien 32 Graphische Benutzeroberflächen 40 Integrationsprojekt 32 ~ 60 Total 216 ~ 60 Das CAS umfasst insgesamt 12 ECTS Punkte. Für die einzelnen Kurse ist entsprechend Zeit für Selbststudium, Prüfungsvorbereitung etc. einzurechnen. Study Guide Software Development Herbstsemester 2014 3/9
7 Kompetenzprofil Legende: 1. Kenntnisse von Begriffen, Definitionen und Regeln; Faktenwissen 2. Verstehen von Zusammenhängen, Erklären von Sachverhalte erklären können 3. Anwendung des Wissens in einfachen Situationen 4. Analyse der eigenen Lösung 5. Synthese neuer Lösungen und Anwendung in komplexen Situationen 6. Beurteilung der Anwendbarkeit für bestimmte Probleme und Situationen, methodische Abwägung und Evaluation von Alternativen, Beziehungen zu anderen Fachgebieten 8 Organisation CAS-Leitung: Dr. Beatrice Amrhein Tel: +41 31 848 32 76 E-Mail: beatrice.amrhein@bfh.ch CAS-Administration: Kathrin Blumenthal Tel: +41 31 84 83 272 E-Mail: kathrin.blumenthal@bfh.ch CAS-Daten: KW 43, 2014 bis KW 14, 2015 Donnerstag, 08:30 16:15 Uhr Dienstag, 16:30 19:45 Uhr Study Guide Software Development Herbstsemester 2014 4/9
9 en Nachfolgend sind die Inhalte der einzelnen Kurse und Lehreinheiten beschrieben. Änderungen sind bis zu Beginn des Lehrgangs möglich. Angaben zu Terminen und Kompetenznachweisen sind ab Studienbeginn verbindlich. Jeder Kurs besteht aus Unterricht mit praktischen Übungen und Projekten / Fallbeispielen vor Ort, ergänzt durch selbstständige Projektarbeit in Gruppen und individuelles Selbststudium. Die Projektarbeiten und Fallstudien werden von den Dozierenden mit klaren Leistungszielen definiert. Das individuelle Selbststudium beinhaltet das persönliche Vertiefen der Lerninhalte, das Vorbereiten von Prüfungen usw. Alle Kurse werden systematisch mit Studierendenbefragungen evaluiert und einem kontinuierlichen Qualitätsmanagement unterzogen. 9.1 Java Die Teilnehmenden kennen die Möglichkeiten von Java und können diese in ihren Projekten richtig einsetzen. Themen Datentypen: Primitive vs. Referenztypen, Arrays, Strings, Enumerations Klassen und Objekte, Zugriffsrechte, Klassenhierarchie Vererbung, Polymorphismus, Interfaces Definieren und Importieren von Packages Exception Handling Lambda-Ausdrücke Ein-/Ausgabe mit Streams Definieren und Anwenden von Generics Einführung in die Thread-Programmierung Lehrmittel Literaturempfehlung: Sprechen Sie Java (siehe [1]) 9.2 Datenstrukturen und Algorithmen Die Studierenden kennen die wichtigsten Datenstrukturen mit ihren Methoden, sowie die klassischen Algorithmen und können diese anwenden. Ausserdem können sie Komplexitätsabschätzungen von einfachen Algorithmen vornehmen. Themen Datenstrukturen: Java Collections Algorithmen-Schemata, Komplexitätsanalyse Binäre Suche, B-Bäume, Hashing-Verfahren Lineare und n log(n), stabile und nicht stabile Sortier-Verfahren Reguläre Ausdrücke, endliche Automaten Grammatiken: EBNF-Form, Top-Down Parser Kryptologie: Sicherheit, Public-Key Kryptosysteme, Anwendungen Lehrmittel Skript, das alle wesentlichen Lerninhalte umfasst Study Guide Software Development Herbstsemester 2014 5/9
9.3 Relationale Datenbanken und SQL Die Teilnehmenden erwerben gute Grundkenntnisse über Einsatz und Modellierung von Datenbanken. Sie erlernen die Benützung von Datenbanken aus einem Java Programm. Themen Entwurf von Datenmodellen Schlüssel, Normalformen, Beziehungen, Integrität SQL Datentypen, SQL Tabellen erzeugen, modifizieren und abfragen SQL Funktionen und Prozeduren Transaktionsbefehle JDBC Lehrmittel Skript, das alle wesentlichen Lerninhalte umfasst 9.4 XML Technologien Die Studierenden besitzen einen Überblick über die wichtigsten XML Technologien und haben exemplarisch einfache Verarbeitungsprogramme und Transformationen für XML Dokumente realisiert. Themen Wohlgeformtheit und Gültigkeit von XML-Dokumenten XML Schema Extensible Stylesheet Language: XPath, XSLT, XSL-FO XML Verarbeitung: JAXB, SAX, DOM, StAX Lehrmittel Skript, das alle wesentlichen Lerninhalte umfasst 9.5 Graphische Benutzeroberflächen / Ergonomie Die Studierenden sind in der Lage, selber ein grafisches Benutzer-Interface zu planen und zu erstellen. Sie kennen die wichtigsten Ergonomischen Grundsätze und Design Pattern aus dem GUI Bereich und können diese mit Hilfe der Swing / JavaFX Bibliothek umsetzen. Themen Swing / JavaFX Grundlagen (Einfache Komponenten, Container, Menus,...) Layout-Manager Event-Handling Design Pattern (Observer, MVC, Command-Processor, Property-Pattern) Adaptierbare Komponenten (JList, JTable, JTree) Internationalisierung Ergonomie und Usability: Planung und Design einer Benutzeroberfläche Lehrmittel Skript, das alle wesentlichen Lerninhalte umfasst Study Guide Software Development Herbstsemester 2014 6/9
9.6 Integrationsprojekt Anwenden aller gelernten Technologien in einem gemeinsamen Projekt. Themen Entwickeln einer eigenen Applikation Entwurf der Datenbank Einbinden der Datenbank in Java mit JDBC Einbinden von XML Technologien ins Java Umfeld (JAXP) JUnit Tests und Checkstyle Projekt Management und Versionierung Lehrmittel Lehrmittel der Kurse Datenbanken, Java, GUI und XML. 10 Kompetenznachweise Für die Anrechnung der 12 ECTS-Punkte ist das erfolgreiche Bestehen der Qualifikationsnachweise (Prüfungen, Projektarbeiten) erforderlich, gemäss folgender Aufstellung: Kompetenznachweis Gewicht Art der Qualifikation Erfolgsquote Studierende Java 1.8 Einzelprüfung 0 100 % Datenstrukturen und Algorithmen 1.8 Einzelprüfung 0 100 % Relationale Datenbanken und SQL 1.6 Einzelprüfung 0 100 % XML Technologien 1.6 Einzelprüfung GUI 1.6 Einzelprüfung Projekt 1.6 Gruppenarbeit Gesamtgewicht 10 Gesamterfolgsquote 0 100 % ECTS Note A - F Alle Studierenden können in einem Qualifikationsthema eine Erfolgsquote von 0 bis 100% erarbeiten. Die gewichtete Summe aus den Erfolgsquoten pro Thema und dem Gewicht des Themas ergibt eine Gesamterfolgsquote zwischen 0 und 100%. Die Gesamterfolgsquote wird in eine ECTS Note A bis E umgerechnet, gemäss Studienreglement. Weniger als 50% Gesamterfolgsquote ergibt eine ungenügende Note F. Study Guide Software Development Herbstsemester 2014 7/9
11 Dozierende Kursverantwortliche Dozierende sind: Vorname Name Firma E-Mail Beatrice Amrhein Berner Fachhochschule beatrice.amrhein@bfh.ch Ursula Deriu Tirsus GmbH ursula.deriu@tirsus.com Gilles Maitre Postfinance gilles.maitre@bluewin.ch Philipp Locher Berner Fachhochschule philipp.locher@bfh.ch 12 Ergänzende Lehrmittel Ergänzende Lehrmittel sind Empfehlungen, um den Stoff zu vertiefen oder zu erweitern. Die Beschaffung liegt im Ermessen der Studierenden: Nr Titel Autoren Verlag Jahr ISBN [1] Java-Programmierung - Das Handbuch zu Java 8 [2] Sprechen Sie Java? Eine Einführung in das systematische Programmieren Heiko Hansen, Guido Krüger Hanspeter Mössenböck O'Reilly 2014 ISBN: 978-3-95561-514-7 Dpunkt Verlag GmbH 2014 ISBN: 978-3-86490-099-0 [3] Java ist auch eine Insel 1 Einführung, Ausbildung, Praxis. Aktuell zu Java 8 Christian Ullenboom Galileo Press 2014 ISBN: 978-3-8362-2873-2 [4] Einstieg in XML Grundlagen, Praxis, Referenz. Für Anwendungsentwicklung und E-Publishing. Transformation, Formatierung, Schnittstellen. XML Schema, DTD, XSLT, CSS, XSL, XPath, DOM, SAX, SOAP, XQuery, XForms, HTML5, EPUB Helmut Vonhoegen Galileo Press 2013 ISBN: 978-3-8362-2620-2 [5] Taschenbuch Datenbanken Thomas Kudrass Hanser Fachbuchverlag 2015 ISBN: 978-3-446-43508-7 Study Guide Software Development Herbstsemester 2014 8/9
13 Termine Stundenplan CAS SD HS14 siehe Sharepoint 14 Dokumenteninformation CAS SD HS14 2014-09-14 Die Inhalte und Angaben in diesem Study Guide können sich bis zum Studienstart noch verändern. Berner Fachhochschule Technik und Informatik Weiterbildung Wankdorffeldstrasse 102 CH-3014 Bern Telefon +41 31 848 31 11 Email: office.ti-be@bfh.ch ti.bfh.ch/weiterbildung ti.bfh.ch/cas-sd Study Guide Software Development Herbstsemester 2014 9/9