Bachelor Courses Offered and Timetable

Timetable

The timetable for the academic year 2016/2017 can be viewed and downloaded as a pdf document.
 

Courses Offered

1st semester (autumn)
  • IN.1020 Introduction to Programming  
    Programming is one of the most basic and essential skills that each computer scientist must have. This course therefore teaches basic programming concepts. Students learn the elementary control and data structures that are necessary for developing computer programs. Detailed information in French or German (on GESTENS)  
  • IN.1021 Networks
    The most important protocols and services that enable computer-to-computer communication are discussed in this course. Starting with local networks, how the Internet functions and how secure communication over the Internet can be achieved are then explained. Detailed information in French or German (on GESTENS) 
  • IN.1022 Computer Architecture
    This course focuses on computers as digital electronic systems. This view of computers requires an understanding of logical operations and binary arithmetic, the interaction between the processor, memory, and peripheral devices, as well as the machine language that the processor understands. Detailed information in French or German (on GESTENS)
  • MA.0101/MA.0161 Analysis I
    The courses Introduction to Analysis I and II refresh knowledge of real functions (differential and integral calculus) acquired in the gymnasium and enhance them, especially in the area of differential equations, for which purpose complex numbers are also introduced. Detailed information in French or German (on GESTENS)
  • MA.0201/MA.0261 Linear Algebra
    Starting with solving linear equation systems, the Introductory Linear Algebra course introduces an area of fundamental importance for every mathematical discipline. Detailed information in French or German (on GESTENS)
2nd semester (spring)
  • IN.2020 Systems-Oriented Programming
    In addition to teaching more advanced programming, this course focuses in particular on how computers and running programs interact. The program will use and/or manipulate resources available in the computer (e.g. memory management or use of operating-system functions). Detailed information in French or German (on GESTENS) 
  • IN.2022 Robotics
    Controlling robots is one important application area of computer science. Depending on the task, robots need to master complex movement patterns or learn an unknown environment. The main goal of this course is to communicate these different aspects of robotics, including common learning algorithms. Detailed information in French or German (on GESTENS)
  • IN.2028 Object-Oriented Programming
    Object-oriented programming is a very systematic, structured way of programming. (Abstract) objects mutually influence one another to achieve the desired functionality of a program. An object can be derived from another object and inherit its properties, which can then be adapted. Objects can be encapsulated, meaning that they can only be accessed in very specific ways. Detailed information in French or German (on GESTENS)
  • MA.0102/MA.0162 Analysis II
    The courses Introduction to Analysis I and II refresh knowledge of real functions (differential and integral calculus) acquired in the gymnasium and enhance them, especially in the area of differential equations, for which purpose complex numbers are also introduced. Detailed information in French or German (on GESTENS)
  • MA.0401/MA.0461 Statistics
    The Introductory Statistics course gives an introduction to statistical methods that is essential for every scientist. Detailed information in French or German (on GESTENS)
3rd semester (autumn)
  • IN.3021 Databases
    Many computer science applications in practice require storing and retrieving data in an efficient way. This is precisely the task of data bases. They are treated in this lecture both formally (modelling) and practically (data base management systems, query languages). Detailed information in French or German (on GESTENS) 
  • IN.3028 Algorithmics
    In programming courses, you learn how to implement/program specific problem solving strategies. This course focuses on teaching common problem solving strategies (algorithms) for frequently occurring problems (e.g. sorting, searching in graphs, etc.) and on how to conceptualize new ones. Additionally, the quality of algorithms (in terms of time and memory efficiency) will be discussed. Detailed information in French or German (on GESTENS)
  • IN.3029 Semi-Structured Data
    The Internet, the data cloud, etc. contain data that, in order to be processed by machines, must have a machine-readable structure. This course targets techniques and mechanisms for presenting data and converting data between different semi-structured formats. Detailed information in French or German (on GESTENS)
  • MA.7003 Mathematical Methods for Computer Science I
    Detailed information in French or German (on GESTENS)
4th semester (spring)
  • IN.4020 Software Engineering
    Large software systems are not developed ad hoc by an individual person, they are usually developed in a systematic way by a team of developers. It is precisely this systematic way of developing software that is denoted by the term software engineering. This course focuses on the semi-formal design of software, as well as on established software design patterns. Detailed information in French or German (on GESTENS)
  • IN.4022 Operating Systems
    Operating systems are the interface between computer hardware and applications. They must make the managed memory accessible to applications and enable inter-process communication. Additionally, they must manage the input/output to/from peripheral devices and the computer network. All of these functionalities are addressed in this course, and concrete operating systems are discussed. Detailed information in French or German (on GESTENS) 
  • IN.4028 Process Control
    Computers can be used to control processes in the physical world. To do so, a suitable “virtual” representation of real processes must be developed, and the physical process must be controllable using suitable interfaces. This course discusses how computers are used to control real processes. Detailed information in French or German (on GESTENS)
  • MA.7004 Mathematical Methods for Computer Science II
    Detailed information in French or German (on GESTENS)
5th semester (autumn)
  • IN.5020 Functional and Logical Programming
    Functional programming is a mathematically inspired way of programming in which program functions are perceived as mathematical functions. Therefore, recursion becomes the main programming concept. Logical programming is a way of programming inspired by formal logical systems. The program is based on axioms (facts) and derivation rules. Both programming concepts have certain similarities and are therefore treated together in this course. Detailed information in French or German (on GESTENS) 
  • IN.5021 Formal Methods
    The goal of formal methods is to avoid conceptual errors in software development. A program is analysed logically and checked for logical inconsistencies. This course discusses concepts and algorithms in logic for treating formal methods. Simultaneously, fundamental concepts such as computability and tractability of problems are discussed. Detailed information in French or German (on GESTENS) 
  • IN.5022 Concurrent and Distributed Computing
    If several programs or processes are running in parallel to jointly solve a task, one talks about concurrent and distributed systems. In this area of computer science, new problems emerge that are not common in single processing: programs can mutually block themselves (deadlocks) or simultaneously manipulate a shared resource in an inconsistent way. Fundamental programming techniques for distributed systems are discussed in this course. Detailed information in French or German (on GESTENS)   
6th semester (spring)
  • IN.6020 Bachelor Thesis 
    The Bachelor thesis is a substantial individual student project at the end of the Bachelor programme. The student should show, using the skills acquired during their studies, that they are able to deal with a computer science task in an independent manner. Writing a dissertation (final report) on the project carried out and giving a final presentation are part of the Bachelor thesis. To carry out the Bachelor thesis, the student must find a supervisor (professor or lecturer) who is capable of supervising a project in the field of the Bachelor thesis. The supervisor is responsible for guiding the student throughout the thesis.
  • IN.6X2X Compulsory Elective II
    Compulsory elective courses are offered at the Universities of Bern, Neuchâtel, and Fribourg, and their content varies. Potential topics are computer graphics, machine learning, languages and compilers, decision support, and IT project management. The following compulsory elective courses are offered in the spring semester 2017:
 
Teaching Units for Minors and Supplementary Disciplines
  • IN.0120 Scientific Programming
    In addition to their specific subject, a basic knowledge of computer programming is usually needed for students in the Faculty of Science. The goal of this course is to provide these students with programming skills that are applicable to different disciplines in mathematics and science. Detailed information in French or German (on GESTENS) 
  • IN.0121 Scientific Programming (for Biomedical Sciences)
    A basic knowledge of computer programming is usually needed for biomedical sciences students. The goal of this course is to provide these students with the programming skills needed for their discipline. Detailed information in French or German (on GESTENS) 
  • IN.0220 Data Processing and Visualization
    In virtually all scientific disciplines, data must be processed and visualised in a suitable way. This course teaches techniques that allow processing data with regard to its visual presentation. Detailed information in French or German (on GESTENS)