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

Víctor Theoktisto
{"title":"A Functional Paradigm using the C Language for Teaching Programming for Engineers","authors":"Víctor Theoktisto","doi":"10.1109/CLEI.2018.00103","DOIUrl":null,"url":null,"abstract":"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.","PeriodicalId":379986,"journal":{"name":"2018 XLIV Latin American Computer Conference (CLEI)","volume":"93 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2018 XLIV Latin American Computer Conference (CLEI)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CLEI.2018.00103","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

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.
用C语言进行工程师程序设计教学的函数式范式
许多工程专业在他们的课程中设置了一些计算机程序设计课程,这些课程的内容和质量通常不如计算机科学课程严格。大多数使用C语言作为开发工具,但是这种方法在描述语言的特性上花费了更多的精力,而不是在工程工作中开发实际应用程序。所贡献的编程技术来自于教授函数式编程的经验,体现在头文件中,提高了开发高质量代码的深度和严谨性:(i)从一开始就强调函数式;有例外情况产生的正式规格;早期关注递归,特别是尾递归;(iv)使用C的不透明类型开发抽象数据类型;一阶和高阶函数的结合;使用“垃圾收集器”进行有效的动态内存管理;(vii)使用和集成开发环境(IDE)与嵌入式调试器。前面提到的标题附在本文的末尾。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信