NWI-IPC031
Imperative programming
Course infoSchedule
Course moduleNWI-IPC031
Credits (ECTS)6
CategoryBA (Bachelor)
Language of instructionEnglish
Offered byRadboud University; Faculty of Science; Informatica en Informatiekunde;
Lecturer(s)
Coordinator
dr. P.M. Achten
Other course modules lecturer
Examiner
dr. P.M. Achten
Other course modules lecturer
Contactperson for the course
dr. P.M. Achten
Other course modules lecturer
Lecturer
dr. P.M. Achten
Other course modules lecturer
Lecturer
dr. R.J. Krebbers
Other course modules lecturer
Academic year2021
Period
KW1-KW2  (06/09/2021 to 30/01/2022)
Starting block
KW1
Course mode
full-time
Remarks-
Registration using OSIRISYes
Course open to students from other facultiesYes
Pre-registrationNo
Waiting listNo
Placement procedure-
Aims
Design and implement in a systematic way (in C++) programs using basic types and composite data structures. During the lecture the most important concepts are explained. For the basic types and data structures their operations and 'standard algorithms' are discussed and analyzed. The second half of the course emphasizes more advanced algorithms, such as sorting and search algorithms that systematically explore a search space. The fundamental technique of recursion is treated thoroughly. We pay attention to analyzing the scalability properties of algorithms ("Big Oh" complexity). Besides studying the lecture material you will work on mandatory, weekly, programming assignments. Prior programming (language) knowledge is not required.
Content
• Algorithms, systematic program development;
• Control structures: sequence, choice, conditional repetition, (recursive) functions;
• Variables and constants, global versus local;
• Parameter passing: call-by-value, call-by-reference;
• Data structures: enumeration, arrays, files, structures, vectors;
• Documenting functions with pre-conditions and post-conditions;
• Sorting algoritms, both naive and efficient;
• Complexity analysis, "Big-Oh" complexity;
• Recursive problem solving.

Instructional Modes
  • Tutorial
Level

Presumed foreknowledge
none
Test information
Participation in the practicum is mandatory. Besides the mandatory assignments there are also bonus assignments that can add to the final grade. This course has a mid-term exam and an end-term exam. Both exams are 'closed book': you are not allowed to use any extra material.
Specifics

Required materials
Book
Problem Solving with C++ - Tenth edition. Walter Savitch. Pearson.
ISBN:978-1-29-201824-9
Title:Problem Solving with C++
Author:Walter Savitch
Publisher:Pearson
Edition:10

Instructional modes
Course
Attendance MandatoryYes

Practical computer training
Attendance MandatoryYes

General
in the lab session you actually experience how to solve problems; this requires good preparation

Preparation of meetings
self study and preparation with lab partner; participate in mandatory assignment test

Remark
In the first half of the course, there is a mandatory weekly test to train you how to prepare yourself for the lab.

Tests
Digital Midterm
Test weight0
Test typeDigital exam with CIRRUS
OpportunitiesBlock KW1, Block KW2

Digital Exam
Test weight0
Test typeDigital exam with CIRRUS
OpportunitiesBlock KW2, Block KW3

Participation practical
Test weight0
Test typeParticipation
OpportunitiesBlock KW2

Final grade incl. bonus
Test weight1
OpportunitiesBlock KW2, Block KW3