CS Resources
Listed below are a set of resources to support CS teaching. This is
not meant to be a comprehensive list, but instead a list of innovative
resources that CS students, faculty and instructors might find useful.
Discrete Mathematics
Introductory Programming
Data Structures and Algorithms
Operating Systems, Concurrency
- JS/UIX - A UN*X-like OS for
standard web-browsers, written entirely in JavaScript (no plug-ins used).
It comprises a virtual machine, shell, virtual file-system,
process-management, and brings its own terminal with screen- and
keyboard-mapping.
- Simulators for Teaching
Computer Science - Java-implemented simulators
to illustrate processor scheduling, producer consumer synchronization,
starving philosophers, fork-pipe, disk head scheduling, address translation
and concurrent I/O
- Nachos -
An educational operating system simulator.
- Xinu
A small preemptive multi-threaded operating system for teaching advanced
programming concepts such as Concurrent Processing, I/O, IPC and
Client-Server Interaction.
- Resources
to support teaching of concurrent programming.
Distributed Systems
Automata and Formal Languages
Web Security
- WebGoat - A
deliberately insecure J2EE web application maintained by OWASP designed to
teach web application security lessons. In each lesson, users must
demonstrate their understanding of a security issue by exploiting a real
vulnerability in the WebGoat application. For example, in one of the
lessons the user must use SQL injection to steal fake credit card numbers.
The application is a realistic teaching environment, providing users with
hints and code to further explain the lesson.
- Internet Devices and Services
Computer Graphics