Imperative Programming (for CS)
Faculteit  Science and Engineering 
Jaar  2022/23 
Vakcode  WBCS00305 
Vaknaam  Imperative Programming (for CS) 
Niveau(s)  propedeuse 
Voertaal  Engels 
Periode  semester I a 
ECTS  5 
Rooster  rooster.rug.nl 
Uitgebreide vaknaam  Imperative Programming (for CS)  
Leerdoelen  At the end of the course, the student is able to: 1) translate an informal problem specification into a working program 2) solve programming challenges using the syntax and semantics of the main C constructs. 3) convert a research question into an algorithm. 4) use functions and procedures to structure programs. 5) understand the imperative implementation of some common (searching and sorting) algorithms. 6) reason about state changes as a result of assigning values to variables (using predicates/logic) and reason about the time complexity of a program fragment. 

Omschrijving  The course Imperative Programming, together with the courses Objectoriented Programming and Advanced Objectoriented Programming, forms a broad basic introduction to imperative and objectoriented programming. The course deals with common imperative programming constructs: state (memory), assignments, conditionals, functions, procedures, loops, and recursion. The focus in this course is on learning how to solve programming problems in a systematic way and analysis of the time complexity of the solutions. The programming language used in this course is C, however the course should not be looked upon as a C course. Only a minimal subset of the C programming language is covered, which is sufficient to solve a set of small programming challenges. This subset is covered in the first four weeks of the course, which is assessed via a practical midexam (i.e. an exam on a computer). In the remaining weeks more advanced topics are discussed: abstract data types, recursion, time complexity analysis (i.e. efficiency of programs), and some standard algorithms (mainly searching and sorting algorithms). Since this is the first module that the students take, some attention will also be paid to the Linux operating system and the available standard programs (compilers and editors).  Lectures: constructs of the C programming language are presented, inspired by informal problem formulations.  Tutorials: elementary exercises (on paper and computer).  Practicals: practical exercises (on computer). The exercises made during the practicals are more complex than the ones discussed during the tutorials and the lectures. There are weekly deadlines for the labs. The student must pass all weekly labs in order to be admitted to the final exam. There is a practical midexam. During this midexam the students will solve 5 programming exercises in three hours’ time (using the computer). The course is concluded by a digital exam. 

Uren per week  
Onderwijsvorm  Hoorcollege (LC), Practisch werk (PRC), Werkcollege (T)  
Toetsvorm 
Opdracht (AST), Schriftelijk tentamen (WE), Tussentoets (IT)
(Let P=Practicals, M=Midexam, E=Exam. The final grade F is obtained as follows: if E<5 then F=E else F=(2*E+P+M)/4.) 

Vaksoort  propedeuse  
Coördinator  dr. A. Meijster  
Docent(en)  dr. A. Meijster  
Verplichte literatuur 


Entreevoorwaarden  Secondary education equivalent to Dutch preuniversity education (VWO second phase), is required, including sufficient Mathematical skills (wiskunde B).  
Opmerkingen  All CS bachelor courses have limited enrollment:  CS students can always enter each course, regardless of whether the course is mandatory for them or not.  A maximum of only 20 places per course is available for nonCS students. These places are filled on a firstcomefirstserved basis, with priority given to students with a strong CSrelated background (e.g., CS exchange students, AI students, etc.). These students need to meet the course prerequisite requirements as mentioned on Ocasys. Six weeks before the course starts, the 20 students that can join are selected and added to the course. If you enroll after this date, you will be placed on the waiting list. For more info about the enrollment procedure, see https://student.portal.rug.nl/infonet/studenten/fse/programmes/bsccs/general/vakintekeningprocedure#cap 

Opgenomen in 
