PLEASE NOTE: This page has been relocated to a new site at the College of Charleston as of October 13, 2000. This copy is no longer being maintained.
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:
Please send comments, suggestions, and contributions to Renée McCauley, Computer Science Department, University of Louisiana at Lafayette.
Last modified: February 12, 2000.
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.Jeliot: a Web based animation tool for Java algorithms.
Syllabi and materials for courses in Algorithm Analysis taught at various institutions. Maintained by Giorgio Ingargiola, Temple University.
The Complete Collection of Algorithm Animations contains links to algorithm animations that aid the learning and understanding of algorithms. Maintained by Peter Brummund, Hope College Summer Research Program.
The JAWAA Homepage - a Java and Web based Algorithm Animation tool that provides an easy to use, architecture independent method for animating computer programs. Maintained by Susan Rodger, Duke 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 University.
See also, the entries under the Theoretical Foundations and Introductory Sequence categories.
Gem:
an assembly and machine language emulator for use in computer organization courses.
Available in Windows and Mac versions. Maintained by Greg Scragg, SUNY Geneseo
Syllabi and materials for courses in computer architecture taught at various institutions. Maintained by Giorgio Ingargiola, Temple University.
AI Education Repository
: A comprehensive resource for teachers of the introductory AI course.Artificial Intelligence - Syllabus and course materials for a course taught at the University of Michigan - Dearborn. Maintained by Bruce Maxim.
Genetic Algorithms - Course materials. Maintained by James Foster, University of Idaho.
Introduction to Artificial Intelligence: Course syllabus and other materials. Maintained by William J. Rapaport, SUNY at Buffalo.
Introduction to Cognitive Science: Course syllabus and other materials. Maintained by William J. Rapaport, SUNY at Buffalo.
Robot Laboratory for Teaching Artificial Intelligence A resource kit including information and materials that can be used to augment an existing laboratory with robot building facilities. Maintained by Deepak Kumar, Bryn Mawr College, and Lisa Meeden, Swarthmore College.
Syllabi and materials for courses in Artificial Intelligence taught at various institutions. Maintained by Giorgio Ingargiola, Temple University.
Graduate Courses in Database
Management Systems: Syllabi, homework, and presentations for three graduate level
courses taught by Mary Ann Robbert at Bentley College.
Computer Ethics and Professionalism:
This resource contains materials useful for classes dealing with Computer Ethics and
Professionalism. Maintained by Laurie Werth,
University of Texas at Austin.
Accreditation of Undergraduate Programs
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.
Programs Accredited by CSAC/CSAB : This site provides hyperlinks to WebPages for departments offering accredited degree programs. Maintained by Pete Sanderson, Southwest Missouri State University.
Survey of CS Departments Offering CSAC-Accredited Degree Programs. The annual survey provides information on faculty, students and curricula. Three years of collected data available.
(back to General Interest index)
Computer Science Discipline Network (CSDN) exists to promote and disseminate good practice in the teaching and learning of Computer Science. Maintained by Sally Fincher, University of Kent, Canterbury.
Citations Standards for Electronic Sources: MLA-style citations for ftp, www, list servers, telnet, and other electronic sources. Maintained by Janice R. Walker, University of South Florida.
Computer Science Education Resources: This site provides pointers to professional organization, journals, instructional materials and more. Maintained by Lewis Barnett, University of Richmond.
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.
Fostering the 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 University.
Global Informing Science Web Site: This site supports education and training for the informing sciences. It provides resources and help in establishing cross-cultural collaborative research links for those interested in IS education. Maintained by Eli Cohen.
Nan's Computer Science Education Page contains many links to materials related to computer science education. Maintained by Nan Schaller, Rochester Institute of Technology.
Stanford CS Education Library: A functioning prototype electronic library which is gradually collecting Computer Science Education materials from sources available on campus. A project of the Stanford Computer Science department. Maintained by Nick Parlante.
(back to General Interest index)
Graduate Programs
ACM Graduate Assistantship Directory in Computing - Academic Year 1996-1997. Electronic Version of this annual publication of the Association for Computing Machinery.
Graduate Programs: Pointers to departments offering graduate degrees in Computer Science in the U.S.. Maintained by the Department of Mathematics, Stonehill College.
(back to General Interest index)
Pedagogic Resources
Active and Group Learning - This web site includes a bibliography, links to related sites, and an automated archive of classroom activities that people can add to and make comments about. Maintained by Jeffrey McConnell, Canisius College.
Documentation Standards: Information on and pointers to documentation standards used at the University of Louisiana at Lafayette and elsewhere to teach software engineering principles in programming-intensive CS courses.
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 Pedagogical Patterns Project: A growing collection of good teaching practice in object technology presented as patterns.
(back to General Interest index)
Professional Organizations
Association for Computing Machinery - The web site of the world's oldest and largest educational and scientific computing society.
Upsilon Pi Epsilon - The international honor society for the computing sciences.
IEEE Computer Society - A leading provider of technical information and services to the world's computing professionals.
SIGCSE Web Site - The web site of the ACM Special Interest Group on Computer Science Education. The SIGCSE Bulletin web page provides general information on the bulletin as well as abstracts of articles published.
The Consortium for Computing in Small Colleges (CCSC) - a non-profit organization focussed on promoting quality computer-oriented curricula and effective use of computing in smaller institutions of higher learning.
Research in Computer Science Education
Computer Science Education as an Academic Field: This site is designed to support and encourage the view of Computer Science Education as an academic field. Maintained by Vicki Almstrum, University of Texas at Austin.
Computer Science Education Research at GW: This site contains content and links related to research in computer science education done in the Department of Computer Science, The George Washington University, Washington, DC 20052. It also contains pointers to other sites which have a similar focus.
(back to General Interest index) or (back to main index)
Graphics, Human-Computer Interaction, Multimedia, & Geometric Computing
Curve and Surface Design Tools and related course materials for teaching an introductory course in Geometric Computing. Maintained by Ching-Kuang Shene, Michigan Technological University.
A First Course in GUI Programming: Course syllabus, readings, and assignments for a first course in the design and implementation of interactive programs for Microsoft Windows. Maintained by Jesse M. Heines, University of Massachusetts, Lowell.
A Second Course in GUI Programming: Course syllabus, readings, and assignments for a second course in the design and implementation of graphical user interfaces for windowing environments. The course builds on the material studied in A First Course in GUI Programming by expanding into the more advanced topics that deal with interactions between a program and the operating system and interactions between programs themselves. Maintained by Jesse M. Heines, University of Massachusetts, Lowell.
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.
User-Interface Design and Analysis - Syllabus and course materials for a course taught at the University of Michigan - Dearborn. Maintained by Bruce Maxim.
An Ada-Based CS1 Course
: Course materials and other resources. Maintained by Mike Feldman, The George Washington University.An Ada-Based Data Structures Course: Course materials and other resources. Maintained by Mike Feldman, The George Washington University.
An Introductory Programming Course that Uses C++: Course syllabus, readings, and assignments. Maintained by Jesse M. Heines, University of Massachusetts, Lowell.
BlackBox: A New Object-Oriented Framework for CS1/CS2: This framework is a cross-platform, object-oriented development system that is available free to students and professors from the internet. This framework is in use at Pepperdine University.
C++: An introductory programming course. Resources include sample exams, projects specifications and lab worksheet links. Maintained by Dennis Higgins, State College at Oneonta.
Computer Science Fundamentals: A breadth-first course with topics from algorithms, machine and assembly language programming, architecture, data representation, data structures, logic and Boolean algebra,operating systems, communications, and computational theory (automata theory, NP problems). Maintained by Dennis Higgins, State College at Oneonta.
Computing: An Object-Oriented Approach: A radically innovative and practical computing course from the Open University.
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.
Data Structure Animations: A collection of highly interactive animations of algorithms for data structures commonly taught in CS 2, including binary trees, graphs and sorting. Maintained by Duane Jarc, The George Washington University.
Java Resources: Includes source listings, running applets, and applications screen-shots, designed to be used in a 100-level Java programming course. Maintained by Dennis Higgins, State College at Oneonta.
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.
Innovations in Introductory Computer Programming: A project to develop a curriculum for the first course in computer programming based around the idea of computation as interaction. Maintained by Lynn Andrea Stein, Massachusetts Institute of Technology.
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.
See also, the entries under the Intermediate-Level Software Development Courses categories.
Data Structures and Algorithm Analysis
: Syllabus and course information for a course taught at the University of Michigan - Dearborn. Maintained by Bruce Maxim.Introduction to Software Engineering: A sophomore level course that includes user interface design, object-oriented design, software tools, and basic software engineering concepts. Maintained by Steve Reiss, Brown University.
Object-oriented Programming: This course presents object-oriented programming through the C++ programming language. It explores features of C++ that make it the language of choice for object-oriented systems programming and looks at examples of object-oriented program design in order to understand how such design is different from other programming design techniques. Maintained by Jesse M. Heines, University of Massachusetts, Lowell.
Software Design and Implementation: An object-oriented programming and design course with a software engineering focus. Maintained by Owen Astrachan, Duke University.
Software Design Using C++: Material for two computer science courses: a CS 2 course and a data structures course, both using C++ as the programming language. Some introductory material is also provided. Maintained by Br. David Carlson, St. Vincent College.
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.Blue - A programming language and integrated development environment developed for teaching object-oriented concepts for first year students. Maintained by Michael Kölling and John Rosenberg, University of Sydney.
Fortran 90 - a tutorial. Maintained by Ching-Kuang Shene, Michigan Technological University.
LISP: This paper discusses using input/output patterns to teach LISP. (In postscript form, to be downloaded.) Maintained by Amruth Kumar, Ramapo College of New Jersey.
ArgoUML: The Cognitive CASE Tool. An open
source tool for object-oriented design that supports Unified Modeling Language (UML)
specifications.
Scheme in the Curriculum: A resource for those interested in using Scheme for educational purposes. Maintained by Shriram Krishnamurthi, Rice University.
The cucs Package for Java - is intended to make it easier to learn how to program in Java by eliminating the need to learn many of details inherent in the standard Java libraries. Provides classes to do basic stream input by reading integers, reals, and sequences of nonblank characters in addition to character- and line-oriented input. Maintained by Joe Turner, Clemson University.
The Internet Scheme Repository: A fairly comprehensive set of resources related to the Scheme programming language. Maintained by John Zuckerman at Indiana University.
A Networks Course
: Course outline, readings, and assignments from a networks course taught at Clark University by Mike Ciaraldi.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.
Introduction to Operating Systems: This course introduces and develops the major components of operating systems, including the process and thread abstractions, concurrency and synchronization mechanisms, deadlock management strategies, processor allocation, memory management, I/O device and file management, and distributed processing. Maintained by Jesse M. Heines, University of Massachusetts, Lowell.
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.
Multithreaded Programming in an Introduction to Operating Systems class. Includes syllabus, programming and project assignments, quizzes and exams with solutions. Maintained by Ching-Kuang Shene, Michigan Technological University.
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 Philosophers: A course-related project in concurrent programming. Maintained by Mike Feldman, The George Washington University.
Bison
: GNU's yacc product. Documentation by Charles Donnelly & Richard Stallman.Lex: A Lexical Analyzer Generator. Documentation by M.E. Lesk and E. Schmidt.
Programming Languages: Syllabus and course description for a course taught at the University of Michigan - Dearborn. Maintained by Bruce Maxim.
Syllabi and materials for courses in Principles of Programming Languages taught at various institutions. Maintained by Giorgio Ingargiola, Temple University.
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.
Using flex: Documentation for flex - a Fast Lexical Analyzer Generator, by Vern Paxson.
Yacc: Yet Another Compile r Compiler. Documentation by Stephen C. Johnson.
See also the simulation tools under Theoretical Foundations that are applicable in programming languages and compiler courses (such as finite automata and pushdown automata).
Computing Concepts and Competencies
: A multi-track, non-majors course at Michigan State University. This course is based on the principles of student-centered learning and peer teaching.Introduction to Computer Science: This course provides an overview of the field of computer science from the concrete -- what computers are made of and how they work -- to the abstract -- the theoretical limits on what computers can and cannot do. Maintained by Alyce Brady, Kalamazoo College.
Survey of Computer Science provides a comprehensive survey of computer science topics including: history of computation, human-computer interaction, computing hardware design, hypertext scripting, internet resources, social impact of computing and computing theory. This course is offered at the University of Michigan - Dearborn.
Survey of Computers and Computing - syllabus, labs and more for a course that surveys the broad field of computers and their utilization in a variety of applications. Maintained by Br. David Carlson, Saint Vincent College.
Introduction to Software Engineering
: Syllabus and course materials for a course taught at the University of Michigan - Dearborn. Maintained by Bruce Maxim.Object-Oriented Software Engineering: A two-course, graduate sequence focusing on legacy team projects and OO CASE tool use and enhancement. Maintained by Bob Lechner, University of Massachusetts - Lowell.
Software Design Seminar - Syllabus and course materials for a course taught at the University of Michigan - Dearborn. Maintained by Bruce Maxim.
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.
Software Project Management and Metrics - syllabi, course materials and references for two graduate level courses at Drexel University's College of Information Science and Technology. Maintained by Glenn Booker.
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.
Syllabi and materials for courses in computer theory taught at various institutions. Maintained by Giorgio Ingargiola, Temple University.
The Java Computability Toolkit: A Java-based tool for reasoning about models of computation through simulating finite automata and Turing machines. Developed at State University of New York, Institute of Technology.
Turing Machine, Push-down Automaton and Finite State Machine Simulation programs. There is a graphical view for the students to develop their FSM/TM machines, as well as a text view for teachers grading student's machines. Sample machines from Hopcroft and Ullman are supplied with the program. Maintained by Eileen Head, Binghamton University.
Visual and Interactive Tools for teaching automata theory and formal languages. Maintained by Susan Rodger, Duke University.
Web Programming
- Course materials that approach the web as an object-oriented client server environment. These materials use JavaScript and Java for client side resources, and Perl for server side resources. Maintained by Jack Beidler, University of Scranton.
Please send comments, suggestions, and
contributions to Renée McCauley, Computer Science Department, University of Louisiana
at Lafayette.
visitors since January 06, 2000 (counter provided by FastCounter by bcentral )