| Concepts | Skills |
|---|---|
| functional/procedural abstraction | writing functions |
| top-down design | using header files |
| separate compilation | character and string handling |
| libraries | basic pointer manipulations |
| abstract data types | pointers as parameters |
| dynamic memory allocation | file I/O |
| recursion | writing recursive functions |
| searching and sorting | structures |
| linked lists, stacks and queues |