We describe our experience organizing and teaching a CS1 "common course" pilot across 7 institutions during the 2023 spring term. A common course is a comprehensive centrally-designed course taught nearly id...
详细信息
ISBN:
(纸本)9798400704239
We describe our experience organizing and teaching a CS1 "common course" pilot across 7 institutions during the 2023 spring term. A common course is a comprehensive centrally-designed course taught nearly identically across multiple institutions. It goes beyond common inter-institution sharing of ideas and resources, and instead is essentially the same course taught by different instructors, akin to multiple coordinated sections of a course at one institution. We describe the experience of 7 instructors who voluntarily joined the pilot, which included instructors at 5 state universities and 2 community colleges. The common course's comprehensive design included a 15-week configured CS1 C++ online zyBook having weekly interactive readings, coding homeworks, programming assignments, and quizzes (all auto-graded);a midterm and final exam;a syllabus with schedule, grade weights, policies (late policies, cheating policies, etc.);support for teaching active lectures including detailed lecture notes and coding examples;and bi-weekly meetings among the 7 instructors plus an informal shared TA. Overall, the courses went smoothly for students, and the instructors all strongly indicated they benefited from the experience, and would do it again and recommend it to others. They listed key benefits to include time savings (which freed them to perform higher-value, more enjoyable tasks), state-of-the-art tools and pedagogy (like auto-grading and active lectures), the coding examples in the lecture notes, the ability to compare their students' performance to others, and the camaraderie and idea exchanges at the bi-weekly meetings.
Go, a programming language developed by Google, is relatively new but offers modern and powerful features, including similarities to Java and an emphasis on rapid development and concurrency. This paper examines Go...
详细信息
This survey article stems from the preparatory lecture on mathematical logic delivered at SETSS 2024 and a series of lectures over recent years on mathematical logic, human-cyber-physical systems, and artificial ...
详细信息
Operations research uses scientific methods that take the language of mathematics as a basis and uses the computer, without which it would not be possible to achieve numerical solutions to the problems raised. It is c...
详细信息
Resilience is a critical personality trait that allows one to deal with difficulties, learn from failures, and maintain a positive attitude during task performance. However, it has not been understudied in a complex a...
详细信息
Resilience is a critical personality trait that allows one to deal with difficulties, learn from failures, and maintain a positive attitude during task performance. However, it has not been understudied in a complex and challenging educational domain. The current research intends to address this gap by analyzing the specific characteristics of resilient university students in programming education with two studies. The first study aimed to adapt the programming resilience (PR) scale into the Turkish context to measure this construct in a different setting. The internal structure of the scale with four dimensions (persistence, perceived value, difficulty cognition, incremental belief), was validated using a sample of 311 undergraduate students. The Cronbach's alpha of this scale (0.937) indicated high internal consistency. The second study sought to determine the effect of several learner characteristics on PR based on a larger sample (n = 657). The results revealed that PR did not differ significantly by gender. However, it was higher when the students were majoring in computerscience, had more than three years of programming experience, and engaged with programming activities every day. Upon controlling the effect of demographics and programming experience and frequency, the multiple regression analysis showed that less avoidant problem-solving style, higher problem-solving confidence, and deep learning approach resulted in higher PR. Overall, this study enriches our understanding of PR by highlighting the impact of individual differences on PR. This study further offers valuable suggestions for researchers and practitioners to build more resilient classes in programming courses.
A program's exceptional behavior can substantially complicate its control flow, and hence accurately reasoning about the program's correctness. On the other hand, formally verifying realistic programs is likel...
详细信息
ISBN:
(纸本)9783031477041;9783031477058
A program's exceptional behavior can substantially complicate its control flow, and hence accurately reasoning about the program's correctness. On the other hand, formally verifying realistic programs is likely to involve exceptions-a ubiquitous feature in modern programming languages. In this paper, we present a novel approach to verify the exceptional behavior of Java programs, which extends our previous work on BYTEBACK. BYTEBACK works on a program's bytecode, while providing means to specify the intended behavior at the source-code level;this approach sets BYTEBACK apart from most state-of-the-art verifiers that target source code. To explicitly model a program's exceptional behavior in a way that is amenable to formal reasoning, we introduce Vimp: a high-level bytecode representation that extends the Soot framework's Grimp with verification-oriented features, thus serving as an intermediate layer between bytecode and the Boogie intermediate verification language. Working on bytecode through this intermediate layer brings flexibility and adaptability to new language versions and variants: as our experiments demonstrate, BYTEBACK can verify programs involving exceptional behavior in all versions of Java, as well as in Scala and Kotlin (two other popular JVM languages).
We put forward an approach to the semantics of probabilistic programs centered on an action-based language equipped with a small-step operational semantics. This approach provides benefits in terms of both clarity and...
详细信息
ISBN:
(纸本)9783031505201;9783031505218
We put forward an approach to the semantics of probabilistic programs centered on an action-based language equipped with a small-step operational semantics. This approach provides benefits in terms of both clarity and effective implementation. Discrete and continuous distributions can be freely mixed, unbounded loops are allowed. In measure-theoretic terms, a product of Markov kernels is used to formalize the small-step operational semantics. This approach directly leads to an exact sampling algorithm that can be efficiently SIMD-parallelized. An observational semantics is also introduced based on a probability space of infinite sequences, along with a finite approximation theorem. Preliminary experiments with a proof-of-concept implementation based on TensorFlow show that our approach compares favourably to state-ofthe-art tools for probabilistic programming and inference.
This paper presents a study on assessing hotel performance in Oman using a proposed machine-learning technique that integrates evolutionary algorithms in its architecture. The research investigates the issue of popula...
详细信息
ISBN:
(纸本)9783031821493;9783031821509
This paper presents a study on assessing hotel performance in Oman using a proposed machine-learning technique that integrates evolutionary algorithms in its architecture. The research investigates the issue of population diversity within a previously based genetic programming mechanism. It explores an adaptive population size adjustment technique, proposing enhancements to sustain and enhance population diversity in the genetic programming process. The results illustrate the superiority of this new mechanism over conventional approaches in terms of robustness, accuracy, and stability, particularly evident when applied to tourism datasets. These findings underscore the method's potential as a practical solution for addressing challenges in machine learning in the tourism sector.
Recent advances in AI-generated code could potentially be plagiarized by students in entry-level programming courses. This paper examines the use of ChatGPT for generating code to solve a programming project for an en...
详细信息
As the complexity of software systems is ever increasing, so is the need for practical tools for formal verification. Among these are automatic theorem provers, capable of solving various reasoning problems automatica...
详细信息
As the complexity of software systems is ever increasing, so is the need for practical tools for formal verification. Among these are automatic theorem provers, capable of solving various reasoning problems automatically, and proof assistants, capable of deriving more complex results when guided by a mathematician/programmer. In this paper we consider using the latter to build the former. In the proof assistant Isabelle/HOL we combine functional programming and logical program verification to build a theorem prover for propositional logic. We also consider how such a prover can be used to solve a reasoning task without much mental labor. The development is extended with a formalized proof system for writing machine-checked sequent calculus proofs. We consider how this can be used to teach computerscience students about logic, automated reasoning and proof assistants.
暂无评论