1,435 research outputs found
Introductory programming: a systematic literature review
As computing becomes a mainstream discipline embedded in the school curriculum and acts as an enabler for an increasing range of academic disciplines in higher education, the literature on introductory programming is growing. Although there have been several reviews that focus on specific aspects of introductory programming, there has been no broad overview of the literature exploring recent trends across the breadth of introductory programming.
This paper is the report of an ITiCSE working group that conducted a systematic review in order to gain an overview of the introductory programming literature. Partitioning the literature into papers addressing the student, teaching, the curriculum, and assessment, we explore trends, highlight advances in knowledge over the past 15 years, and indicate possible directions for future research
A hierarchically blocked Jacobi SVD algorithm for single and multiple graphics processing units
We present a hierarchically blocked one-sided Jacobi algorithm for the
singular value decomposition (SVD), targeting both single and multiple graphics
processing units (GPUs). The blocking structure reflects the levels of GPU's
memory hierarchy. The algorithm may outperform MAGMA's dgesvd, while retaining
high relative accuracy. To this end, we developed a family of parallel pivot
strategies on GPU's shared address space, but applicable also to inter-GPU
communication. Unlike common hybrid approaches, our algorithm in a single GPU
setting needs a CPU for the controlling purposes only, while utilizing GPU's
resources to the fullest extent permitted by the hardware. When required by the
problem size, the algorithm, in principle, scales to an arbitrary number of GPU
nodes. The scalability is demonstrated by more than twofold speedup for
sufficiently large matrices on a Tesla S2050 system with four GPUs vs. a single
Fermi card.Comment: Accepted for publication in SIAM Journal on Scientific Computin
Do Robots Dream of Virtual Sheep: Rediscovering the "Karel the Robot" Paradigm for the "Plug&Play Generation"
We introduce âC-Sheepâ, an educational system designed to teach students the fundamentals of computer programming in a novel and exciting way. Recent studies suggest that computer science education is fast approaching a crisis - application numbers for degree courses in the area of computer programming are down, and potential candidates are put off the subject which they do not fully understand.
We address this problem with our system by providing the visually rich virtual environment of âThe Meadowâ, where the user writes programs to control the behaviour of a sheep using our âCSheepâ programming language. This combination of the âKarel the Robotâ paradigm with modern 3D computer graphics techniques, more commonly found in computer games, aims to help students to realise that computer programming can be an enjoyable and rewarding experience and intends to help educators with the teaching of computer science fundamentals. Our mini-language-like system for computer science education uses a state of the art rendering engine
offering features more commonly found in entertainment systems.
The scope of the mini-language is designed to fit in with the curriculum for the first term of an introductory computer program ming course (using the C programming language)
A music context for teaching introductory computing
We describe myro.chuck, a Python module for controlling music synthesis, and its applications to teaching introductory computer science. The module was built within the Myro framework using the ChucK programming language, and was used in an introductory computer science course combining robots, graphics and music. The results supported the value of music in engaging students and broadening their view of computer science
Calico: a multi-programming-language, multi-context framework designed for computer science education
The Calico project is a multi-language, multi-context programming framework and learning environment for computing education. This environment is designed to support several interoperable programming languages (including Python, Scheme, and a visual programming language), a variety of pedagogical contexts (including scientific visualization, robotics, and art), and an assortment of physical devices (including different educational robotics platforms and a variety of physical sensors). In addition, the environment is designed to support collaboration and modern, interactive learning. In this paper we describe the Calico project, its design and goals, our prototype system, and its current use
- âŠ