A Functional Paradigm using the C Language for Teaching Programming for Engineers

Víctor Theoktisto · 2018

Many engineering programs place in their curricula some courses in Computer Programming, whose content and quality are generally less rigorous than their Computer Science equivalents. Most use the C language as development tool, but the approach applies more effort in describing the language's peculiarities than exploiting the practical applications in engineering endeavors. The contributed programming techniques are born from the experience of teaching Functional Programming, embodied in headers that enhance depth and rigorousness in the development of high quality code: (i) Functional emphasis from the beginning; (ii) Formal Specifications with exception generation; (iii) Early focus in recursion, particularly tail recursion; (iv) Development of Abstract Data Types using C's opaque types; (v) Incorporation of First Order and Higher Order Functions; (vi) Efficient dynamic memory management using a "garbage collector"; (vii) Using and Integrated Developed Environment (IDE) with embedded debugger. The aforementioned headers are attached at the end of the article.

Read the paper · More papers on PaperTik