Focus on these four key concepts when first teaching C to help students with previous programing experiences transition from higher-level languages such as Python.
Focus on simple examples in a breadth course about systems to avoid confusing students. Save depth for upper level courses.
Tell students that they have to fix their indentation before you’ll help them debug to encourage well-organized code.
Reiterate key concepts, such as the base case/recursive case pattern, every time you go through a recursion problem to solidify them in students’ memories.
Ask students to identify useless or unnecessary lines of code to assess their understanding of functions.
Explicitly discuss the lack of bounds-checking in C-based courses to avoid student confusion when using strings and arrays.