-----"

Computer Science Education Links

-----"

What follows is a collection of links to materials that support the teaching of Computer Science courses, and to other education-related resources. This collection is a result of the efforts of many educators who contributed materials and suggestions.

Topics currently covered in this collection include:

Algorithms and Algorithm Animation (Four entries.)

Architecture (One entry.)

Artificial Intelligence (Three entries, 1 new since Oct. 1996.)

General Interest (Twelve entries, 2 new since Oct. 1996.)

Graphics, Human-Computer Interaction, & Multimedia (Five entries.)

Introductory Sequence: CS1-CS2 (Eight entries.)

Language References (Four entries.)

Operating Systems, Parallel Computing, and Networks (10 entries, 1 new.)

Principles of Programming Languages and Compiler Construction (Six entries.)

Software Engineering (Five entries.)

Theoretical Foundations: Computation, Automata, and Formal Languages (Two entries.)

-----"
Please send comments, suggestions, and contributions to Renée McCauley, Computer Science Department, University of Southwestern Louisiana.

Last modified: November 4, 1996.

-----"
Algorithms and Algorithm Animation

Algorithms Course Materials on the Net: This site provides pointers to algorithms materials, such as lecture notes, problem sets, and exams, for courses taught at a variety of institutions. These materials cover all levels of courses within undergraduate curricula as well as advanced and specialized graduate level courses. Maintained by Kirk Pruhs, University of Pittsburgh.

Syllabi and materials for courses in Algorithm Analysis taught at various institutions. Maintained by Giorgio Ingargiola, Temple University.

Visualization and Algorithm Animation Tools: Information on POLKA, SAMBA, and XTANGO and how they may be used to create animated, graphical views of algorithms that can be used to teach and learn about algorithms. Maintained by John Stasko, Georgia Tech Unversity.

-----"
Architecture

Syllabi and materials for courses in computer architecture taught at various institutions. Maintained by Giorgio Ingargiola, Temple University.

-----"
Artificial Intelligence

AI Education Repository: A resource for teachers of the introductory AI course.

Genetic Algorithms - Course materials. Maintained by James Foster, University of Idaho.

Syllabi and materials for courses in Artificial Intelligence taught at various institutions. Maintained by Giorgio Ingargiola, Temple University.

-----"
General Interest

ACM Graduate Assistantship Directory in Computing - Academic Year 1996-1997. Electronic Version of this annual publication of the Association for Computing Machinery.

Citations Standards for Electronic Sources: MLA-style citations for ftp, www, listserv, telnet, and other electronic sources. Maintained by Janice R. Walker, University of South Florida.

Computing Culture: Pointers to artifacts of the computing culture including nonacademic literature such as best-selling books, movies, electronic lists and even jokes. Maintained by Danielle R. Bernstein, Kean College of New Jersey.

Computer Science Links: Pointers to many resources of interest to Computer Science students and professionals including archives and bibliographies, tutorials and references, professional organizations, and more. Maintained by James Emert, East Stroudsburg University.

CSAC/CSAB Information: The web site of the Computing Sciences Accreditation Board and its Computer Science Accreditation Commission. Includes information on criteria for accrediting programs and a list of accredited programs.

Documentation Standards: Information on and pointers to documentation standards used at the University of Southwestern Louisiana and elsewhere to teach software engineering principles in programming-intensive CS courses.

Graduate Programs: Pointers to departments offering graduate degrees in Computer Science in the U.S.. Maintained by the Department of Mathematics, Stonehill College.

NSF Computer Science Courseware Repository: Electronic dissemination of results from NSF-funded educational computer science program and projects.

Peer Learning in the CS Curriculum: Some results of the NSF Faculty Enhancement Workshop on the Application of Peer Learning to the Introductory Curriculum. It includes pointers to materials on cooperative projects and tasks, and evaluation and assessment of these tasks. Maintained by principal investigator, Craig Wills, Worcester Polytechnic Institute.

Spider: A turtle graphics system used for instructional purposes.

The SIGCSE Bulletin web page provides general information on the bulletin as well as abstracts of articles published. Maintained by Barry Burd.

Survey of CS Departments Offering CSAC-Accredited Degree Programs. The survey provides information on faculty, students and curricula. This web page provides the results of the 1995 survey and information on the 1996 survey.

-----"
Graphics, Human-Computer Interaction, & Multimedia

Multimedia Courses : A collection of syllabi and other course materials for multimedia courses taught at The George Washington University.

New Directions in Human-Computer Interaction Education, Research, and Practice: Report on the NSF-sponsored project. Maintained by Gary Strong, Drexel University.

Resources for HCI Education: A collection of resources related to HCI education. Maintained by Gary Perlman, Ohio State University.

SIGGRAPH Educational Committee Homepage: A collection of links to computer graphics education-related information.

Syllabi and materials for courses in Graphics, HCI, and User-Interface Design taught at various institutions. Maintained by Giorgio Ingargiola, Temple University.

-----"
Introductory Sequence: CS1-CS2

CS2 Texts that use C++: A list of data structures texts appropriate for the CS course taught using C++. Maintained by A. Michael Berman, Rowan College of New Jersey.

Concurrent Programming: An introduction to concurrent programming at the CS2 level. Maintained by Mike Feldman, The George Washington University.

Lab Materials and Courseware for CS1 & CS2: SUNY Geneseo's collection that supports an approach that balances experimental science and mathematical theory with algorithm design and programming.

Object-Oriented Programming and C++ at the introductory level. Includes modules for teaching labs on object-oriented programming, simplified class definitions for use with the standard template class for C++, and other useful tools for teaching C++. Maintained by Chris Nevison, Colgate University.

Resources for Apprenticeship Learning: Pointers to information, tools, and projects for CS1/CS2 courses using the Applied Apprenticeship Approach. Maintained by Owen L. Astrachan, Duke University.

Syllabi and materials for introductory computer science courses taught at various institutions. Maintained by Giorgio Ingargiola, Temple University.

Using C++ in CS1 & CS2: Course syllabi, tools, projects, and readings for introductory CS courses taught at Northeastern University. Maintained by Richard Rasala, Viera Proulx, and Harriet Fell.

Using Java in CS1 & CS2: SUNY Oswego's page relating experiences using Java as the primary language in the curriculum. Maintained by David Bozak.

-----"
Language References

Ada Resources for Educators: A SIGAda World Wide Web site dedicated to the needs of educators and students interested in the Ada programming language and its associated tools, libraries, books, suppliers, and so on. Maintained by Mike Feldman, Yinpgo Hsiao, and Sherri Braxton, George Washington University.

Language Resources: Links to language information and manuals for Scheme, Lisp, Modula-3, Perl, and more.

Scheme in the Curriculum: A resource for those interested in using Scheme for educational purposes. Maintained by Shriram Krishnamurthi, Rice University.

The Internet Scheme Repository: A fairly comprehensive set of resources related to the Scheme programming language. Maintained by John Zuckerman at Indiana University.

-----"
Operating Systems, Parallel Computing, and Networks

A Networks Course: Course outline, readings, and assignments from a networks course taught at Clark University by Mike Ciaraldi.

A Web-Based Introduction to Computer Networks for Non-Majors: A series of Java applets and accompanying notes illustrating some of the ideas in Computer Network design. Maintained by Mark A. Holliday, Western Carolina University.

Concurrent Programming Using Java: A collection of Java example programs relevant to teaching operating systems and concurrent programming. Maintained by Steve Hartley, Drexel University.

Concurrent Programming Using SR: This material is about using the SR concurrent programming language in operating systems classes to give students hands-on programming experience with semaphores, race conditions, message passing, monitors, and the rendezvous. Maintained by Steve Hartley, Drexel University.

cnet is a networking simulator which enables experimentation with various data-link layer, network layer, routing and transport layer networking protocols. Developed specifically for undergraduate computer networking courses, cnet was presented in workshops at SIGCSE'94,95,96. Maintained by Chris McDonald, The University of Western Australia.

Java in Operating Systems Courses: A list of resources for using the Java programming language in courses on operating systems principles. Maintained by Max Hailperin, Gustavus Adolphus College.

Nachos: Instructional software for teaching operating systems. This site includes information, code, assignments and much more. Maintained by Tom Anderson, University of California, Berkeley.

Parallel Computing: Information on teaching parallel computing at the undergraduate level, including results of some NSF-sponsored projects at Colgate University and pointers to other sources of information on this topic. Maintained by Chris Nevison.

Syllabi and materials for courses in Operating Systems taught at various institutions. Maintained by Giorgio Ingargiola, Temple University.

The Portable Dining Philosphers: A course-related project in concurrent programming. Maintained by Mike Feldman, The George Washington University.

-----"
Principles of Programming Languages & Compiler Construction

The Teaching About Programming Languages Project: This page provides pointers to information on teaching concepts of programming languages, including information on texts, pointers to course information and lecture notes for courses taught at a variety of institutions, and materials created by many instructors. This information is maintained by Gary T. Leavens.

Lex: A Lexical Analyzer Generator. Documentation by M.E. Lesk and E. Schmidt.

Using flex: Do cumentation for flex - a Fast Lexical Analyzer Generator, by Vern Paxson.

Yacc: Yet Another Compile r Compiler. Documentation by Stephen C. Johnson.

Bison: GNU's yacc product. Documentation by Charles Donnelly & Richard Stallman.

Syllabi and materials for courses in Principles of Programming Languages taught at various institutions. Maintained by Giorgio Ingargiola, Temple University.

-----"
Software Engineering

General Resources: Pointers to a variety of electronic software engineering resources.

Software Development Resources: A collection of information and links to resources related to software development methods. Maintained by Richard Botting, California State University, San Bernardino.

Software Engineering Education: A site concerned with software engineering education issues. It provides information on university and other courses in Australia, and some limited information on international and general offerings. It also provides information for those interested in developing, discussing and delivering software engineering education. Maintained by Jennifer Harvey, Flinders University of South Australia.

Syllabi and materials for courses in Software Engineering and Object-Oriented Design taught at various institutions. Maintained by Giorgio Ingargiola, Temple University.

The Software Engineering Institute: Resources of the SEI available through their web site.

-----"
Theoretical Foundations: Computation, Automata, and Formal Languages

Syllabi and materials for courses in computer theory taught at various institutions. Maintained by Giorgio Ingargiola, Temple University.

Visual and Interactive Tools for teaching automata theory and formal languages. Maintained by Susan Rodger, Duke University.

-----"

Acknowledgments

Please send comments, suggestions, and contributions to Renée McCauley, Computer Science Department, University of Southwestern Louisiana.