The structure and interpretation of the computer science curriculum

2004 ◽  
Vol 14 (4) ◽  
pp. 365-378 ◽  
Author(s):  
MATTHIAS FELLEISEN ◽  
ROBERT BRUCE FINDLER ◽  
MATTHEW FLATT ◽  
SHRIRAM KRISHNAMURTHI

Twenty years ago Abelson and Sussman's Structure and Interpretation of Computer Programs radically changed the intellectual landscape of introductory computing courses. Instead of teaching some currently fashionable programming language, it employed Scheme and functional programming to teach important ideas. Introductory courses based on the book showed up around the world and made Scheme and functional programming popular. Unfortunately, these courses quickly disappeared again due to shortcomings of the book and the whimsies of Scheme. Worse, the experiment left people with a bad impression of Scheme and functional programming in general. In this pearl, we propose an alternative role for functional programming in the first-year curriculum. Specifically, we present a framework for discussing the first-year curriculum and, based on it, the design rationale for our book and course, dubbed How to Design Programs. The approach emphasizes the systematic design of programs. Experience shows that it works extremely well as a preparation for a course on object-oriented programming.

2015 ◽  
Vol 6 (2) ◽  
pp. 6
Author(s):  
Cristian González García ◽  
Jordán Pascual Espada B. ◽  
Cristina Pelayo G-Bustelo ◽  
Juan Manuel Cueva Lovelle

Hace unos meses Apple presentó un nuevo lenguaje de programación para sus plataformas: Swift. Con Swift, Apple pretende atraer a los programadores de los lenguajes de programación basados en la sintaxis de C++ y darles una mayor abstracción, que con Objective-C, para que sea más fácil programar para las plataformas de Apple. Por estas razones, se hace necesario contrastar lo pretendido por Apple y realizar un estudio del lenguaje de programación a fin de contrastar su objetivo. Para ello, se hicieron dos evaluaciones, una cualitativa y otra cuantitativa, con el propósito de verificar en qué medida Swift es un avance respecto a Objective-C.DThe Future of Apple: Swift Versus Objective-CABSTRACTFew months ago, Apple presented a new programming language: Swift. With Swift, Apple pretends to attract the programmers of the programming languages based on C++ syntax and gives them a higher abstraction than with Objective-C for being easier to programme to Apple’s platforms. For these reasons, it is necessary to contrast what is intended by Apple and do a study of the programming language to ascertain their goal. For this purpose, we did two evaluations, firstly a qualitative evaluation and after, a quantitative evaluation to verify in how much Swift is an advance with respect to Objective-C.Keywords: computer languages, computer programming, functional programming, object oriented programming, programming, software.


1987 ◽  
Vol 16 (235) ◽  
Author(s):  
Bent Bruun Kristensen ◽  
Birger Møller-Pedersen ◽  
Ole Lehrmann Madsen ◽  
Kristen Nygaard

In the object-oriented perspective a program execution is viewed as a <em>physical model</em> of some real or imaginary part of the world. A programming language supporting the object-oriented perspective must therefore contain comprehensive facilities for modelling phenomena and concepts from the application domain. In object-oriented programming objects model physical material and classes model concepts. By means of subclassing and virtual attributes it is possible to model a hierarchical classification of objects. Many applications in the real world consist of objects carrying out sequential processes. Coroutines may be used for modelling objects that alternate between a number of sequential processes. This paper describes coroutines in BETA.


2012 ◽  
Vol 10 (3) ◽  
pp. 1-16 ◽  
Author(s):  
Lee Chao

The objective of this article is to facilitate mobile teaching and learning by providing an alternative course material deployment method. This article suggests a course material deployment platform for small universities or individual instructors. Different from traditional course material deployment methods, the method discussed deploys course materials by using services provided by Android Market. After comparing the traditional course material deployment and the alternative deployment, the author presents strategies to take advantage of Android Market in delivering course materials to mobile devices. Through a case study, this article illustrates the application of these strategies in deploying a class menu for an object-oriented programming course in the computer science curriculum.


2020 ◽  
Vol 18 (2) ◽  
pp. 15-30
Author(s):  
Sergey S. Bogolepov

Kotlin is a statically typed programming language that supports object-oriented and functional programming. It supports JVM, JS and native platforms via LLVM (Kotlin / Native). The first two targets are backed with well-developed virtual machines that can perform advanced program optimizations at runtime. However, for native platforms, all optimizations must be performed at compile time. Currently Kotlin / Native lacks many optimizations, which is why the performance of the generated code is poor in many cases. This paper describes a way to solve this problem by introducing an additional SSA-based intermediate representation and implementing escape analysis using it. Experimental results have shown that this approach can significantly improve performance.


1991 ◽  
Vol 57 (3-4) ◽  
pp. 221-236 ◽  
Author(s):  
Masahiko Sekine ◽  
Hiroshi Nakanishi ◽  
Masao Ukita ◽  
Sadaaki Murakami

Sign in / Sign up

Export Citation Format

Share Document