7 ECTS credits
195 h study time

Offer 1 with catalog number 1008047ANR for all students in the 1st and 2nd semester at a (A) Bachelor - preliminary level.

Semester
1st and 2nd semester
Enrollment based on exam contract
Impossible
Grading method
Grading (scale from 0 to 20)
Can retake in second session
Yes
Taught in
Dutch
Mid-term
Yes
Faculty
Faculteit Ingenieurswetenschappen
Department
Electronics and Informatics
Educational team
Jan Lemeire (course titular)
Bart Jansen
Ruben De Smet
Colas Schretter
Tobias Birnbaum
Activities and contact hours
36 contact hours Lecture
40 contact hours Seminar, Exercises or Practicals
27 contact hours Independent or External Form of Study
Course Content

This course is composed of three parts:

In the first part a general overview of electronic data processing systems is made. The topics are: digital representation of information, the architecture of the Von Neumann computers, the tasks and the internal operation of operating systems and the basic concepts of programming and programming languages. In a last chapter a historical overview of the computer technology and of concepts in computer science and in software engineering will be given.

In the second part the student learns the basic concepts of programming and algorithms. In the first chapter, some important concepts such as structured and object-oriented programming are introduced. Thereafter the programming language Modula 2 is used as a simple support for introducing basic notions of programming such as data types, scope rules, selection and iteration statements, functions, parameter passing and recursion. These programming concepts are illustrated through some important algorithms for searching and sorting. Together with the implementation of these algorithms, their performance, both from a time and a space point of view is systematically analyzed.
A last chapter is completely dedicated to the different techniques to validate programs.

The third part is an expansion of the scope of the second: program modularity, objects, static and dynamic memory management and complex data structures are introduced. These concepts are illustrated by means of sequential files, linear lists, trees and hashing tables.

Course material
Handbook (Required) : Practical Programming, An Introduction to Computer Science Using Python 3.6, Jennifer Campbell, Paul Gries, Jason Montojo, and Greg Wilson, 3de, The Pragmatic Programmers, 9781680502688, 2017
Digital course material (Required) : De slides en aanvullend studiemateriaal voor het eerste semester, http://www.etro.vub.ac.be/Education/Courses/Python/
Course text (Required) : Informatica, Deel I: Java en object geprogrammeerd oriƫnteren, Jan Lemeire, VUB, 2220170006161, 2019
Digital course material (Required) : De slides en aanvullend studiemateriaal voor het tweede semester, http://parallel.vub.ac.be/education/java
Course text (Required) : Informatica, deel II. Algoritmen en datastructuren -  deel III. Technologie,historiek en economische aspecten van de informatica, Jan Lemeire, VUB, 2220170006178, 2019
Additional info
Slides and course material first semester: http://www.etro.vub.ac.be/Education/Courses/Python/
 
Slides and course material second semester: http://parallel.vub.ac.be/education/java
 
The next 3 books are available in the VUBtiek:
 
1) "Practical Programming: An introduction to Computer Science using Python" geschreven door Jennifer Campbell, Paul Gries, Jason Montojo, Greg Wilson (eerste semester).
 
2) Informatica deel I: Java en object-georienteerd programmeren
 
3) Informatica deel II: "Algoritmes en datastructuren" en deel III: "technologie, historiek en economische aspecten" (tweede semester)
Learning Outcomes

General competencies

The educational goals are:
- To provide students with core knowledge about computers.
- To give students insight into the evolution of the field in order to enable them to have realistic expectations for the future.
- To provide students with a sufficient background in programming for learning by themselves how to write programs in any programming language, and with sufficient notions in software engineering for asserting the quality of software.
- To give students sufficient knowledge about algorithms for choosing adequate solutions when a new problem needs to be solved.

The competences the student is supposed to have acquired are:
- Knowledge and understanding
Knowing and understanding the global organisation of a sequential computer
Knowing the main tasks of a multitasking operating system and understanding how it operates.
Knowing and understanding the underlying principles and architecture of computer networks
Knowing and understanding basic concepts of programming languages and their interpretation.
Understanding the relative costs associated with hardware and software
Knowing and understanding the the core techniques used to specify, design, implement and validate systems based upon software.
Knowing the essential constructs of high-level programming languages and understanding their implementation on sequential computers.
Knowing and understanding the classical algorithms for searching and sorting, and being able to evaluate the resources needed for their execution.
Knowing the concepts underlying object oriented programming and understanding its benefits.
Understanding the purpose and the implementation of dynamic data structures.
- Applying knowledge and understanding
Being able to solve simple exercices and answer questions about the above subject matters intended for testing the student's insight
Being able to perform normal information retrieval and office automation tasks on a PC.
- Making judgements
Being able for all the above subject matters to solve simple exercices implying choices, predict likely evolutions and evaluate advantages and disadvantages of different approaches.
- Communication
Being able to communicate efficiently, both orally and in writing about the above subject matters.

- Learning skills
Starting from the basis acquired in this course, being able to learn on his/her own a classical programming language.

Grading

The final grade is composed based on the following categories:
Oral Exam determines 22% of the final mark.
Written Exam determines 56% of the final mark.
PRAC Practical Assignment determines 22% of the final mark.

Within the Oral Exam category, the following assignments need to be completed:

  • schrif ex inhoud HOC 1 with a relative weight of 1 which comprises 22% of the final mark.

    Note: schriftelijk examen over de inhoud van de hoorcolleges van het eerste semester

Within the Written Exam category, the following assignments need to be completed:

  • oefeningenexamen 2 with a relative weight of 17 which comprises 17% of the final mark. This is a mid-term test.

    Note: praktisch oefeningenexamen over practica eerste semester
  • theorieexamen mondeling with a relative weight of 17 which comprises 17% of the final mark.

    Note: mondeling examen over de hoorcolleges van het tweede semester
  • oefeningenexamen 1 with a relative weight of 22 which comprises 22% of the final mark. This is a mid-term test.

    Note: praktisch oefeningenexamen over practica eerste semester

Within the PRAC Practical Assignment category, the following assignments need to be completed:

  • project met mond verdediging with a relative weight of 1 which comprises 22% of the final mark.

    Note: projectwerk met bijhorende mondelinge verdediging

Additional info regarding evaluation

Evaluation of project, exam on practical exercises and exam on theory.

Allowed unsatisfactory mark
The supplementary Teaching and Examination Regulations of your faculty stipulate whether an allowed unsatisfactory mark for this programme unit is permitted.

Academic context

This course offer isn't part of a fixed set of graduation requirements. Hence, it is a free elective.