ACM Logo  An ACM Publication  |  CONTRIBUTE  |  FOLLOW    

e-Learning Tools for Computer Science Educators and Students

By Kendrick Mock / June 2010

Print Email
Comments (6) Instapaper

e-Learning Tools for Computer Science Educators and Students

June 22, 2010

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.

Other tools discussed in this article focus on specific topics in computer science. Although these will not be of direct use to faculty outside computing, they are indicative of how technology can enhance learning and will hopefully serve as inspiration to develop e-learning tools for other disciplines. This article will not get into specific programming languages, editors, IDEs, or software development tools. Instead the emphasis is on technologies that directly apply to teaching and learning.

As an additional resource, many of these technologies are discussed at conferences such as those sponsored by ACM's Special Interest Group on Computer Science Education.

Tablet PCs
A tablet with an active digitizer for writing digital ink is probably the single piece of technology that has had the largest impact on my teaching. If you use PowerPoint, then you can easily transition to using a pen to annotate your slides. Microsoft OneNote ($79.95), Microsoft Windows Journal, and Jarnal (free) mimic writing on paper, but you can start with an outline or pre-developed content that might otherwise be difficult or time consuming to write down during class.

A typical lecture for me involves some slides with portions of a program already written or pieces of a diagram already drawn, and then we complete the code or diagram together in class. In the screenshot shown (Figure 1), I've started with a description of the Towers of Hanoi game before class, then sketched in blue the recursive solution in class. This setup allows me to have prepared "PowerPoint" content, but instead of whizzing through difficult material (and getting glazed-over looks from students) I describe it step-by-step via live handwriting.

If you decide to use a tablet for presentations, a small yet useful utility is PenAttention (free), which highlights the location of the pen so students can see what you are pointing at. In preparing lectures, I also make heavy use of SnagIt ($49.95) to easily copy something on my screen to put into my presentation.

Screen Recording Software
For technical content, students often need to review material multiple times before they get it. Both their notes and the instructor's notes may be undecipherable, especially if material is erased and written over.

One of the best techniques to address this problem is to record the instructor's computer screen together with recorded audio. When used with a tablet, the entire lecture (including handwriting) is captured, and the resulting video can then be put online for students to view. Camtasia Studio ($299; or Camtasia for Mac $99) is a popular and easy-to-use program for this purpose. Other alternatives include Captivate ($799) and My Screen Recorder Pro ($99.95). While you might expect the availability of recorded lectures to result in fewer students coming to class, my experience (and that of many other faculty) is that most students still come to class and use the recorded lectures to review the course material at their own pace.

Classroom Interaction Systems
A one-to-one computing environment is one in which every student has a computer. This might involve a computer-based classroom or institutions with a requirement for every student to own a notebook computer. An effective way to leverage this technology from a learning perspective is to employ classroom interaction systems.

Classroom Presenter (free), developed at the University of Washington, lets an instructor transmit his or her slides over a network (typically wirelessly) to every student's computer. Designed for a Tablet PC, the instructor can annotate slides, and the annotations appear on the student's screen in real time. Students can add their own notes, too. While Classroom Presenter's core functionality is useful, the real magic happens when students are given a problem to complete on their computer and electronically submit their work to the instructor through the interactive system. The instructor can then view students' submissions and share them with the class if desired.

In this example (Figure 2), the instructions are in black and the student has submitted his handwritten work in green. In this case, the student's response for how to delete a node from a binary search tree is incorrect, and it gives the instructor a chance to describe what's wrong. The beauty of the approach is that all students actively participate in the exercises and receive immediate feedback regarding their misconceptions instead of waiting days or even weeks for corrected homework assignments or exams. Incidentally, I have found that these systems help keep students engaged and lessens the number of students that would otherwise surf the web.

Other classroom interaction systems include DyKnow Vision (subscription and licensing costs vary) and Ubiquitous Presenter (free), which works through a web browser.

Messaging Software
Text messaging software is a convenient way for students to ask questions. Usually I get questions about homework assignments, and when students have a question about code, text messaging enables them to paste code snippets directly to me or their peers—although many messaging clients have a tendency to parse portions of the code into smiley faces (adding a space between symbols usually prevents this).

Digsby (free) is a messaging client that integrates AIM, MSN, Yahoo!, ICQ, Google Talk, Jabber, and Facebook chat all in one interface. In my experience, there are usually two groups of students: one that prefers to ask questions in person, and one that prefers to ask questions over messaging clients.

Programming Practice
The best way to learn to program is to write actual programs. Several websites exist to give students practice in writing mostly small programs. CodingBat by Nick Parlante is a site that lets students write online programs in Java or Python and get instant feedback as to the correctness. In the screenshot shown (Figure 3), I've entered "return a+b;" as my solution. Upon clicking "Go" the program is compiled, executed with a suite of test cases, and the table of test cases appears on the right which shows which cases worked and which cases failed.

Similar sites include Practice-It! for Java and CodeLab (about $15-$30 per user) for Python, Java, C, and C++.

Project Management
Large group projects benefit from collaboration and code repository tools. If your institution uses a course management system, then there is probably a wiki or forum that can satisfy the collaboration piece but likely lacks code-specific features like issue tracking or version control.

Google code (free) is a great alternative that integrates downloads, a wiki, issue tracking, and subversion or mercurial for revision control. If you prefer a locally hosted project management system, you might consider ProjectPier (free), which is a PHP-based system that supports task management, messaging, file management, and versioning (but not for version control on individual source code files). Many other free and commercial online project management systems exist, but if you elect to go this route be prepared to perform some setup and administration tasks.

Plagiarism Detection
MOSS (free) is an internet service that takes multiple source code files and returns a report with the files that are suspiciously similar to one another. It works with all common programming languages. While MOSS won't tell you if a student copied a solution off the internet, it will tell you if two or more students are copying each other.

Program and Algorithm Visualization
Visualization tools can help students learn how programs run and algorithms operate. Jeliot (free) is a tool that shows step-by-step how data, methods, expressions, and objects interact in a Java program.


JHAVÉ (free), the Java-hosted algorithm visualization environment, is a tool used to build custom animations that tie in with algorithms in Java. It can display a visualization of the algorithm synchronized to lines of code and can include an audio explanation of the algorithm as well.

For algorithms, there is also The Algorithm Visualization Portal, which has links to many different algorithm and data structure visualization implementations available online.

For the theoretical topic of automata and formal languages, JFLAP is software that allows students to create and graphically visualize DFAs, NFAs, regular expressions, context-free grammars, pushdown automata, turing machines, and L-systems.

Assignments, Lectures, and Curriculum Ideas
If you're looking for new and engaging assignments for introductory programming courses be sure to check out the Nifty Assignments archive. Sedgewick and Wayne also maintain a collection of Creative Programming Assignments and there are some engaging assignments from Ed Karrel's Programming Contest Archives.

For ideas on organizing your class, search the Computer Science Syllabus Repository set up by Virginia Tech and Villanova. You might also check out the video archives of MIT's Open Courseware, the University of Washington CSE video collection, or Google Tech Talks for lecture ideas.

Finally, Ensemble is a NSF National Science Digital Library Pathways project that seeks to establish a national digital library to connect computing educators. It serves as a portal with links to a wide range of CS educational topics, including links to many of the sites referenced in this article.

This article has touched on just a few of the many e-learning tools that are available to computer science educators. If you would like to engage in further discussion regarding CS eLearning tools consider attending one of the SIGCSE or CCSC conferences.

About the Author

Kenrick Mock, Ph.D., is an associate professor of computer science at the University of Alaska Anchorage. He has taught more than 20 courses and is a co-author of several introductory textbooks on C++ and Java programming. His blog on teaching with technology is online at


  • Mon, 16 Aug 2010
    Post by Kenrick

    Really any of the current Tablet PC's out there today will work, just make sure it has an active digitizer for writing ink. Some only have touchscreens or only capacative touchscreens. I'm using a Fujitsu T4410 right now, but any of the other Fujitsu LifeBook tablets with the active digitizer would work. The HP TouchSmart tm2 is pretty inexpensive that some professors here use, and I used to use a Lenovo X series tablet that I also liked.

  • Tue, 27 Jul 2010
    Post by Bonnie MacKellar

    Your description of using your tablet PC in class sounds exactly like what I am looking for! I'm not very familiar with tablet PCs. Which one do you have? Are there particular features I should look for if I want to use a tablet in the way you describe?

  • Thu, 22 Jul 2010
    Post by Suresh

    HyperOffice ( is another great tool for educators and students. It includes web conferencing, surveys, document sharing, calendars and other tools in a single solution. Students can have audio meetings, manage schedules, give simple tests and share assignments using these tools.

  • Wed, 26 May 2010
    Post by Diane

    I recently did some research into the popularity of online learning. It is estimated that in the next 5 years, there will be around 22 million students getting at least part of their college education online. It seems we are overcoming some of the stigma attached to online learning. However, dropout rates for online students are still high. I teach for 6 online universities and have done so for many years. Although I teach bachelor through doctoral level students, I really enjoy the newbies to online learning. I think people need to realize that online is the present and the future of learning. It is too bad that more help isn't available to first-time students. I have found many newbies who have very limited skills.

  • Wed, 09 Dec 2009
    Post by Tracy Greenwood

    When I talk to people about online education, I remember the line from The Graduate. "I want to say one word to you. Just one word. Plastics." Now I want to say one word. Just one word. Online.

    I think when Harvard and other prestigious schools threw their hat in to the ring, the credibility of online programs moved up immensely.

    You are correct about online educators being social creatures. I love getting calls from my students and doing live office hours online.

  • Tue, 08 Dec 2009
    Post by Kathy Howe aka SedonaKathy

    You excite me! Am reviewing an online real estate course contract from one of the on-line companies I write continuing ed classes for... and I am going to take my CDEI from ARELLO over the holidays. I'm also a grad of Northern Arizona University in Flagstaff and a past Foundation Board President. NAU is steeped in online learning...

    As President-Elect of the Real Estate Educators Association, online learning is one of our priorities. We are working with ARELLO and others to make the learning experience one that the learner passes on to others.

    Thanks for the post. I'm in search of information and education... where are the educators of tomorrow?? Thanks for pointing me in a positive direction.