Kies de Nederlandse taal
Course module: 201300070
Pearls of Computer Science
Course infoSchedule
Course module201300070
Credits (ECTS)15
Course typeModule
Language of instructionEnglish
Contact M. van Keulen
PreviousNext 5
dr. H.F.M. Aarts
Lecturer H.J.A. op den Akker
Lecturer P.T. de Boer
C.M.M. Heijnen
dr. J. de Jong
Academic year2016
Starting block
Application procedureYou apply via OSIRIS Student
Registration using OSIRISYes
Learning goals
Pearl 000 Black pearl — Computer Architecture
After absorbing the pearl “Computer Architecture”
• The student can work with binary and hexadecimal number representations, binary logic and boolean algebra.
• The student knows the basic architecture of a computer and its concepts register, memory, address, ALU, clock, program, program counter, instruction and mnemonic.
• The student can write simple programs for a microcomputer in machine language using arithmetic, I/O, and (conditional) jump instructions.

Pearl 001Blue pearl — Algoritmics
After absorbing the pearl “Algoritmics”
• The student can explain the importance of searching and sorting algorithms;
• The student can explain the principle of and differences between linear and binary search methods, as well as between bubble sort and merge sort;
• The student understands the complexity arguments behind the aforementioned algorithms and can analyse which is the best solution in what context;
• The student can apply simple imperative programming concepts: if/then, while, integer variables and arrays;
• The student can program the above algorithms in Python.

Pearl 010 Green pearl — Databases
After absorbing the pearl “Databases”
• The student knows the basic concepts of databases
• The student can design a databaseschema for a simple case using ER-modeling.
• The student can realize such a design in a relational DBMS using SQL.
• The student can query and update a relational DBMS with SQL.

Pearl 011 Cyan pearl — Functional Programming
After absorbing the pearl “Functional Programming”
• The student knows the basic concepts of the chosen functional language,
• The student is able to explain the concept of function application,
• The student understands the principles of recursion and their relationship with induction,
• The student is able to express simple algorithms in the chosen functional language.

Pearl 100 Red pearl — Intelligent Interaction
After absorbing the pearl “Intelligent Interaction”
• The student knows the basic concepts of artificial intelligence and can design a simple rule-based socially intelligent system.
• The student knows the basic principles of machine learning and can design and execute a classification task with a (black-box) classifier.

Pearl 101 Magenta pearl — Computer Networks and Operating Systems
After absorbing the pearl “Computer Networks and Operating Systems”
• The student can identify and explain the most important responsibilities of an operating system.
• The student understands the working and layered construction of packet-switched computer networks,
and can reason about the therein occurring delays.
• The student knows the basic working of the internet and internet applications as well as the protocols like TCP, IP, and HTTP.

Pearl 110 Yellow pearl — Cryptography
After absorbing the pearl “Cryptography”
• The student understands symmetric-key encryption: block ciphers and their modes of operation, stream ciphers, and the one-time-pad. They know some basic design techniques of such ciphers, such as linear feedback shift registers and Feistel networks. Also, they know about the existence of DES and AES.
• The student understands asymmetric-key encryption: the RSA cryptosystem and the RSA signature scheme. They know how to use it for key exchange (hybrid encryption).
• The student has some necessary background knowledge of elementary number theory (modular arithmetic, Euclidean algorithm) and basic probability theory, for a proper understanding of the above mentioned cryptosystems.

Pearl 111 White pearl — Requirements Engineering
After absorbing the pearl “Requirements Engineering”
• The student can explain the importance of controlled and predictable realisation of software and project artifacts
• The student knows a few techniques for project management
• The student can derive and formulate requirements as well as acceptance criteria for them
• Besides reaching these learning goals, it is an explicit additional goal of this pearl to formulate requirements and set up a structure for the execution of the project of this module. Project After carrying out the project
• The student can coherently apply and integrate knowledge and skills in a team and for a project that is based on real-world aspects.
• The student has experienced going through all phases of realizing a software artifact

Academic Skills
After absorbing and carrying out the exercises of Academic Skills
• The student can explain the importance of working together in a team
• The student can effectively give an receive feedback
• The student understands and can apply the core quality quadrant model of Daniel Ofman
• The student understands and can apply the Belbin team role model
• The student can effectively resolve team conflicts
• The student can evaluate a project
• The student understands the concepts of fraud and plagiarism, and knows how to behave responsibly as a professional concerning these aspects

Mathematics A
The student is able to:
Work with elementary properties of sets and logic:
•        Notations of sets
•        Operations on sets
•        Special subsets of real numbers
•        Logical statements, connectives
•        Truth tables
•        Predicates and quantifiers
•        Logical reasoning

Construct elementary proofs:
•        Direct proof
•        Proof by contradiction
•        Proof by cases
•        Counterexample
•        Mathematical induction

Work with elementary properties of functions and combinatorics:
•        Onto, one-to-one
•        Bijections, inverse, compositions
•        Inclusion-exclusion principle
•        Factorials, permutations and combinations
•        Newton's binomial theorem
•        Cardinality and countability

Mathematics B1
Work with vectors and elementary properties of functions, especially with the rules of differentiability:
•        apply elementary vector operations
•        calculate dot product and cross product
•        apply elementary properties of functions
•        calculate derivatives using differentiation rules and the derivatives of elementary functions

Solve constant-coefficient linear differential equations and work with complex numbers:
•        solve homogeneous equations using the characteristic equation
•        solve first and second order equations using the method of undetermined coefficients
•        solve initial / boundary value problems
•        plot (sets of) complex numbers in the plane
•        calculate absolute value and argument of a complex number to express the complex number in polar form
•        apply the complex arithmetic operations
•        find roots of a complex number and solve binomial equations
In this module, the student receives an introduction to eight ‘pearls’ of computer science covering the breadth of the discipline. One gets acquainted with computer architecture, programming of algorithms, encryption, software development, the internet as computer network, functional programming, artificial intelligence, and databases. Besides this, students work together on a project that either realizes a system that automatically and in an intelligent manner analyses and visualizes Twitter messages, or realizes a security system based on secure passes.
Assumed previous knowledge
Required materials
Recommended materials
Rob van Tulder, "Skill Sheets", second edition. ISBN 978-90-430-2313-9. Pearson.
Course material
Other materials will be provided electronically.
Instructional modes
Presence dutyYes

Presence dutyYes

Presence dutyYes

Presence dutyYes

Project supervised
Presence dutyYes

Presence dutyYes

Zelfstudie geen begeleiding

Pearls of Computer Science

Project Pearls of Computer Science

Mathematics A + B1

Additional Requirements

Kies de Nederlandse taal