scholarly journals Introductory Computer Science Course by Adopting Many Programming Languages

2021 ◽  
Author(s):  
Francisco de Assis Zampirolli ◽  
Fernando Teubl ◽  
Guiou Kobayashi ◽  
Rogério Neves ◽  
Luiz Rozante ◽  
...  

Teaching programming logic by means of a single Programming Language (PL) may lead the whole process to a particular syntax and specific libraries. In order to let every student choose their preferred PL we have developed a method that includes didactic material in many PLs by means of notebooks in Colab. We created a filter that generates Lecture Notes in different combinations of PLs from these notebooks. Moreover, each student can choose different PLs to practice with exercises and send their solutions as programming codes, which are individualized because of the parametric questions generated with MCTest+Moodle+VPL. Herewith we present our method, which is easily adaptable, validated with 5 remote classes comprising a total of 221 students, whose average pass rate was 90%.

1996 ◽  
Vol 15 (1) ◽  
pp. 53-66
Author(s):  
Liejune Shiau

Most programming courses taught today are focused on managing batch-oriented problems. It is primarily because parallel computers are not commonly available, therefore problems with concurrent nature could not be explored. This consequence, at the same time, causes student's under preparation to meet the challenge of modern multi-process computation technologies. This article demonstrates an easy solution for implementing concurrent programming projects in computer labs. This solution does not require special hardware support or special programming languages. The goal is to facilitate a means to deal with the concept and usefulness of multi-process software systems in the early stage of computer science curriculum. We also include detailed descriptions on a few creative and interesting concurrent examples to illustrate this idea.


2010 ◽  
Vol 20 (1) ◽  
pp. 3-18
Author(s):  
JOHN CLEMENTS ◽  
KATHI FISLER

AbstractMany computer science departments are debating the role of programming languages in the curriculum. These discussions often question the relevance and appeal of programming-languages content for today's students. In our experience, domain-specific, “little languages” projects provide a compelling illustration of the importance of programming-language concepts. This paper describes projects that prototype mainstream applications such as PowerPoint, TurboTax, and animation scripting. We have used these exercises as modules in non-programming languages courses, including courses for first year students. Such modules both encourage students to study linguistic topics in more depth and provide linguistic perspective to students who might not otherwise be exposed to the area.


If programming is understood not as the writing of instructions for this or that computing machine but as the design of methods of computation that it is the computer’s duty to execute (a difference that Dijkstra has referred to as the difference between computer science and computing science), then it no longer seems possible to distinguish the discipline of programming from constructive mathematics. This explains why the intuitionistic theory of types (Martin-Lof 1975 In Logic Colloquium 1973 (ed. H. E. Rose & J. C. Shepherdson), pp. 73- 118. Amsterdam: North-Holland), which was originally developed as a symbolism for the precise codification of constructive mathematics, may equally well be viewed as a programming language. As such it provides a precise notation not only, like other programming languages, for the programs themselves but also for the tasks that the programs are supposed to perform. Moreover, the inference rules of the theory of types, which are again completely formal, appear as rules of correct program synthesis. Thus the correctness of a program written in the theory of types is proved formally at the same time as it is being synthesized.


Author(s):  
Wilda Susanti, Et. al.

In this paper, we review the literature related to computer programming learning, where Algorithms and Programming are the topic domains of the Informatics and Computer science clusters. There are 4 competencies in learning outcomes, such as: 1) understand algorithmic concepts; 2) master algorithm concepts and principles; 3) master programming language concepts; and 4) master programming languages and algorithms. The main focus of this review is on beginner programming and topics related to student difficulties in learning programming. Various problems experienced by beginners were identified from the literature to some of the solutions offered by researchers.


2002 ◽  
Vol 67 (3) ◽  
pp. 1065-1077
Author(s):  
Raymond D. Gumb

AbstractThe Logic of Partial TermsLPTis a strict negative free logic that provides an economical framework for developing many traditional mathematical theories having partial functions. In these traditional theories, all functions and predicates are strict. For example, if a unary function (predicate) is applied to an undefined argument, the result is undefined (respectively, false). On the other hand, every practical programming language incorporates at least one nonstrict or lazy construct, such as the if-then-else, but nonstrict functions cannot be either primitive or introduced in definitional extensions inLPT. Consequently, lazy programming language constructs do not fit the traditional mathematical mold inherent inLPT. A nonstrict (positive free) logic is required to handle nonstrict functions and predicates.Previously developed nonstrict logics are not fully satisfactory because they are verbose in describing strict functions (which predominate in many programming languages), and some logicians find their semantics philosophically unpalatable. The newly developed Lazy Logic of Partial TermsLLis as concise asLPTin describing strict functions and predicates, and strict and nonstrict functions and predicates can be introduced in definitional extensions of traditional mathematical theories.LLis “built on top of”LPT. and, likeLPT, admits only one domain in the semantics. In the semantics, for the case of a nonstrict unary functionhin an LL theoryT, we have ⊨Th(⊥) =y↔ ∀x(h(x) = y), where ⊥ is a canonical undefined term. Correspondingly, in the axiomatization, the “indifference” (to the value of the argument) axiomh(⊥) =y↔ ∀x(h(x) = y)guarantees a proper fit with the semantics. The price paid forLL's naturalness is that it is tailored for describing a specific area of computer science, program specification and verification, possibly limiting its role in explicating classical mathematical and philosophical subjects.


2015 ◽  
Vol 22 (1) ◽  
pp. 242
Author(s):  
Juliana Kaizer Vizzotto ◽  
Bruno Crestani Calegaro

To help the understanding and development of quantum algorithms there is an effort focused on the investigation of new semantic models and programming languages for quantum computing. Researchers in computer science have the challenge of deve loping programming languages to support the creation, analysis, modeling and simulation of high level quantum algorithms. Based on previous works that use monads inside the programming language Haskell to elegantly explain the odd characteristics of quantum computation (like superposition and entanglement), in this work we present a monadic Java library for quantum programming. We use the extension of the programming language Java called BGGA Closure, that allow the manipulation of anonymous functions (closures) inside Java. We exemplify the use of the library with an implementation of the Toffoli quantum circuit.


2008 ◽  
Vol 18 (5) ◽  
pp. 795-796
Author(s):  
ADRIANA COMPAGNONI ◽  
HEALFDENE GOGUEN

This special issue of Mathematical Structures in Computer Science is devoted to recent work in subtyping. When subtyping was first proposed, it presented a new vehicle for understanding programming languages, together with challenging theoretical issues. The papers in this special issue include a new approach to the decidability of subtyping, a metatheoretic investigation of transitivity of coercive subtyping for parametrised dependent types, and applications of subtyping to the classic programming language concerns of flow analysis and typing for distributed systems. We believe that the scope of the papers demonstrates convincingly that the theory and practice of subtyping continue to be extended in novel and interesting ways.


Sign in / Sign up

Export Citation Format

Share Document