Informatik und Kommunikationssysteme
- Zulassung : /de/ausbildung/bachelor/informatik-und-kommunikationssysteme/zulassung/
- Ausbildungsprogramm : /de/ausbildung/bachelor/informatik-und-kommunikationssysteme/ausbildungsprogramm/
- Studienaufbau : /de/ausbildung/bachelor/informatik-und-kommunikationssysteme/studienaufbau/
- Berufliche Perspektiven : /de/ausbildung/bachelor/informatik-und-kommunikationssysteme/berufliche-perspektiven/
- Mobilität : /de/ausbildung/bachelor/informatik-und-kommunikationssysteme/mobilitat/
- Personen : /de/ausbildung/bachelor/informatik-und-kommunikationssysteme/personen/
Informatik und Kommunikationssysteme : /de/ausbildung/bachelor/informatik-und-kommunikationssysteme/
- Zulassung : /de/ausbildung/bachelor/informatik-und-kommunikationssysteme/zulassung/
- Ausbildungsprogramm : /de/ausbildung/bachelor/informatik-und-kommunikationssysteme/ausbildungsprogramm/
- Studienaufbau : /de/ausbildung/bachelor/informatik-und-kommunikationssysteme/studienaufbau/
- Berufliche Perspektiven : /de/ausbildung/bachelor/informatik-und-kommunikationssysteme/berufliche-perspektiven/
- Mobilität : /de/ausbildung/bachelor/informatik-und-kommunikationssysteme/mobilitat/
- Personen : /de/ausbildung/bachelor/informatik-und-kommunikationssysteme/personen/
Ausbildungsprogramm
Studiengang:
Informatik und Kommunikationssysteme
Vertiefung:
Software Engineering
Module: Computer-Grundlagen
Kursbeschreibung
Zum Modul-
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