Overview of the Course
What is the subject context of the course?
The goal is to learn important basic computer science concepts and techniques for the implementation of interdisciplinary programming projects. The course is based on a problem-based blended learning approach that prepares student in a structured way to solve programming projects independently (more details see below).
Main objective of this course: What should students learn and be able to do at the end of the course?
Students learn key programming concepts and transfer them to practice and to their subject area (e.g. life sciences). The focus is not only on writing code, but also on discussing and further development of existing code and algorithms.
Students learn…
… how to encode a problem into a program, test the program, and correct errors.
… to understand and improve existing code.
… to deal with the complexity of real data.
… to store data in a suitable data structure.
… to query databases and understand and evaluate the corresponding database model.
… to implement mathematical models as a simulation.
… to explain and apply standard algorithms.
Why was the specific assessment format chosen?
The assessment format is designed to achieve the following three objectives, in line with the problem-based blended learning format of our courses:
1. Regular individual progress reviews instead of summative group exams
Regular feedback shows students where they are in the learning process at a time when they can still adjust their learning behavior (status assessment). Our system can adapt to different levels of knowledge. There are groups of students who have never programmed before, others who need to refresh their knowledge and there are those who are already advanced programmers. In this system, one group is not overwhelmed while another is bored. Everyone progresses at their own level.
2. The focus of assessment is on understanding concepts rather than completing assignment products
Instead of grading hundreds of programming assignments, our teaching assistants provide personalized oral feedback in regular one-to-one progress meetings. Since the focus of progress meetings is on concept understanding rather than on submitting a perfect final product, students are encouraged to engage with key concepts regardless of the tools they use. AI tools, which are widely used in programming nowadays, are not prohibited. However, they should be used in such a way that conceptual learning can still take place. Our policy is that students must always be able to defend their solutions.
3. Making mistakes and misunderstandings are an important part of the learning process and are clarified during individual coaching
This formative, ungraded assessment promotes an open learning environment free from the pressure of exams. Misunderstandings and misconceptions are addressed individually, allowing students to learn and grow without fear. This role is highly appreciated by the teaching assistants, and it helps them develop their own transferable competencies.
How are students prepared for the assessment?
The course is based on a problem-based blended learning concept. Exercise groups and lectures are largely replaced with student-centered instruction using tutorials and videos directly within a web-based programming environment (Code Expert and E.Tutorial, a winning project of the KITE Award 2018). These videos and tutorials introduce the key concepts, terms, and techniques and demonstrate how to solve a project directly in the programming environment. After this guided part, each of the 6 modules contains an independent project phase with an additional task, which is then discussed in the progress meeting.
The goal is to create a learning environment that fosters an open exchange with teaching assistants on equal terms. For this to succeed, the teaching assistants need to be well prepared.