Envisioning the next generation of learning spaces
The traditional view of teaching and learning that assumes an instructor is standing in front of the room lecturing to students seated in neatly organized rows of desks is quickly evolving to models of teaching and learning that challenge these ...
Promoting student engagement: what can computer science faculty learn from other stem disciplines?
The dire need for information technology professionals is well documented. By most projections, the growth of jobs will outpace the production of computing graduates through 2018. The computing profession also has among the lowest participation of women ...
Applying mathematical reasoning throughout the CS curriculum
Is it possible to excite students about learning the mathematical principles that underlie high-quality software? Can we teach them to apply these principles using modern, internet-based software tools? Can this be accomplished without displacing ...
Healthy computer use for computer science
As computer science educators we have an ethical responsibility to teach our students healthy computer use. In this paper we make the case for this ethical responsibility; examine the pathomechanics of the human computer interface; present a holistic ...
ADLib: an Arduino communication framework for ambient displays
Ambient displays have been a major area of research within the ubiquitous computing field since the early days of Mark Weiser's vision. Although many forms of ambient displays have been built, they all require a significant amount of development time. ...
A system to place incoming students in computer science, mathematics and statistics
Colleges utilize various methods of placing incoming students in classes, but many methods are time intensive, have limited scope, or lack precision. After an older LISP-based expert system had difficulty placing students, Grinnell College needed a ...
Hello, worlds: an introduction to mobile application development for IOS and Android
The popularity and proliferation of mobile applications is undeniable, and the tools are available for undergraduates to explore mobile application development within the curriculum. In a sense, mobile application development is like any other kind of ...
A user-level understanding of Linux & Windows operating systems for both electronics and information systems students
Information Systems and Applied Technologies at Southern Illinois University Carbondale is a program with around 300 on-campus students that encompasses both Electronic Systems Technologies and Information Systems Technologies students. Both types of ...
Learning from GOATS
Education research indicates that computer tutoring systems can positively impact learning in mathematics and the sciences. When integrated into a competent and motivated curriculum, computer tutors enable students to engage in deep exploration of a ...
Problem based learning in introduction to programming courses
With the decrease of student enrollment in Computer Science and Information Systems programs, we need to change the way we deliver first-year computer programming curricula. Introductory courses have the potential to attract and to retain students. This ...
ModelTester: a tool for teaching model-based testing
Model-based testing is an increasingly important software-testing technique that CS and IS students must become familiar with. With ModelTester, students write an extended finite-state machine model for the software under test (SUT). ModelTester then ...
UMLGrader: an automated class diagram grader
We present UMLGrader, a system designed to provide automated feedback to students on class diagrams written in the Unified Modeling Language (UML). Given a diagram which is constructed to model a tightly constrained problem, the tool compares the ...
App inventor for Android with studio-based learning
App Inventor for Android allows people with little or no programming experience to create smart phone applications on the Android platform. This is accomplished by using drag-and-drop UI design and blocks-oriented visual programming. We offered an ...
Using GridWorld to demonstrate artificial intelligence concepts
The GridWorld case study is a collection of java classes that simulate a simple world environment. It is available for free from The College Board and is primarily used as a required part of the high school AP Computer Science curriculum. It provides a ...
Mathematics throughout the CS curriculum
Computer Science faculty generally agree that our students should study mathematics. But there are three major challenges to address in order to effectively incorporate mathematics into the CS curriculum. Those challenges can be framed in the form of ...
Teaching access control with domain type enforcement
Access control systems have become significantly more sophisticated in order to meet the security demands of Internet-based computing. Students must be trained formally to deal with the complexity of these modern systems, to ensure correctness and to ...
DESvisual: a visualization tool for the DES cipher
This paper describes a visualization tool DESvisual that helps students understand and instructors teach the building blocks of symmetric encryption. In particular, the tool depicts the primitive operations required to perform the initial permutation ...
Rock-paper-scissors: nifty tools and assignments
In the childhood game of "rock-paper-scissors", two participants select one of three different gestures. The selected gestures are then compared using the following rule set: rock crushes scissors, scissors cuts paper, and paper covers rock. Ties are ...
Java WIDE - Java Wiki Integrated Development environment: nifty tools and assignments
Over the past decade applications have been moving from the desktop into the cloud. After extensive searching, the only integrated development environments has emerged in cloud computing. The Java Wiki Integrated Development Environment (JavaWIDE) is ...
A bit-wise and Boolean-level introduction to computer architecture: nifty tools and assignments
A set of digital labs has been developed for both Electronic and Information Technology students that utilizes basic Boolean algebra concepts in order to construct a simple 4-bit ALU. These labs can be built using inexpensive GAL ICs and a simple GAL ...
Healthy computer use for computer science
This workshop covers the pathomechanics of the human computer interface and explains why unhealthy computer use is particularly dangerous for computer science students. Participants will learn how to practice healthy computer use with four strategies: ...
Increasing the participation of females in computing careers
Despite the excellent opportunities and salaries in computing careers, participation by females has declined over the past twenty years (see [1]). Two of the major factors contributing to this decline are the reduced numbers of females starting and ...
Introducing programming in a functions-first manner, using the "Program by Design" approach
Matthias Felleisen was awarded the 2011 SIGCSE Award for Outstanding Contribution to Computer Science Education for his and his research team's work on the TeachScheme! project, which was begun in 1995, and is now called "Program by Design". This ...
Multi-agent simulation and netLogo in the introductory computer science curriculum
The tutorial introduces the NetLogo programming language and presents an approach to an introductory computer science course based on multi-agent simulation and NetLogo. This course has been taught at Middlebury College in Vermont for the past five ...
A review of studio-based learning in computer science
Studio-based learning (SBL), a pedagogical technique that promotes learning through the iterative construction and review of problem solutions, is becoming increasingly popular in computer science education. This paper reviews the use of SBL in ...
Using the context of algorithmic art to change attitudes in introductory programming
This paper describes the use of algorithmic art as a context for teaching programming and computational thinking. We show how students can learn to apply mathematics and computer programming to create algorithmic art, and we record changes in their ...
Classroom explorations in 3D stereoscopy (S3D)
3D Stereoscopy is a rich and fun interdisciplinary context for engaging students across campus. Students can practice programming and also experience how computing can be used as a tool for exploration and analysis of scientific (or other) questions.
Introduction to ReST: easy document creation for computer science students: tutorial presentation
This tutorial will cover docutils, an open-source (Python) package originally intended for documentation. We will emphasize its implementation language, Restructured Text, or ReST. ReST converts the same simple, readable ASCII-based format into polished ...
Is Java relevant in the game industry?
In this paper, the authors present research to determine whether or not Java is a relevant programming language in the gaming industry. The objective is to determine if it would be advantageous for a career-oriented college to use Java to teach game ...
Hands-on internet with Seattle and computers from across the globe
The Internet Connectivity module is a short assignment covering distributed computing and networking. The Internet Connectivity module is part of the curriculum created for the Northwest Distributed Computer Science Department and is built upon the ...