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.
Instructional Modes
|
|
|
|
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.
|
|
|