English
Related papers

Related papers: Design of Classes I

200 papers

Design by Contract enables seamless software development by unifying software requirements with their implementations. In its pure form, however, Design by Contract leaves some problems with contracts' expressiveness, verifiability, and…

Software Engineering · Computer Science 2019-11-26 Alexandr Naumchev

Object orientation has become the predominant paradigm for conceptual modeling (e.g., UML), where the notions of class and object form the primitive building blocks of thought. Classes act as templates for objects that have attributes and…

Software Engineering · Computer Science 2021-06-02 Sabah Al-Fedaghi

The literature on machine teaching, machine education, and curriculum design for machines is in its infancy with sparse papers on the topic primarily focusing on data and model engineering factors to improve machine learning. In this paper,…

Artificial Intelligence · Computer Science 2020-02-11 Hussein A. Abbass , Sondoss Elsawah , Eleni Petraki , Robert Hunjet

We provide here a computational interpretation of first-order logic based on a constructive interpretation of satisfiability w.r.t. a fixed but arbitrary interpretation. In this approach the formulas themselves are programs. This contrasts…

Logic in Computer Science · Computer Science 2007-05-23 Krzysztof R. Apt , Marc Bezem

The ubiquity of technology in our daily lives and the economic stability of the technology sector in recent years, especially in areas with a computer science footing, has led to an increase in computer science enrollment in many parts of…

Computers and Society · Computer Science 2014-05-13 Zubair Nabi

Use case driven development methodologies put use cases at the center of the software development process. However, in order to support automated development and analysis, use cases need to be appropriately formalized. This will also help…

Software Engineering · Computer Science 2016-03-30 Rui Couto , António Nestor Ribeiro , José Creissac Campos

While functional programming is an efficient way to express complex software, functional programming languages have a steep learning curve. Haskell can be challenging to learn for students who were only introduced to imperative programming.…

Programming Languages · Computer Science 2019-06-28 Boldizsár Németh , Eunjong Choi , Erina Makihara , Hajimu Iida

Object detection is one of the most important and challenging branches of computer vision, which has been widely applied in peoples life, such as monitoring security, autonomous driving and so on, with the purpose of locating instances of…

Computer Vision and Pattern Recognition · Computer Science 2019-10-18 Licheng Jiao , Fan Zhang , Fang Liu , Shuyuan Yang , Lingling Li , Zhixi Feng , Rong Qu

We present a novel approach for teaching logic and the metatheory of logic to students who have some experience with functional programming. We define concepts in logic as a series of functional programs in the language of the proof…

Programming Languages · Computer Science 2022-07-27 Frederik Krogsdal Jacobsen , Jørgen Villadsen

In this paper, we study how object-oriented classes are used across thousands of software packages. We concentrate on "usage diversity'", defined as the different statically observable combinations of methods called on the same object. We…

Software Engineering · Computer Science 2018-07-06 Diego Mendez , Benoit Baudry , Martin Monperrus

We introduce process-oriented programming as a natural extension of object-oriented programming for parallel computing. It is based on the observation that every class of an object-oriented language can be instantiated as a process,…

Programming Languages · Computer Science 2014-07-22 Edward Givelberg

We report our experience in two installations of a course on data visualization that featured project-based learning. Given the rationale of this approach, we show which input was provided when necessary for the students to achieve their…

Computers and Society · Computer Science 2021-11-09 Dietrich Kammer , Elena Stoll , Adam Urban

The evolution of programming languages from low-level assembly to high-level abstractions demonstrates a fundamental principle: by constraining how programmers express computation and enriching semantic information at the language level, we…

Programming Languages · Computer Science 2025-06-10 Jason Mars

Program decomposition is essential for developing maintainable and efficient software, yet it remains a challenging skill to teach and learn in introductory programming courses. What does program decomposition for procedural CS1 programs…

Software Engineering · Computer Science 2024-11-19 Georgiana Haldeman , Judah Robbins Bernal , Alec Wydra , Paul Denny

Object-oriented programming languages such as Java and Objective C have become popular for implementing agent-based and other object-based simulations since objects in those languages can {\em reflect} (i.e. make runtime queries of an…

Mathematical Software · Computer Science 2008-10-22 Russell K. Standish , Duraid Madina

Large Language Models (LLMs) have upended decades of pedagogy in computing education. Students previously learned to code through \textit{writing} many small problems with less emphasis on code reading and comprehension. Recent research has…

This paper contains analysis of main modern approaches to dynamic code generation, in particular generation of new classes of objects during program execution. The main attention was paid to universal exploiters of homogeneous classes of…

Software Engineering · Computer Science 2018-11-20 Dmytro O. Terletskyi

Since the advent of LISP, the fifth generation programming language has developed for decades. However, compared with the fourth generation programming language, the fifth generation programming language has not been widely used because of…

Programming Languages · Computer Science 2022-06-03 Han Jipeng , Lichen Zhihang

This innovative practice article reports on the piloting of vibe coding (using natural language to create software applications with AI) for English as a Foreign Language (EFL) education. We developed a human-AI meta-languaging framework…

Computers and Society · Computer Science 2025-09-12 David James Woo , Kai Guo , Yangyang Yu

The multiplicity of software projects' stakeholders and activities leads to the multiplicity of software specification views and thus creates the need to establish mutual consistency between them. The process of establishing such…

Software Engineering · Computer Science 2017-11-20 Alexandr Naumchev