bluuebunny/crossref_metadata_2025 huggingface dataset:
Teaching computer science in context
Authors: Cooper Steve , Cunningham Steve
Published: October 2012

Do we need another editorial about engaging students in learning computer science so they will stay in the field and prepare for a career or further study? We wish it were not so, but in spite of some progress, there is little evidence that our students complete courses or stay in their degree programs at better rates than a few years ago. There are bright spots in the picture and some promising results here and there, but an overall pattern of change and improvement is not yet evident.
A primer on model checking
Authors: Ben-Ari Mordechai (Moti)
Published: October 2012

Model checking is a widely used formal method for the verification of concurrent programs. This article starts with an introduction to the concepts of model checking, followed by a description of Spin, one of the foremost model checkers. Software tools for teaching concurrency and nondeterminism using model checking are described: Erigone, a model checker for teaching; jSpin, a development environment; VN, a visualization of nondeterminism.
When students are not programmers
Authors: Konidari Eleni , Louridas Panos
Published: October 2012

We present our experience from using Python to teach programming to high school students (aged 15). We selected Python as it is regarded to be a language suitable for teaching, while at the same time it has the advantage of being a production language, widely used around the world. Our experience shows that the success of a language in a professional setting does not predict success as a teaching tool. Based on our observations we offer some general conclusions on programming languages for teaching.
Computer science teacher preparation is critical
Authors: Gal-Ezer Judith , Stephenson Chris
Published: October 2012

In this paper, we report on the research and recommendations of the CSTA (Computer Science Teachers Association) Teacher Certification Task Force, addressing the crisis in computer science teacher preparation and certification. This paper will address the importance of computer science as a scientific discipline, and provide a brief discussion of the relevant research and current existing certification models Primarily, however, this paper focuses on the Task Force's recommended models for teacher preparation and certification in computer science.
A plea for modesty
Authors: Hemmendinger David
Published: October 2012

From time to time a movement arises that promises to save the world, or at least to make it vastly better. The extraordinary achievements of digital computing make it a locus of such movements today. Yet we should be wary; when movements fail they provoke backlash that rejects the more limited gains that they might have afforded. Today "computational thinking" has a considerable following, and I would like to discuss some problems with its discourse. It is too often presented in terms that could be interpreted as arrogant or that are overstated. Its descriptions too often lack appropriate examples, and perhaps as a result, it gets misunderstood in casual writing.
Unexpected speed-up in Java on multiprocessors
Authors: Rolfe Timothy J.
Published: October 2012

Fine-tuning the partitioning algorithm for Quick Sort and Kth Element led to investigation of alternative ways of moving the median of three elements into position for the algorithm as used by Naps [1]. One is to fully three-sort the low, middle, and high elements; the other, simply to identify the median element and move it into the low position. Unexpectedly, the latter algorithm takes more time when running under Java on a multiprocessor computer.
An operating systems course with projects in java
Authors: Sattar Abdul , Mondshein Lee , Lorenzen Torben
Published: October 2012

This paper describes a set of five programming projects in an undergraduate Operating Systems course. The problems are designed to reinforce the fundamental concepts that are discussed in most operating systems textbooks. Students are required to write programs that will simulate the behavior of the process management, process synchronization, memory management, and storage management components of an operating system.
Using the vocabulary of software engineering to describe ABET accreditation
Authors: Leach Ronald J.
Published: October 2012

In this paper we use some common terminology from the computing field to help explain several concepts in the ABET accreditation process that appear to be rather widely misunderstood in the educational computing community. We show how the familiar terms "software quality metric," "software process metric," "quality assurance," and the "test-debug cycle" are used to help explain and clarify several fundamental ABET accreditation activities.
Computer literacy revisited
Authors: Epperson Arlin
Published: October 2012

The literature on computer literacy (CI) courses in higher education was reviewed. A survey was completed of components of CI courses from three populations. Results of the literature review, survey results, and most popular CI course components are presented, along with implications for CI course revisions.
Diagnosing your teaching style
Authors: Clear Tony
Published: October 2012

In the higher education context within which computing educators now teach, an increasing range of forces are conspiring against innovative teaching practice. Pressures of academic workload, pressures from consumerist students and regular course evaluations, pressures from increasingly managerial policies and practices, from so-called 'quality assurance systems', pressures to continually expand research output, all lead towards stifling conformity and a natural conservatism in teaching practice. The increasing focus on consistency in a mass production model of teaching militates heavily against innovation. This paper presents an instrument used by the author to diagnose the student perceptions of the pedagogy of his course, by mapping it against Reeve's fourteen dimensions of an interactive learning system [12]. The outcomes demonstrated significant differences in style between this course and the overall programme within which it was situated. It enabled the author to gain insight into how the course differed and issues about it that had discomfited students. This enabled constructive dialogue with the students and an explicit discussion of the underlying collaborative mode of pedagogy. The tool is presented here for others to adopt in order to diagnose or make explicit to students the style of their own courses, and hopefully encourage innovative teaching practice.
A pedagogical approach to discussing fundamental object-oriented programming principles using the ADT
SET
Authors: Ragonis Noa
Published: October 2012

Computer science (CS) instructors look for "good" examples that allow in-depth discussion of the fundamental concepts of object-oriented programming (OOP), yet keep the implementation framework simple. This paper presents a case study that uses the abstract data type (ADT)
Set
as such a "good" example. Familiarity with the Set type and the need for relatively basic programming tools for its implementation enable to delve quickly into the desirable discussions. The paper suggests a teaching sequence that includes introducing the problem and different design considerations that relate to the structures of classes and operations; a discussion of the projection of the different designs chosen, focusing on the relations between the classes; and an additional presentation of different representations of the Set values involving efficiency aspects. The teaching sequence takes into account authentic inputs from students obtained while studying this example, and offers pedagogical guidelines for its use. The example can be used within diverse educational contexts and has already been applied in high school classes, pre-service teacher preparatory courses, and study programs for in-service teachers.
A brief history of the computing sciences accreditation board (CSAB) promoting quality education in the computing fields
Authors: Engel Gerald , Impagliazzo John , LaMalva Patrick
Published: October 2012

Although professional accreditation has existed well over a century, the accreditation of computing programs is a relatively new experience. This paper highlights some of the important aspects of computing accreditation, particularly from the perspective of CSAB. In essence, this narrative presents a history of the organization as it celebrates its twenty-fifth anniversary. The work discusses the early days of its inception, its success as a respected accrediting agency, its actions taken over the past decade, and its planned activities for the future.
e-Learning Tools for Computer Science Educators and Students
Authors: Mock Kendrick
Published: October 2012

The high attrition rate for computer science students has generated significant debate as to the cause and possible actions to address the problem. For the introductory courses some departments have switched to new programming languages like Alice or Scratch that are much more visual than traditional languages and are considered easier to learn. Many instructors have also turned to hardware and software technology in search of better ways to inform and motivate their students. Fortunately, computer science educators are in an enviable position. As programmers, they have the means to write software to meet the pedagogical goals of their courses if existing software doesn't fit the bill. As a result, enterprising computer science educators have created software tools to help faculty teach and students learn virtually every topic in computer science. Some of these tools are designed for the physical classroom, others for the online classroom, and others for outside student activity. This article will describe some of these home-grown software tools. I'll also describe how several general tools can be used in a computer science context to enhance the learning opportunities available to students. While the focus is computer science, many tools also apply to other disciplines.
Eye Tracking and e-Learning
Authors: Al-Khalifa Hend Suliman , George Remya P.
Published: October 2012

In online learning, there is a need to create more effective interaction between e-learning content and learners. In particular, increasing the learners' motivation by stimulating their interests is very important. However, for any e-learning system to be effective, the knowledge transfer must occur in a usable, accessible, and functional manner. Eye tracking can be used to improve the functionalities of an e-learning system. It can dynamically capture users' behaviors in such a way that determines what they are doing, how much attention they are giving to each topic, where they are stuck, at and in what order they are reading content.
A 'Novel' Approach to Education
Authors: Schank Roger C.
Published: October 2012

Opinion columnist Roger C. Schank describes how he came to use a specially-written novel to teach business students. Becoming engrossed with fiction, characters, and story can be just as engaging as getting wrapped up in an interactive activity.
Connecting with e-Learners Through Podcasting
Authors: Zink Heather
Published: October 2012

In an online learning community where interaction occurs primarily through reading and writing, podcasting is an ideal way for instructors to better connect with their students. Podcasting can enhance instructor-student relationships, and provide an avenue for instructors to speak to the students whenever it is most convenient for them, even repeatedly. Heather Zink explains why adding this on-the-go content is invaluable.
Interview with Anya Kamenetz
Authors: Notess Mark
Published: October 2012

The current model of higher education in the U.S. is deeply flawed and unsustainable, says journalist Anya Kamenetz, in her new book DIY U: Edupunks, Edupreneurs, and the Coming Transformation of Higher Education. Kamenetz's critique is both economic and social, encompassing such topics as the cost of tuition and textbooks, loan-based financial aid, admissions patterns, and the deteriorated job market.
Review of 'Working Smarter: Informal Learning in the Cloud' by Jay Cross
Authors: Shea Peter
Published: October 2012

Jay Cross's latest book, Working Smarter: Informal Learning in the Cloud, is his second title about informal learning. Acquiring knowledge through informal contacts and casual conversation, as Cross indicates, is as old as the campfire. However, the rise of social networking technology and Web 2.0 tools have worked as a force multiplier, greatly enhancing the power of people to acquire knowledge.
Configurations for teaching labs
Authors: Walker Henry M.
Published: October 2012

For decades, computing educators have discussed structured laboratory exercises as part of coursework. Often called "closed labs", formal laboratory sessions promote active learning, engage students in the material at hand, provide practice in problem solving, refine technical skills, and allow instructors to work individually with students to answer questions and facilitate learning. These lab sessions also can encourage pair programming and other collaborative activities---at least from time to time. Altogether, the advantages of closed labs are well documented; at least eighty-nine articles, published between 2010 and 1994, are indexed under "closed labs" in the ACM Digital Library. Also, different institutions have varying goals and priorities for their labs; and over the years various schools have developed guidelines and plans for their laboratory facilities (e.g., [1, 3, 4]).
Integrating Second Life to enhance global intercultural collaboration projects
Authors: Corder Debbie , U. Alice
Published: October 2012

Virtual collaboration requires competencies such as effective communication, and the ability to build trust and understanding to create a community with common aims. Virtual collaboration with other cultures also requires development of intercultural competence. Individuals need to understand cultural differences that determine behaviour, successful teamwork and outcomes. They must also be able to notice, reflect and critically analyse, and be aware of their own cultural identity, beliefs and assumptions. Research has identified issues that can arise in global virtual collaboration. This paper discusses these issues and the integration of Second Life to enhance virtual collaborative projects. It explores the advantages of avatar-based human interaction and experiences that enable engagement in real-time realistic activities, and using the interaction and experiences to develop virtual collaboration competencies, including intercultural competence. Based on trialling student exchanges in an intercultural competence course, technical and pedagogical issues relating to competence development are discussed, along with the relevance to computer sciences, and possible inter-disciplinary collaboration to facilitate the development of intercultural competence.
Beyond static and dynamic scope
Authors: Tanter Éric
Published: October 2012

Traditional treatment of scoping in programming languages considers two opposite semantics: static scoping, where the scope of a binding is a block of program text, and dynamic scoping, where a binding is in effect during the whole reduction of an expression to a value. Static scoping and dynamic scoping are however but two points in the design space of scoping mechanisms. As a result, most proposed language mechanisms that rely on some notion of scoping, such as variable bindings of course, but also more exotic ones like aspects and mixin layers, adopt either one or the other semantics. As it turns out, these two semantics are sometimes too extreme, and a mixture of both is needed. To achieve this, language designers and/or programmers have to resort to ad hoc solutions. We present a general scoping model that simply expresses static and dynamic scoping, and that goes further by allowing fine-grained exploration of the design space of scoping. The model, called
scoping strategies
, gives precise control over propagation and activation of language mechanisms. While we have already studied it for aspects, we hereby show that the model is not restricted to aspects, by treating in depth its application to the most standard kind of adaptation: variable bindings. We also briefly discuss its application to mixin layers, and program monitoring. We believe that research in programming language constructs can benefit from a more flexible notion of scoping that goes beyond the static/dynamic dichotomy.
Contracts for first-class modules
Authors: Strickland T. Stephen , Felleisen Matthias
Published: October 2012

Behavioral software contracts express properties concerning the flow of values across component (modules, classes, etc) interfaces. These properties are often beyond the reach of theorem provers and are therefore monitored at run-time. When the monitor discovers a contract violation, it raises an exception that simultaneously pinpoints the contract violator and explains the nature of the violation.

Currently contract monitoring assumes static module interfaces. Specifically, the contract compiler partitions a contract into disjoint obligations for the static modules that communicate to an interface. At run-time, the information is used for catching and explaining contract violations. While static modules suffice for many situations, first-class modules - such as the units provided by PLT Scheme - support the dynamic and multiple linking that is often required in open software systems. The problem is, of course, that in such a world, it becomes impossible to tell from the source program alone which components have agreed to which contracts.

In this paper, we develop the semantic framework of monitoring contracts for dynamic modules. We establish the internal consistency of the semantics, and we sketch an implementation based on our experience of equipping PLT Scheme with such contracts.
Language embedding and optimization in mython
Authors: Riehl Jonathan
Published: October 2012

Mython is an extensible variant of the Python programming language. Mython achieves extensibility by adding a quotation mechanism that accepts an additional parameter as well as the code being quoted. The additional quotation parameter takes the form of a Mython expression. Unlike other user code, Mython evaluates the quotation parameter at compile-time. The result of the compile-time expression is a function that is used to both parse the quoted code, and extend the compile-time environment. By explicitly passing the compilation environment to compile-time quotation functions, Mython's parameterized quotation allows users to inject code into the language compiler. Injected code can extend the language by modifying the compilation phases, which are visible to the compilation environment. The Mython language is realized by the MyFront compiler, a tool for translating Mython into Python byte-code modules. This paper introduces the Mython language, describes the implementation and usage of the MyFront tool, and shows how MyFront can be used to implement domain-specific optimizations using a little rewrite language.
Directing JavaScript with arrows
Authors: Khoo Yit Phang , Hicks Michael , Foster Jeffrey S. , Sazawal Vibha
Published: October 2012

JavaScript programmers make extensive use of event-driven programming to help build responsive web applications. However, standard approaches to sequencing events are messy, and often lead to code that is difficult to understand and maintain. We have found that
arrows
, a generalization of
monads
, are an elegant solution to this problem. Arrows allow us to easily write asynchronous programs in small, modular units of code, and flexibly compose them in many different ways, while nicely abstracting the details of asynchronous program composition. In this paper, we present Arrowlets, a new JavaScript library that offers arrows to the everyday JavaScript programmer. We show how to use Arrowlets to construct a variety of state machines, including state machines that branch and loop. We also demonstrate how Arrowlets separate computation from composition with examples such as a drag-and-drop handler and a bubblesort animation.
Context-oriented software transactional memory in common lisp
Authors: Costanza Pascal , Herzeel Charlotte , D'Hondt Theo
Published: October 2012

Software transactional memory (STM) is a promising approach for coordinating concurrent threads, for which many implementation strategies are currently being researched. Although some first steps exist to ease experimenting with different strategies, this still remains a relatively complex and cumbersome task. The reason is that software transactions require STM-specific
dynamic crosscutting adaptations
, but this is not accounted for in current STM implementations. This paper presents CSTM, an STM framework based on
Context-oriented Progamming
, in which transactions are modelled as dynamically scoped layer activations. It enables expressing transactional variable accesses as user-defined crosscutting concerns, without requiring invasive changes in the rest of a program. This paper presents a proof-of-concept implementation based on ContextL for Common Lisp, along with example STM strategies and preliminary benchmarks, and introduces some of ContextL's unique features for context-dependent variable accesses.
Fast type reconstruction for dynamically typed programming languages
Authors: Pluquet Frédéric , Marot Antoine , Wuyts Roel
Published: October 2012

Type inference and type reconstruction derive static types for program elements that have no static type associated with them. They have a wide range of usage, such as helping to eliminate the burden of manually specifying types, verifying whether a program is type-safe, helping to produce more optimized code or helping to understand programs. While type inference and type reconstruction is an active field of research, most existing techniques are interested foremost in the precision of their approaches, at the expense of execution speed. As a result, existing approaches are not suited to give direct feedback in development environments, where interactivity dictates very fast approaches. This paper presents a type reconstruction algorithm for variables that is extremely fast (in the order of milliseconds) and reasonably precise (75 percent). The system is implemented as a byte-code evaluator in several Smalltalk environments, and its execution speed and precision are validated on a number of concrete case studies.
The ruby intermediate language
Authors: Furr Michael , An Jong-hoon (David) , Foster Jeffrey S. , Hicks Michael
Published: October 2012

Ruby is a popular, dynamic scripting language that aims to "feel natural to programmers" and give users the "freedom to choose" among many different ways of doing the same thing. While this arguably makes programming in Ruby easier, it makes it hard to build analysis and transformation tools that operate on Ruby source code. In this paper, we present the Ruby Intermediate Language (RIL), a Ruby front-end and intermediate representation that addresses these. RIL includes an extensible GLR parser for Ruby, and an automatic translation into an easy-to-analyze intermediate form. This translation eliminates redundant language constructs, unravels the often subtle ordering among side effecting operations, and makes implicit interpreter operations explicit. We also describe several additional useful features of RIL, such as a dynamic instrumentation library for profiling source code and a dataflow analysis engine. We demonstrate the usefulness of RIL by presenting a static and dynamic analysis to eliminate null pointer errors in Ruby programs. We hope that RIL's features will enable others to more easily build analysis tools for Ruby, and that our design will inspire the of similar frameworks for other dynamic languages.
Hosting an object heap on manycore hardware
Authors: Ungar David , Adams Sam S.
Published: October 2012

In order to construct a test-bed for investigating new programming paradigms for future "manycore" systems (i.e. those with at least a thousand cores), we are building a Smalltalk virtual machine that attempts to efficiently use a collection of 56-on-chip caches of 64KB each to host a multi-megabyte object heap. In addition to the cost of inter-core communication, two hardware characteristics influenced our design: the absence of hardware-provided cache-coherence, and the inability to move a single object from one core's cache to another's without changing its address. Our design relies on an object table, and the exploitation of a user-managed caching regime for read-mostly objects. At almost every stage of our process, we obtained measurements in order to guide the evolution of our system.

The architecture and performance characteristics of a manycore platform confound old intuitions by deviating from both traditional multicore systems and from distributed systems. The implementor confronts a wide variety of design choices, such as when to share address space, when to share memory as opposed to sending a message, and how to eke out the most performance from a memory system that is far more tightly integrated than a distributed system yet far less centralized than in a several-core system. Our system is far from complete, let alone optimal, but our experiences have helped us develop new intuitions needed to rise to the manycore software challenge.
Which English to Use?
Authors: Davies Christopher
Published: October 2012

You may think the differences between British English and American English are just a few spelling differences along with an accent and cadence change. Superficially, yes, but don't assume that there isn't any baggage that goes along with the way you speak. Culture goes hand in hand with language, and even within the U.S. Southerners conduct business in quite a different fashion from their Northern "time is money" brethren. It's important for an American to have a good grasp of British English along with the British way of life, and vice versa. This is not so much to avoid the comical errors when using words such suspenders or ascot (that's "braces" and "cravat" in British English), but to make a good connection with your potential business partner and online learners from around the globe.
Book Review: 'Online Interviews in Real Time,' by Janet Salmons
Authors: Williams Lorraine
Published: October 2012

Why do we assume that Internet communication tools are only useful for studying online behavior? Why not also for studying offline behaviors? Online Interviews in Real Time by Janet Salmons (2010) is a book for qualitative researchers and graduate students who want to make good decisions about the use of online communication tools for conducting interviews. Although the title calls attention to synchronous forms of communication for interviews, the book also focuses on asynchronous technologies in the context of pre- and post-interview best practices in research and ethics.
Can Social Media Help School Phobia?
Authors: Meehan Tara
Published: October 2012

Didaskaleinophobia, more commonly referred to as school phobia, is a panic disorder affecting roughly 1.4 million American adolescents. For these children and young adults, e-learning and other learning grounded in social media tools may provide some of the best opportunities for them to succeed in their education.
The Human Systems Director
Authors: Little Bob
Published: October 2012

For many years, e-learning suppliers (at least, those in the U.K.) have been frustrated by having to sell their products twice to the same potential buyer. That's because they need to convince not only a potential customer's HR specialists, but also their IT specialists that they should buy what the supplier is offering. Now comes news that that sort of frustration could soon become a thing of the past. Newly published research suggests that a new job title is coming to the business world: the human systems director. According to a study conducted by the Future Foundation on behalf of Google, the workplace will be transformed by the sharing and development of ideas by 2020.
Using Media to Pace Your Class
Authors: Klock Geoff
Published: October 2012

When teachers do anything for more than 20 minutes, students get restless. One way to deal with this is to keep a collection of relevant film clips on hand to break up the monotony of discussion, to reenergize a class grown bored. A well-paced, technology-enhanced class feels like it's going by faster and is more enjoyable for students. And when students are enjoying themselves, it's a lot easier to teach them. This article explains the tools you will need to create video clips for class, as well as an explanation for why and how to use them.
Informal Learning at Work
Authors: Little Bob
Published: October 2012

The U.K. Skills Minister John Hayes has called on all U.K. businesses to promote informal learning at work, following pledges from 64 companies to increase informal workplace training for their staff. These companies, including 11 from the FTSE 350, represent nearly 2 million employees. They formed part of a recent campaign run by Business in the Community on behalf of the U.K.'s Department for Business, Innovation and Skills (BIS) to improve workers' skills.
U.K.'s e-Learning Capital: Sheffield?
Authors: Little Bob
Published: October 2012

When many industries first gain maturity, the individual companies that make up the sector often begin to cluster in certain geographic regions. And Sheffield, U.K., is becoming one such magnet for e-learning businesses. Apart, perhaps, from access to broadband internet services, the e-learning industry is geography-neutral. However, the concentration of e-learning companies in one area does lead to the growth of a pool of skilled labor, from which all may draw. Bob Little explains which companies are now calling Sheffield, U.K., home.
Working Smarter in Terra Nova Circa 2015
Authors: Cross Jay , Hart Jane , Husband Jon , Jarche Harold , Jennings Charles , Quinn Clark
Published: October 2012

In an exclusive eLearn Magazine article, an e-learning all star team of authors defines the new learning age, approaching in the next 2 to 5 years: Terra Nova! Unlike the industrial age, when workers were told they were not paid to think, or the information age, when people were encouraged to think but only "inside the box," Terra Nova embraces a dynamic flow of power, authority, know-how, and trust. Change is so fast and furious that work and learning blur into one activity. Workers respond to novel situations as best they see fit, governed by the organization's values and their own gut feelings. Read on to learn about the new learning landscape.
The Case Against Data Lock-in
Authors: Fitzpatrick Brian W , Lueck JJ
Published: October 2012

Engineers employ many different tactics to focus on the user when writing software: for example, listening to user feedback, fixing bugs, and adding features that their users are clamoring for. Since Web-based services have made it easier for users to move to new applications, it’s becoming even more important to focus on building and retaining user trust. We’ve found that an incredibly effective way to earn and maintain user trust is to make it easy for users to leave your product with their data in tow. This not only prevents lock-in and engenders trust, but also forces your team to innovate and compete on technical merit. We call this
data liberation
.
Sir, Please Step Away from the ASR-33!
Authors: Kamp Poul-Henning
Published: October 2012

One of the naughty details of my Varnish software is that the configuration is written in a domain-specific language that is converted into C source code, compiled into a shared library, and executed at hardware speed. That obviously makes me a programming language syntax designer, and just as obviously I have started to think more about how we express ourselves in these syntaxes.
Does contextualized computing education help?
Authors: Guzdial Mark
Published: October 2012

Overview - in the March 2010 Inroads, Steve Cooper and Steve Cunningham presented an editorial arguing for "Teaching computer science in context" (Cooper and Cunningham 2010). Context is the use of a consistent application or domain area, which effectively covers the core areas of a computer science course, provides a source for explanations and a basis for student projects (Tew, Dorn et al. 2008; Guzdial 2009). Examples of contexts for introductory computer science include Media Computation (Guzdial 2003), Alice (Cooper, Dann et al. 2003), and Robotics (Balch, Summet et al. 2008).
Benefits of virtualization in security lab design
Authors: Wu Yu "Andy"
Published: October 2012

As a constructivist learning tool, information security laboratories can facilitate student learning. However, they also present challenges. The ability to confine malware within laboratory boundaries, repeatability and flexibility are desired qualities in laboratory design. This paper shares my experiences in using virtualization technology to achieve those qualities.
Facilitating independent learning with Lego Mindstorms robots
Authors: Lui Andrew K. , Ng S. C. , Cheung Yannie H. Y. , Gurung Prabhat
Published: October 2012

This paper describes a project aiming at promoting independent learning among CS1 students. The project used Lego Mindstorms robots as the tool for building a course that could engage students of various levels of learning independence. Based on the Staged Self-Directed Learning Model proposed by Grow, the course hoped to take students to higher levels of learning independence. Lego Mindstorms robots proved their versatility in achieving this objective.
CHAMSA
Authors: Cohen Avi , Haberman Bruria
Published: October 2012

The increasingly dynamic technological world, which recently has encouraged globalization in many domains, poses new educational challenges regarding preparing individuals to become well-educated and beneficial citizens who are capable of simultaneously functioning on personal, national, and global levels. One main goal of an educational system is to promote an environment in which youngsters can acquire and develop their ability to communicate meaningfully with others. We suggest that youngsters acquire five basic languages as tools for communication: a mother tongue, an elective international foreign language, a language of science, a language of art and body, and a language of technology, each of which is used to express themes and ideas or feelings associated with specific domains and contexts. We believe that long-term study of these languages, along with intelligent practice and utilizing communication skills, is highly useful for citizens to function successfully on personal, national, and global levels.
The sometimes harsh reality of real world computer science projects
Authors: Alkadi Ghassan , Beaubouef Theresa , Schroeder Robert
Published: October 2012

Real world projects for senior level software engineering courses offer many advantages for students and others involved. Because of the nature of the projects and the people involved, however, many problems can arise during the design and implementation of such projects. This paper discusses in depth the issues that computer science students sometimes face when they take on one of these real world projects.
The ideology of intelligent tutoring systems
Authors: Yang Feng-Jen
Published: October 2012

After approximately four decades of evolution, the attempt of using Intelligent Tutoring Systems (ITS) as extracurricular assistances is now widely accepted. As a rapid growing subarea of expert systems, their accomplishments are remarkable. During the exploration of making
virtual tutors
more humanlike, researchers have made a great deal of efforts on the investigation of further in-depth rationales and technologies such as
tutoring paradigms, student modeling, instruction modeling, adaptive curriculum planning
, and
user interfaces
. In this paper, I compiled some literatures on those essential issues and concluded the future of ITS at the end.
A specimen of parallel programming
Authors: Rolfe Timothy J.
Published: October 2012

One common example of parallel processing is the implementation of the merge sort within a parallel processing environment. In the fully parallel model, you repeatedly split the sublists down to the point where you have single-element lists [3]. You then merge these in parallel back up the processing tree until you obtain the fully merged list at the top of the tree. While of theoretical interest, you probably don't have the massively parallel processor that this would require.

Instead, you can use a mixed strategy. Determine the number of parallel processes you can realistically obtain within your computing environment. Then construct the processing tree so that you have that number of leaf nodes. Within the leaf nodes of the processing tree, simply use the best sequential algorithm to accomplish the sorting, and send that result upstream to the internal nodes of the processing tree, which will merge the sorted sublists and then send the resulting list farther upstream in the tree. Figure One shows the processing tree for the case in which you have a list of 2000 items to be sorted and have resources only sufficient for four parallel processes. The processes receiving the size 500 lists use some sequential sorting algorithm. Because of the implementation environment, it will be something in the C/C++ language---either qsort() or your favorite implementation of a fast sorting algorithm.

Each leaf node (with a size 500 list) then provides the sorted result to the parent process within the processing tree. That process combines the two lists to generate a size 1000 list, and then sends that result upstream to its parent process. Finally, the root process in the processing tree merges the two lists to obtain a size 2000 list, fully sorted.

If your environment supports more parallel processes, you might take the processing tree to four levels, so that eight processes do the sequential sorting of size 250 lists. For that matter, you could even deal with circumstances in which the supported number of parallel processes is not an exact power of two. That just means that some of the leaf nodes will be at the bottommost level and some conceptually at a higher level above in the processing tree. Since in parallel processing, the time required is the time required by the slowest process, you will probably want to stick with circumstances where the number of leaf nodes is a power of two---in other words, the processing tree is a full binary tree and all leaf nodes are doing approximately the same amount of work.
Virtualization: Blessing or Curse?
Authors: Kotsovinos Evangelos
Published: October 2012

Virtualization is often touted as the solution to many challenging problems, from resource underutilization to data-center optimization and carbon emission reduction. The hidden costs of virtualization, largely stemming from the complex and difficult system administration challenges it poses, are often overlooked, however. Reaping the fruits of virtualization requires the enterprise to navigate scalability limitations, revamp traditional operational practices, manage performance, and achieve unprecedented cross-silo collaboration. Virtualization is not a curse: it can bring material benefits, but only to the prepared.
Why Should Educators Blog?
Authors: Everson Michelle
Published: October 2012

Michelle Everson of the University of Minnesota shares the hurdles she finally cleared before becoming a blogger, and why blogging has been an immense help to her own teaching.
An Interview with Mark Guzdial
Authors: Denning Peter
Published: October 2012

Mark Guzdial is a Professor in the School of Interactive Computing at Georgia Institute of Technology (Georgia Tech). His research focuses on the intersection of computing and education, from the role of computing in facilitating education to how we educate about computing. In this interview with him, he discusses how we teach computing and to whom, especially his contention that a contextualized approach is a powerful tool to teach everyone about computing. --Editor
An Interview with Erol Gelenbe
Authors: Calude Cristian
Published: October 2012

This interview is the second of two parts of an interview of Professor Erol Gelenbe by Professor Cristian Calude. It appeared in print in the October 2010 issue of the Bulletin of the European Association for Computer Science and is printed here with permission. --Editor
Ubiquity symposium: Computation, Uncertainty and Risk
Authors: Buzen Jeffrey P.
Published: October 2012

In this eleventh piece to the Ubiquity symposium discussing What is computation? Jeffrey P. Buzen develops a new computational model for representing computations that arise when deterministic algorithms process workloads whose detailed structure is uncertain. --Editor
Interdisciplinary computing is the answer
Authors: Cassel Lillian N.
Published: October 2012

CURRENT WAVES - INTERDISCIPLINARITY is all the rage. The terms have become clich's: break down the silos and remove barriers to cooperation. Motivations vary. Thus, of course, there are various problems that the new collaborations are expected to address. Some people do not expect success from interdisciplinarity at all, as they see the whole approach as counterproductive and a threat to the integrity of the individual disciplines.
Reasoning with ethics
Authors: Martin C. Dianne
Published: October 2012

"IDEALLY ETHICS IS TAUGHT not just in courses focused specifically on ethics, but in any course to which ethics might potentially apply. Otherwise, there is the risk that what students learn will be inert, that students will not see how to apply it outside the one course on ethics. Students need to learn how to reason about and apply ethical principles by being confronted with ethical problems in a variety of domains. They also need to be inoculated against the pressures to behave unethically, such as occur when there is retaliation for whistleblowing (Sternberg, 2009).
Loop Constructs in scratch
Authors: Ben-Ari Mordechai (Moti)
Published: October 2012

The constructs for loops in Scratch are presented and compared with those in mainstream programming languages like Java. There are significant differences in the semantics of loops that have the potential for causing confusion when students move from Scratch to another language.
Student and teacher views of the internet
Authors: Wombwell Eleanor , Smith Dan
Published: October 2012

We surveyed a sample of three hundred secondary school students (ages from 11-16) to investigate their internet access, use and perceived competence. The relationship between students' perceived and actual competence was explored through a series of experimental information finding tasks. We asked a sample of sixty teachers from the same schools their views of pupils' use and competence in using the internet. We found large differences between student and teacher perceptions of students' skill and use of the internet. This suggests that teachers' perceptions and knowledge of computing may be a signifi cant, in discouraging girls from studying computing subjects.
Bringing computational thinking to K-12
Authors: Barr Valerie , Stephenson Chris
Published: October 2012

The process of increasing student exposure to computational thinking in K-12 is complex, requiring systemic change, teacher engagement, and development of signifi cant resources. Collaboration with the computer science education community is vital to this effort.
Enhancing the social issues components in our computing curriculum
Authors: Goldweber Mikey , Davoli Renzo , Little Joyce Currie , Riedesel Charles , Walker Henry , Cross Gerry , Von Konsky Brian R.
Published: October 2012

The acceptance and integration of social issues into computing curricula is still a work in progress twenty years after it was first incorporated into the ACM Computing Curricula. Through an international survey of computing instructors, this paper corroborates prior work showing that most institutions include the societal impact of ICT in their programs. However, topics often concentrate on computer history, codes of ethics and intellectual property, while neglecting broader issues of societal impact. This paper explores how these neglected topics can be better developed through a subtle change of focus to the significant role that ICT plays in addressing the needs of the community. Drawing on the survey and a set of implementation cases, the paper provides guidance by means of examples and resources to empower teaching teams to engage students in the application of ICT to bring about positive social outcomes -- computing for the social good.
A co-Relational Model of Data for Large Shared Data Banks
Authors: Meijer Erik , Bierman Gavin
Published: October 2012

Fueled by their promise to solve the problem of distilling valuable information and business insight from big data in a scalable and programmer-friendly way, noSQL databases have been one of the hottest topics in our field recently. With a plethora of open source and commercial offerings and a surrounding cacophony of technical terms, however, it is hard for businesses and practitioners to see the forest for the trees.
Weapons of Mass Assignment
Authors: McKenzie Patrick
Published: October 2012

In May 2010, during a news cycle dominated by users’ widespread disgust with Facebook privacy policies, a team of four students from New York University published a request for $10,000 in donations to build a privacy-aware Facebook alternative. The software, Diaspora, would allow users to host their own social networks and own their own data. The team promised to open-source all the code they wrote, guaranteeing the privacy and security of users’ data by exposing the code to public scrutiny. With the help of front-page coverage from the
New York Times,
the team ended up raising more than $200,000. They anticipated launching the service to end users in October 2010.
DoublePlay
Authors: Veeraraghavan Kaushik , Lee Dongyoon , Wester Benjamin , Ouyang Jessica , Chen Peter M. , Flinn Jason , Narayanasamy Satish
Published: October 2012

Deterministic replay systems record and reproduce the execution of a hardware or software system. In contrast to replaying execution on uniprocessors, deterministic replay on multiprocessors is very challenging to implement efficiently because of the need to reproduce the order or values read by shared memory operations performed by multiple threads. In this paper, we present DoublePlay, a new way to efficiently guarantee replay on commodity multiprocessors. Our key insight is that one can use the simpler and faster mechanisms of single-processor record and replay, yet still achieve the scalability offered by multiple cores, by using an additional execution to parallelize the record and replay of an application. DoublePlay timeslices multiple threads on a single processor, then runs multiple time intervals (epochs) of the program concurrently on separate processors. This strategy, which we call uniparallelism, makes logging much easier because each epoch runs on a single processor (so threads in an epoch never simultaneously access the same memory) and different epochs operate on different copies of the memory. Thus, rather than logging the order of shared-memory accesses, we need only log the order in which threads in an epoch are timesliced on the processor. DoublePlay runs an additional execution of the program on multiple processors to generate checkpoints so that epochs run in parallel. We evaluate DoublePlay on a variety of client, server, and scientific parallel benchmarks; with spare cores, DoublePlay reduces logging overhead to an average of 15% with two worker threads and 28% with four threads.