Studiengang: Informatik und Kommunikationssysteme
Vertiefung: Software Engineering
Module: Computer-Grundlagen

Kursbeschreibung

Zum Modul Programmierung

  • Angestrebte Kompetenzen und Lernziele

    Allgemeine Ziele

    • Innerhalb der syntaktischen und semantischen Strenge der erlernten Programmiersprache Konstrukte (und deren Kompositionalität) beherrschen, die sich auf Folgendes beziehen: (a) Daten (Typen, Ausdrücke, Operatoren, Arrays ...); (b) Kontrolle (if, switch, loops, methods, exceptions ...); (c) Objektorientierung (Kapselung, Vererbung und Polymorphismus, abstrakte Klassen und Schnittstellen, Lambda-Ausdrücke ...).
    • den Ablauf eines Programms vorhersagen (Codeverständnis, Schritt-für-Schritt-Verfolgung, Darstellung des Speicherinhalts in den einzelnen Schritten)
    • Sprachkonstrukte sinnvoll nutzen, um ein Programm zu schreiben, das ein bestimmtes Verhalten zeigen soll.
    • Abstrakt und logisch denken, dabei zwischen Spezifikation und Implementierung unterscheiden und geeignete Formalismen (Skizzen, Pseudocode, ...) verwenden.
    • Eine Lösung für ein einfaches Problem entwerfen und entwickeln, indem sie ein Programm mithilfe einer Entwicklungsumgebung erstellen.

    Am Ende des Kurses kann der Student / die Studentin

    • die Entwicklungsschritte bei der Programmierung, die benötigten Werkzeuge und die erforderlichen resp. erzeugten Dateien beschreiben
    • eine Entwicklungsumgebung und einen Debugger zum Schreiben und Testen eines Programmes einsetzen
    • den Begriff des Typs einer Variable/Konstante erklären und zwischen einfachen und referentiellen Typen unterscheiden
    • Variablen deklarieren und initialisieren
    • arithmetische, logische und relationale Operatoren verwenden, um Ausdrücke zu bilden
    • bedingte Anweisungen (Verzweigung und Auswahl) schreiben
    • iterative Instruktionen in einfachen Algorithmen verwenden
    • Felder (Arrays) deklarieren, erstellen und verwenden
    • Methoden deklarieren und aufrufen
    • Ausnahmefehler (Exceptions) behandeln und wenn nötig weiterleiten
    • ein Programm schreiben zum Lesen/Schreiben von Textdateien
    • eine Klasse schreiben, Instanzen (Objekte) erzeugen und verwenden
    • statische Felder und Methoden erklären und verwenden
    • den Begriff der Vererbung erklären und eine Klasse schreiben, die von einer Oberklasse erbt
    • mit abstrakten Klassen und Schnittstellen arbeiten
    • generische Elemente einsetzen
    • die Definitionsweise von Klassen (intern, anonym, ...) geeignet auswählen
    • Lambda-Ausdrücke verwenden
    • Zahlendarstellungen (int, float) und ihre Grenzen erklären
  • Kursinhalte

    Einführung in die Programmierung

    • Architektur der Hard- und Software eines Computers, Hauptbestandteile
    • Entwicklungsprozess für Programme, benutzte Werkzeuge und erzeugte Dateien
    • Etappen und Werkzeuge: Entwicklungsphasen und Arbeitsumgebung
    • Beherrschen der Grundfunktionen einer Entwicklungsumgebung (Editieren, Kompilieren, Debugging)
    • Begriff der Typen und der Variablen, Unterscheidung zwischen einfachen und referentiellen Typen
    • Begriff der Programminstruktion

    Programmierung in Java

    • Grundlagen der Sprache, Identifikatoren, reservierte Wörter, Variablen, einfachte Typen, Ausdrücke und Zuweisungen
    • Kontrollstrukturen: Sequenz, Auswahl (Instruktionen if..else und switch)
    • Iterative Instruktionen (Schleifen while, do..while und for)
    • Methoden und Funktionen (Deklaration, Implementation, Verwendung); Übergabe von Parametern
    • Ein- und mehrdimensionale Felder (Arrays)
    • Erstellen und Manipulieren von Zeichenketten (String)
    • Auslösen, Behandeln und Weitergeben von Ausnahmefehlern (Exceptions)
    • Einfache Ein-/Ausgabe (I/O), Begriff des Stroms, Lesen und Schreiben von Textdateien
    • Klassen und Objekte
    • Packages und Zugriffskontrolle
    • Statische Elemente (Attribute und Methoden)
    • Begriff der Vererbung und Erstellen von Unterklassen
    • Abstrakte Klassen und Interfaces
    • Interne/anonyme Klassen
    • Lambda-Ausdrücke
    • Generische Programmierung
    • Einige gute Programmierpraktiken
    • Zahlenarten und ihre Grenzen, Beispiel mit RSA-Kryptographie

Unterrichtsform

Vorlesungen inkl. Übungen
30 Unterrichtseinheiten
Laborarbeit
66 Unterrichtseinheiten
Travail personnel
99 Unterrichtseinheiten

Kursbeschreibung

Gültigkeit
2024-2025
Studienjahr
1. Jahr
Semester
Herbst
Programm
Französisch,Zweisprachig
Studiengang
Informatik und Kommunikationssysteme
Kurssprache
Deutsch
Code
B1C-PROG-S
Niveau
Grundstufe
Typ
Grundlagenkurs
Art der Ausbildung
Bachelor

Lernkontrolle

  • Schlussprüfung Lernkontrolle Berichte, Berichte, Evt. unangekündigte Kurztests

Notenberechnung / Validierungsmodalitäten

Theorie_Note = Gewichteter Durchschnitt der Zwischenprüfungen. Praktikums_Delta = Durchschnitt der Bonus/Malus-Bewertungen, auf eine Kommastelle gerundet (gemäss separatem Dokument, Besprechung in 1. Kursstunde). Kurs_Note = Theorie_Note + Praktikums_Delta

Dozierende

Serge Ayer, Frédéric Bapst, Beat Wolf