C-ohjelmointi : Course Feedback
- Some general assumptions: It was assumed that students have made their Java programming project and also Data Structures project. C is quite close to Java and the only different features are pointers, memory management and bit-wise operations. So we decided to concentrate on them. Usually, after the first language it is easy to learn other similar languages. However, it turned out that some students still have limitations in this phase: linked data structures seemed unfamiliar, detecting of error places was not easy, solutions were sometimes very time-consuming or space-consuming. So next time the course must take these factors into account.
- A lot of work: Most complaints were about the work load. This was partially expected, because the workshop approach was not familiar to all from the Java courses. But it is also true that the workshop plus the project is maybe too much for 4 credit points. So next year we must think of dropping the project and concentrating solely on the workshop exercises.
- Exercises and solutions: The workshop exercises take a lot of time to develop. This first time some of the exercises were not very successful. Often the exercises demanded rather complicated input operations, too. Hopefully next time we could develop more typical tasks, for C, in the exercises. We did not publish solutions. It would be too demanding to develop new set of exercises every year. Moreover, there is not only one right solution for programming tasks. Based on this, probably we will not see solutions in the future.
- Exam: Exam is needed because there are always some who do not make their solutions themself. The only surprising point was that sometimes the activity of solving a lot of the exercises did not bring the understanding of more complicated C features. We must maybe think of the interplay between the exam and exercises more carefully.
- Material: It really turned out that the originally planned material was not suitable for our course. On the other hand, there are a lot C books available. It is not very clear what the lectures should contain. I think maybe the best approach is to have examples which are related to exercises. It was tried in the latter part of the course, but the more examples are needed.