ACM Transactions on Computing Education
Introduction to the special issue on concurrent and parallel programming
Mordechai Ben-Ari, Dan Garcia, Tom Murphy
Much of computing education research is devoted to introductory computer science. The articles in this special issue look at the other end of the spectrum: learning advanced subjects, here, concurrent, parallel and distributed computation. The articles present four approaches for teaching these subjects using infra-structure that is feasible for educational institutions to acquire: MapReduce in a cloud, remote computing on a multicore system, a network of gaming consoles, and software modeling using formal specification.
Much of computing education research is devoted to introductory computer science. The articles in this special issue look at the other end of the spectrum: learning advanced subjects, here, concurrent, parallel and distributed computation. The articles present four approaches for teaching these subjects using infra-structure that is feasible for educational institutions to acquire: MapReduce in a cloud, remote computing on a multicore system, a network of gaming consoles, and software modeling using formal specification.
Using clouds for MapReduce measurement assignments
Ariel Rabkin, Charles Reiss, Randy Katz, David Patterson
We describe our experiences teaching MapReduce in a large undergraduate lecture course using public cloud services and the standard Hadoop API. Using the standard API, students directly experienced the quality of industrial big-data tools. Using the cloud, every student could carry out scalability benchmarking assignments on realistic hardware, which would have been impossible otherwise. Over two semesters, over 500 students took our course. We believe this is the first large-scale demonstration that it is feasible to use pay-as-you-go billing in the cloud for a large undergraduate course. Modest instructor effort was sufficient to prevent students from overspending. Average per-pupil expenses in the Cloud were under $45.
We describe our experiences teaching MapReduce in a large undergraduate lecture course using public cloud services and the standard Hadoop API. Using the standard API, students directly experienced the quality of industrial big-data tools. Using the cloud, every student could carry out scalability benchmarking assignments on realistic hardware, which would have been impossible otherwise. Over two semesters, over 500 students took our course. We believe this is the first large-scale demonstration that it is feasible to use pay-as-you-go billing in the cloud for a large undergraduate course. Modest instructor effort was sufficient to prevent students from overspending. Average per-pupil expenses in the Cloud were under $45.
Implementing an affordable high-performance computing for teaching-oriented computer science curriculum
Omar Abuzaghleh, Kathleen Goldschmidt, Yasser Elleithy, Jeongkyu Lee
With the advances in computing power, high-performance computing (HPC) platforms have had an impact on not only scientific research in advanced organizations but also computer science curriculum in the educational community. For example, multicore programming and parallel systems are highly desired courses in the computer science major. However, the high cost of HPC equipment and maintenance makes it hard to be adapted into a conventional computer science curriculum. Specifically, teaching-oriented institutions cannot afford an HPC system due to the high cost, lack of experience, and smaller research infrastructure. The main objective of this article is to present an affordable and easy-to-use high-performance cluster system for teaching-oriented computer science curriculums.
With the advances in computing power, high-performance computing (HPC) platforms have had an impact on not only scientific research in advanced organizations but also computer science curriculum in the educational community. For example, multicore programming and parallel systems are highly desired courses in the computer science major. However, the high cost of HPC equipment and maintenance makes it hard to be adapted into a conventional computer science curriculum. Specifically, teaching-oriented institutions cannot afford an HPC system due to the high cost, lack of experience, and smaller research infrastructure. The main objective of this article is to present an affordable and easy-to-use high-performance cluster system for teaching-oriented computer science curriculums.
A down-to-earth educational operating system for up-in-the-cloud many-core architectures
Michael Ziwisky, Kyle Persohn, Dennis Brylow
We present Xipx, the first port of a major educational operating system to a processor in the emerging class of many-core architectures. Through extensions to the proven Embedded Xinu operating system, Xipx gives students hands-on experience with system programming in a distributed message-passing environment. We expose the software primitives needed to maintain coherency between many cores in a system lacking specialized caching hardware. Our proposed series of laboratory assignments adds parallel thread execution and intercore message passing communication to a well-established OS curriculum.
We present Xipx, the first port of a major educational operating system to a processor in the emerging class of many-core architectures. Through extensions to the proven Embedded Xinu operating system, Xipx gives students hands-on experience with system programming in a distributed message-passing environment. We expose the software primitives needed to maintain coherency between many cores in a system lacking specialized caching hardware. Our proposed series of laboratory assignments adds parallel thread execution and intercore message passing communication to a well-established OS curriculum.
A model-driven approach to teaching concurrency
Manuel Carro, Ángel Herranz, Julio Mariño
We present an undergraduate course on concurrent programming where formal models are used in different stages of the learning process. The main practical difference with other approaches lies in the fact that the ability to develop correct concurrent software relies on a systematic transformation of formal models of inter-process interaction (so called shared resources), rather than on the specific constructs of some programming language. Using a resource-centric rather than a language-centric approach has some benefits for both teachers and students. Besides the obvious advantage of being independent of the programming language, the models help in the early validation of concurrent software design, provide students and teachers with a lingua franca that greatly simplifies communication at the classroom and during supervision, and help in the automatic generation of tests for the practical assignments.
We present an undergraduate course on concurrent programming where formal models are used in different stages of the learning process. The main practical difference with other approaches lies in the fact that the ability to develop correct concurrent software relies on a systematic transformation of formal models of inter-process interaction (so called shared resources), rather than on the specific constructs of some programming language. Using a resource-centric rather than a language-centric approach has some benefits for both teachers and students. Besides the obvious advantage of being independent of the programming language, the models help in the early validation of concurrent software design, provide students and teachers with a lingua franca that greatly simplifies communication at the classroom and during supervision, and help in the automatic generation of tests for the practical assignments.
Digital Hardware Design Teaching: An Alternative Approach
Khaled Benkrid, Thomas Clayton
This article presents the design and implementation of a complete review of undergraduate digital hardware design teaching in the School of Engineering at the University of Edinburgh. Four guiding principles have been used in this exercise: learning-outcome driven teaching, deep learning, affordability, and flexibility. This has identified discrete electronics as key components in the early stages of the curriculum and FPGAs as an economical platform for the teaching of various digital hardware design concepts and techniques in later stages of the curriculum. In particular, the article presents the detailed design and implementation of one digital hardware design laboratory, called Gateway, which introduces students to synchronous digital circuit development from high level functional specifications, uses Verilog for hardware description and FPGAs as an implementation platform.
This article presents the design and implementation of a complete review of undergraduate digital hardware design teaching in the School of Engineering at the University of Edinburgh. Four guiding principles have been used in this exercise: learning-outcome driven teaching, deep learning, affordability, and flexibility. This has identified discrete electronics as key components in the early stages of the curriculum and FPGAs as an economical platform for the teaching of various digital hardware design concepts and techniques in later stages of the curriculum. In particular, the article presents the detailed design and implementation of one digital hardware design laboratory, called Gateway, which introduces students to synchronous digital circuit development from high level functional specifications, uses Verilog for hardware description and FPGAs as an implementation platform.
Frances: A Tool for Understanding Computer Architecture and Assembly Language
Tyler Sondag, Kian L. Pokorny, Hridesh Rajan
Students in all areas of computing require knowledge of the computing device including software implementation at the machine level. Several courses in computer science curricula address these low-level details such as computer architecture and assembly languages. For such courses, there are advantages to studying real architectures instead of simplified examples. However, real architectures and instruction sets introduce complexity that makes them difficult to grasp in a single semester course. Visualization techniques can help ease this burden, unfortunately existing tools are often difficult to use and consequently difficult to adopt in a course where time is already limited. To solve this problem, we present Frances.
Students in all areas of computing require knowledge of the computing device including software implementation at the machine level. Several courses in computer science curricula address these low-level details such as computer architecture and assembly languages. For such courses, there are advantages to studying real architectures instead of simplified examples. However, real architectures and instruction sets introduce complexity that makes them difficult to grasp in a single semester course. Visualization techniques can help ease this burden, unfortunately existing tools are often difficult to use and consequently difficult to adopt in a course where time is already limited. To solve this problem, we present Frances.
When Life and Learning Do Not Fit: Challenges of Workload and Communication in Introductory Computer Science Online
Klara Benda, Amy Bruckman, Mark Guzdial
We present the results of an interview study investigating student experiences in two online introductory computer science courses. Our theoretical approach is situated at the intersection of two research traditions: distance and adult education research, which tends to be sociologically oriented, and computer science education research, which has strong connections with pedagogy and psychology. The article reviews contributions from both traditions on student failure in the context of higher education, distance and online education as well as introductory computer science. Our research relies on a combination of the two perspectives, which provides useful results for the field of computer science education in general, as well as its online or distance versions.
We present the results of an interview study investigating student experiences in two online introductory computer science courses. Our theoretical approach is situated at the intersection of two research traditions: distance and adult education research, which tends to be sociologically oriented, and computer science education research, which has strong connections with pedagogy and psychology. The article reviews contributions from both traditions on student failure in the context of higher education, distance and online education as well as introductory computer science. Our research relies on a combination of the two perspectives, which provides useful results for the field of computer science education in general, as well as its online or distance versions.
Computer Science Education in Secondary Schools -- The Introduction of a New Compulsory Subject
Peter Hubwieser
In 2004 the German state of Bavaria introduced a new compulsory subject of computer science (CS) in its grammar schools (Gymnasium). The subject is based on a comprehensive teaching concept that was developed by the author and his colleagues during the years 1995--2000. It comprises mandatory courses in grades 6/7 for all students of grammar schools and in grade 9/10 for the students of the science and technology track of this school type. In grades 11 and 12 there are elective courses that qualify for an optional graduation exam in CS. The first students that have attended the course in total graduated in 2011.
In 2004 the German state of Bavaria introduced a new compulsory subject of computer science (CS) in its grammar schools (Gymnasium). The subject is based on a comprehensive teaching concept that was developed by the author and his colleagues during the years 1995--2000. It comprises mandatory courses in grades 6/7 for all students of grammar schools and in grade 9/10 for the students of the science and technology track of this school type. In grades 11 and 12 there are elective courses that qualify for an optional graduation exam in CS. The first students that have attended the course in total graduated in 2011.

