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. |
|
• 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.
|
|
|
|
Participation in the practicum is mandatory. Assignments are graded with Fail, Insufficient, Sufficient, or Good. Not handing in an assignment counts as Fail. To pass the practicum all assignments must have at least grade Insufficient. Besides the mandatory assignments there are bonus assignments that can contribute a maximum of 0.5 point to determine 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. For both exams the minimum grade is 4. If one or both exams have a grade lower than 4, then this counts as failing the course. If both exams have a grade of at least 4 then the final grade of the course is computed by the average of the mid-term and end-term exam results plus the bonus from the practicum, rounded to the nearest half point in case of successful grades and rounded to the nearest whole point in case of failing grades.
|
|
|