Fortran and the first course in computer science

Author:

Ralston Anthony

Abstract

The purpose of this paper is to assess realistically and practically the merits and demerits of Fortran as the language to be used in a first course in computer science. To do this computer science education is first considered as a process in which successive courses should aim at increasingly greater depth of understanding as in, for example, mathematics education. Then the aims of first courses in computer science are considered. It is concluded that Fortran is a quite adequate vehicle for the student to use in writing programs. It is further concluded that, despite its manifest imperfections, Fortran is also adequate for the purpose of teaching programming language concepts and programming techniques. Thus, it is finally concluded that, since Fortran will continue to be with us, it can be used, warts and all, and that the best should be made of it. Even if a weed, Fortran has surely not prevented the blooming of more than one hundred other flowers (i.e. computer languages). But, in terms of ubiquity, these other flowers almost all are puny growths indeed. Except for Cobol, Fortran is clearly the most used higher level language today. And it stands preeminent as the language most often taught in college and university first courses in computer science and "for 'scientific' problems...it will probably remain (the most important programming language) for some period of time" (3). Yet we have such statements as "Fortran is dead" (6) and "It is remarkable that it would be difficult to find a language that would meet these important requirements (natural and clear expression of program structure and data, exhibition of basic features and structuring principles) to a lesser degree than...Fortran" (8). My purpose here is neither to bury Fortran nor to praise it but to try to assess realistically and practically its usefulness in a first course in computer science. I was originally moved to write this article by the recent article of Wirth (8) which I consider to be a beautiful exposition of an ideal in program construction and instruction. But, while I do not disagree, except perhaps in emphasis, with the quotation above from this article, I think this quotation, if taken literally, implies something quite wrong about the value of Fortran in a first course in computer science by implying something pedagogically incorrect about teaching programming. I shall try to elucidate this below. Yes, Fortran is dead in the sense that Rosin (6)means, namely that "intellectually it is dead." But in this sense so is calculus dead in all of the wide variety of courses taught to college freshmen and high school seniors. So what? The purpose of first courses in calculus is not and cannot be to teach students material on the intellectual frontier of mathematics. Can it be said of calculus, any more than of Fortran, that its current use in an introductory course "tends to propagate its intellectual moribundity" (6)? The trouble with such negative remarks about the use of Fortran in introductory programming courses is not that they are too critical of Fortran but rather that they display a misunderstanding of the teaching of almost any subject with some intellectual depth by postulating a pedagogic ideal which can be attained with few, if any students. It is natural when teaching any introductory course to wish to maximize the intellectual content of the course by presenting, in addition to material on purely mechanical skills, subject matter of real intellectual content. But it is folly to expect the beginning student to grasp significant concepts in depth. (Or, if this is possible, then the depth is not very great; if this is the case in computer science, then perhaps we should rethink our pretensions that it is a discipline.) For example, it is not expected that the graduate of a first year course in calculus will understand what a derivative is in depth although he may be very proficient in mechanical differentiation. I recall myself only realizing, after taking courses in advanced calculus and real analysis, how little I had really understood the concept of derivative when I had first studied it in an introductory course. It is in a similar context that we must look at the teaching of programming. The objectives of a first course in computer science must be to teach the student some conceptual aspects of programming, programming languages and computer science in addition to teaching him how to use a particular language. But unless and until we are willing to admit that there are programming language concepts which, while they may be introduced in a first course, cannot be expected to be understood in depth by the vast majority of students until later, more advanced courses, there is danger that attempts will be made to make the first course something it cannot and should not be. And we shall run the danger of falling into the same trap as other disciplines of orienting our teaching so much to our own majors that we shall ill serve the majority who are non-majors, with the inevitable result that an increasing number of non-computer science departments will decide to teach (badly) programming to their own majors. Of course, the current problem with most introductory courses in computer science is not that they attempt too much but rather too little. But an increasing number of first courses, particularly at leading universities, are attempting to teach the first course at a reasonable intellectual level. It is, therefore, just at this time during the transition from the just-teach-a-language course to a real computer science course that it is important to give some real thought to what that first course should be and the place of a language like Fortran in it. In the remainder of this paper I shall address this question.

Publisher

Association for Computing Machinery (ACM)

Cited by 10 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Comprehension First;Proceedings of the 2017 ACM Conference on International Computing Education Research;2017-08-14

2. A survey of literature on the teaching of introductory programming;ACM SIGCSE Bulletin;2007-12

3. A study of the first course in computers;ACM SIGCSE Bulletin;1978-08

4. Programming languages for introductory computing courses;ACM SIGCSE Bulletin;1978-02

5. A survey of the literature in computer science education since curriculum '68;Communications of the ACM;1977-01

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3