Fundamentals for Computer Science (B-KUL-G0P79A)

6.0 ECTS Dutch 58.5 Second termSecond term Basic
POC Informatica

The course intends to offer insight in a number of formal aspects of computer science, in particular in complexity theory (which has been introduced informally in the first programming course), graph theory (which is important in many applications) and fixed point theory (important for the understanding of inductive definitions).The student must be able to reproduce proofs and to use theorems when solving new problems. The student must have a well founded critical attitude towards definitions and be able to understand and discover possibilities for the application of the theory.

The course "Hoger Wiskunde" is a preresiquite as well as familiarity with logic.

Complexity theory (8h)
• notion of a language and to decide a languag
• regular languages and FSA
• Turing machines (det and nondet)
• computing with a TM
• the hypotheses of Church
• definition of complexity and big-O notation
• deriving a recurrence equation and solving it
• P, NP, NPC: definitions and relations 
 
Graph theory (13h)
• definitions: grahp, path, ...
• representing graphs
• graph isomorphism
• weighted graphs
• plane graphs
• graph coloring
• trees: definitions and properties
• spanning trees
• minmal spanning trees
• tree traversal
• game trees
• transport networks
• maximal flow/minmal cut
• matching networks and Hall's theorem
• Petri-nets 
 
Fixed point theory (5h)
• order
• monotone and continuous functions on (complete) lattices
• theorems of Tarski and Kleene

Syllabus


This course unit is a prerequisite for taking the following course units:
H01Q3A : Problem solving and engineering design, computer science and engineering
H01Q3C : Problem Solving and Engineering Design: Computer Science

Activities

4.1 ects. Fundamentals for Computer Science (B-KUL-G0P79a)

4.1 ECTS Dutch 26.0 Second termSecond term
POC Informatica

Complexity theory (8 hours)
• the concept language and the decision of a language
• regular languages and their decision by FSA
• Turing machines - deterministic and non-deterministic
• calculating with TM
• formulation of Church's hypothesis
• complexity definition of an algorythm and the big O notation
• design of a recurrency comparison for the time complexity of an algorythm
• techniques for solving recurrency comparisons
• P, NP and NP-C: definitions and links

 
Graphs theory (13 hours)
• definitions: graph, path
• graph presentation
• graph isomorphism 
• weighted graphs
• flat graphs
• graph colouring  
• trees: definitions and qualities
• stretcging trees
• minimal stretching trees
• passing through trees
• game trees  
• transport networks
• maximal flow
• matching networks and Hal's theorem
• Petrinets

 
Fixed points theory (5 hours)
• order relation
• monotonous and continuous afbeeldingen
• Tarski's theorem 
• Kleene's theorem

1.9 ects. Fundamentals for Computer Science: Exercises (B-KUL-G0P80a)

1.9 ECTS Dutch 32.5 Second termSecond term
POC Informatica

See lecture.

Evaluation

Evaluation : Fundamentals for Computer Science (B-KUL-G2P79a)

Mode of evaluation : Written

closed books for theory.
open books for exercises.