Creation of a CS1 Course with Modern C++ Principles
- URL: http://arxiv.org/abs/2311.07807v1
- Date: Mon, 13 Nov 2023 23:43:38 GMT
- Title: Creation of a CS1 Course with Modern C++ Principles
- Authors: Ryan E. Dougherty
- Abstract summary: This poster contains experiences in designing a CS1 course that uses the C++ programming language.
Our goals were to prevent many common bad habits among C++ programmers.
- Score: 0.30458514384586394
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Best practices in programming need to be emphasized in a CS1 course as bad
student habits persist if not reinforced well. The C++ programming language,
although a relatively old language, has been regularly updated with new
versions since 2011, on the pace of once every three years. Each new version
contains important features that make the C++ language more complex for
backwards compatibility, but often introduce new features to make common use
cases simpler to implement. This poster contains experiences in designing a CS1
course that uses the C++ programming language that incorporates ``modern''
versions of the language from the start, as well as recent conferences about
the language. Our goals were to prevent many common bad habits among C++
programmers.
Related papers
- LangProBe: a Language Programs Benchmark [53.81811700561928]
We introduce LangProBe, the first large-scale benchmark for evaluating the architectures and optimization strategies for language programs.
We find that optimized language programs offer strong cost--quality improvement over raw calls to models, but simultaneously demonstrate that human judgment is still necessary for best performance.
arXiv Detail & Related papers (2025-02-27T17:41:49Z) - From Bugs to Breakthroughs: Novice Errors in CS2 [1.0609815608017066]
We conducted a longitudinal study of errors that students of a CS2 course made in subsequent programming assignments.
We manually categorized 710 errors based on a modified version of an established error framework.
Students have only little trouble with learning the programming language, but need more time to understand and express concepts in a programming language.
arXiv Detail & Related papers (2025-02-20T10:41:44Z) - Compilation Quotient (CQ): A Metric for the Compilation Hardness of Programming Languages [5.964023099122235]
A key aspect of a programming language's complexity is how hard it is to compile programs.
We introduce the compilation quotient (CQ), a metric to quantify compilation hardness.
C has a CQ of 48.11, C++ has 0.60, Java has 0.27 and Haskell has 0.13.
arXiv Detail & Related papers (2024-06-07T09:28:05Z) - Transforming C++11 Code to C++03 to Support Legacy Compilation Environments [1.6851123188451185]
We create a source code transformation framework to automatically backport code written according to the C++11 standard to its functionally equivalent C++03 variant.
This paper reports on the technical details of the transformation engine, and our experiences in applying it on two large industrial code bases and four open-source systems.
arXiv Detail & Related papers (2024-05-12T08:02:21Z) - Benchmarking Language Models for Code Syntax Understanding [79.11525961219591]
Pre-trained language models have demonstrated impressive performance in both natural language processing and program understanding.
In this work, we perform the first thorough benchmarking of the state-of-the-art pre-trained models for identifying the syntactic structures of programs.
Our findings point out key limitations of existing pre-training methods for programming languages, and suggest the importance of modeling code syntactic structures.
arXiv Detail & Related papers (2022-10-26T04:47:18Z) - PanGu-Coder: Program Synthesis with Function-Level Language Modeling [47.63943623661298]
PanGu-Coder is a pretrained decoder-only language model adopting the PanGu-Alpha architecture for text-to-code generation.
We train PanGu-Coder using a two-stage strategy: the first stage employs Causal Language Modelling to pre-train on raw programming language data.
The second stage uses a combination of Causal Language Modelling and Masked Language Modelling to train on loosely curated pairs of natural language program definitions and code functions.
arXiv Detail & Related papers (2022-07-22T18:08:16Z) - ANGLEr: A Next-Generation Natural Language Exploratory Framework [0.0]
The proposed design is being used for implementation of a new natural language processing framework, called ANGLEr.
The main parts of the proposed framework consist of (a) a pluggable Docker-based architecture, (b) a general data model, and (c) APIs description along with the graphical user interface.
arXiv Detail & Related papers (2022-05-10T13:32:13Z) - Natural Language to Code Translation with Execution [82.52142893010563]
Execution result--minimum Bayes risk decoding for program selection.
We show that it improves the few-shot performance of pretrained code models on natural-language-to-code tasks.
arXiv Detail & Related papers (2022-04-25T06:06:08Z) - Continual Learning in Multilingual NMT via Language-Specific Embeddings [92.91823064720232]
It consists in replacing the shared vocabulary with a small language-specific vocabulary and fine-tuning the new embeddings on the new language's parallel data.
Because the parameters of the original model are not modified, its performance on the initial languages does not degrade.
arXiv Detail & Related papers (2021-10-20T10:38:57Z) - AVATAR: A Parallel Corpus for Java-Python Program Translation [77.86173793901139]
Program translation refers to migrating source code from one language to another.
We present AVATAR, a collection of 9,515 programming problems and their solutions written in two popular languages, Java and Python.
arXiv Detail & Related papers (2021-08-26T05:44:20Z) - Unsupervised Translation of Programming Languages [19.56070393390029]
A transcompiler, also known as source-to-source, is a system that converts source code from a high-level programming language to another.
We train our model on source code from open source GitHub projects, and show that it can translate functions between C++, Java, and Python with high accuracy.
arXiv Detail & Related papers (2020-06-05T15:28:01Z) - Style Variation as a Vantage Point for Code-Switching [54.34370423151014]
Code-Switching (CS) is a common phenomenon observed in several bilingual and multilingual communities.
We present a novel vantage point of CS to be style variations between both the participating languages.
We propose a two-stage generative adversarial training approach where the first stage generates competitive negative examples for CS and the second stage generates more realistic CS sentences.
arXiv Detail & Related papers (2020-05-01T15:53:16Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.