Imperative Programming
Faculteit  Science and Engineering 
Jaar  2020/21 
Vakcode  WBCS00305 
Vaknaam  Imperative Programming 
Niveau(s)  propedeuse 
Voertaal  Engels 
Periode  semester I a 
ECTS  5 
Rooster  rooster.rug.nl 
Uitgebreide vaknaam  Imperative Programming  
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 and loops. The focus in this course is on learning how to solve programming problems in a systematic way. 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 small programming challenges. This subset is covered in the first four weeks of the course, which is assessed via a practical midexam. 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 practical 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).  Practicals: practical exercises (on computer). The exercises made during the practicals are a bit more complex than the ones discussed during the tutorials. 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 an exam. 

Uren per week  
Onderwijsvorm 
Hoorcollege (LC), Practisch werk (PRC), Werkcollege (T)
(Two 2hour lectures, one 2hour tutorial and one 2hour practical per week.) 

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  In the academic year 20202021, 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. For more info about the enrollment procedure, see https://student.portal.rug.nl/infonet/studenten/fse/programmes/bsccs/general/vakintekeningprocedure#cap This course was registered last year with course code INBIMP09 

Opgenomen in 
