##############################################################
5
University of Pennsylvania
Programming Languages and Techniques II
CSE 121/131
http://www.seas.upenn.edu:8080/~cse121/home.html
Java
3
?
Goodrich and Tamassia
Data Structures and Algorithms in Java
Savitch
Java: An Introduction to Computer Science and Programming
Arnold and Gosling
The Java Programming Language
none
6
priority queue
Students must complete the code for removeMinElement from a binary heap.
http://www.seas.upenn.edu:8080/~cse121/homework/hw6/hw6/hw6.pdf
Introduction to fundamental concepts of computer science. Principles of programming languages: abstraction, types, polymorphism, encapsulation, and inheritance. Basic algorithmic techniques and informal complexity analysis. Substantial programming assignments in two high-level programming languages, ML and Java (see also CSE 130).
Saw no mention of ML on the course page, also no syllabus.
##############################################################
13
Brown
Introduction to Algorithms and Data Structures
CS16
http://www.cs.brown.edu/courses/cs016/
Java
3
http://www.cs.brown.edu/courses/cs016/info/syllabus.shtml
Goodrich and Tamassia
Data Structures and Algorithms in Java
?
5
?
?
?
Introduces fundamental techniques for problem solving by computer that are relevant to most areas of computer science, both theoretical and applied. Algorithms and data structures for sorting, searching, graph problems, and geometric problems are covered. Programming assignments conform with the object-oriented methodology introduced in CS 15. Computer graphics animations are used to visualize algorithms and their performance.
The most overly-secured course website I have ever seen. Finding information is like pulling teeth.
##############################################################
22
Carnegie Mellon
Object-Based Programming III
15-113
http://www.cs.cmu.edu/~adamchik/15-113/index.html
C++
3
http://www.cs.cmu.edu/~adamchik/15-113/syllabus.html
Weiss
Data Structures and Problem Solving Using C++
A Linked Implementation of a Priority Queue
3
priority queue, sorting, linked list
Implementing a priority queue of integers with a sorted linked list
http://www.cs.cmu.edu/~adamchik/15-113/labs/lab03.html
This course assumes a significant amount of prior programming experience in C++ and deals with using and implementing software components in the construction of programs. Topics to be covered include classes and advanced object-based programming techniques, dynamically allocated data structures (including linked lists, stacks, queues, trees, heaps, and graphs), simple analysis of the algorithms that operate on those data structures, and templates (the STL).
Semester starts late so middle program occusrs in November.
##############################################################
30
Brandeis
Data Structures and the Fundamentals of Computing
CS21a/22a
http://www.cs.brandeis.edu/~cs21a/
Java, C
3
?
Shaffer
A Practical Introduction to Data Structures and Algorithm Analysis (Java Edition)
none
5
heap, priority queue, binary search tree, linked list
Implement ADT Priority Queue as a Heap. Implement ADT Binary Search Tree using linked nodes.
http://www.cs.brandeis.edu/~cs21a/assignments.html
An introduction to the fundamental concepts of computation: discrete structures (sets, relations, functions, sequences, graphs), the fundamental data structures and algorithms for sorting and searching (lists, queues, dequeues, heaps, hashing, binary trees, tries), and the analysis of algorithms (predicate logic, termination and correctness proofs, computational complexity).
##############################################################
38
Case Western Reserve
Intro to Data Structures (with Professor Lee White)
EECS233
http://www.eecs.cwru.edu/courses/eces233/
C++
3
http://www.eecs.cwru.edu/courses/eces233/syllabus.html
Main and Savitch
Data Structures and Other Objects Using C++
none
3
infix, postfix, prefix, file input
write a calculator that solves a prefix problem and can translate to infix and postfix
http://www.eecs.cwru.edu/courses/eces233/prog3.htm
The programming language C++; pointers, files, variant records, and recursion. Representation and manipulation of data: one-way and circular linked lists, doubly linked lists; the available space list. Different representations of stacks and queues. Representation of binary trees, trees and graphs. Hashing; searching and sorting. Laboratory. The course begins with a discussion of pointers and dynamic structures, as most students have had little or no experience with these data structures or their implementation in C++ from an earlier programming course. A number of other data structure topics from C++ are discussed both conceptually and in terms of their implementation in C++, including: abstract data types, classes, containers, templates, recursion, inheritance and derived classes. Students are asked to write programs utilizing these concepts. Another theme of the course is the utilization of the proper data structure and algorithm for greatest efficiency, usually measured by running time of the program. This is emphasized in class, on homework assignments, in programming assignments and on examinations.
This course is pretty much CS1 and CS2 rolled together.
##############################################################
46
Washington
Data Structures
CSE 326
http://www.cs.washington.edu/education/courses/326/00au/
C++
3
http://www.cs.washington.edu/education/courses/326/00au/lectures/index.htm
Weiss
Data Structures and Algorithm Analysis in C++
none
3
graphs
explore graphs through the context of a text-based virtual world, using breadth-first searching
http://www.cs.washington.edu/education/courses/326/00au/homework/homework3.txtl
Data types, abstract data types, and data structures. Efficiency of algorithms. Sequential and linked implementation of lists. Binary tree representations and traversals. Searching: dictionaries, priority queues, hashing. Directed graphs, depth-first algorithms. Garbage collection. Dynamic storage allocation. Internal and external sorting
There is a choice between CSE 143 and 326 for the CS2 course. I believe that 326 is a closer match though it closely resembles our own CPS130 in many respects.
##############################################################
51
Boston University
Introduction to CS II
CS112
http://cs-people.bu.edu/metcalf/cs112/
C++, C
3
http://cs-people.bu.edu/metcalf/cs112/syllabus.html
Main and Savitch
Data Structures and Other Objects Using C++
Standish
Data Structures, Algorithms and Software Principles in C
none
4
GCD, recursion, queue
Implement Euclid's Algorithm for computing GCD. Write a recursive queue reversal program
http://cs-people.bu.edu/metcalf/cs112/hw4.html
This course teaches programming style and advanced methods, using the C++ programming language. We will learn software engineering techniques that allow us to design, implement and analyze algorithms in a clear and modular manner. We survey advanced data structures and the algorithms which support them.
##############################################################
51
Fordham
Data Structures
CSRU 2200
http://www.cis.fordham.edu/rh_descrip.html
?
2.5
?
?
?
?
?
?
?
?
A survey and analysis of the major types of structure in programs that handle data. Arrays, stacks, queues, linked lists, trees, and graphs; recursive, iterative, search and sort techniques. Methods of organizing and manipulating files will be referenced.
The link to the teacher's homepage was broken and everything else I tried was a dead end.
##############################################################
7
Haverford
Introduction to Data Structures
206
http://triluminary.cs.haverford.edu/courses/CMSC206.html
C++
3
http://triluminary.cs.haverford.edu/courses/CMSC206/Syllabus.html
Sedgewick
Algorithms in C++
Linked List Memory Management
6
linked list, vector, memory, shared data, big O notation
Create a class "list_big" class using the technique of representing all lists with
a shared vector of value/next pairs (each list then indicates it's own starting position in this
vector). This class, like the one from Lab 5, only needs to provide lists of integers. Also include a
"remove" operation that removes the ith element of a list. You will need to include a "copy
constructor" and assignment operation, and you should provide a test program to show that lists
do not share data. Give the O() approximation for the worst-case asymptotic time
complexity of each operation.
http://triluminary.cs.haverford.edu/courses/CMSC206/lab6.html
An introduction to the fundamental data structures of computer science: strings, lists, trees,
graphs, sets and their accompanying algorithms. Principles of algorithmic analysis and design will
be introduced using mathematical techniques for the notions of both complexity and correctness.
Some practical issues, such as memory management and hashing, will also be covered. The
programming language used to illustrate and implement these concepts will be C++, and
emphasis will be placed on the use of recursion.
Second course for majors. Related to CMSC206 at Bryn Mawr.
##############################################################
15
Bryn Mawr
Data Structures
206
http://mainline.brynmawr.edu/~rmercuri/CS206syl.html
C++
3
http://mainline.brynmawr.edu/~rmercuri/CS206syl.html
Budd
Data Structures in C++ using the Standard Template Library
Linked List (Fall 99)
4
linked list
Implement the basic List operations to use the Linked representation as
discussed in class.
http://mainline.brynmawr.edu/Courses/cs206/fall99/#Assignments
Introduction to the fundamentals of structuring and manipulating data: sorting, searching, recursion, lists, stacks, queues, trees, graphs, tables. Introduction to the analysis of algorithms. Advancement in C++ skills and techniques.
Second course for majors. Could only find vague information on assignments (Fall 1999).
##############################################################
15
Trinity
Program and Design and Structured Problem Solving
2
http://www.cs.tcd.ie/courses/bsccs/sfbsc.html#CS2
C++, Java
3
http://www.cs.tcd.ie/courses/bsccs/sfbsc.html#CS2
?
?
Christmas project: Snowflake generation
?
?
Generate snowflake graphics by rotation
http://www.cs.tcd.ie/Fergal.Shevlin/courses/cs2/C++/ch-proj99.pdf
Second course for majors. (Not much information online).
##############################################################
31
Kenyon
Data Structures and Program Design
MATH28
http://math.kenyon.edu/~m28s00/
Java
3
http://math.kenyon.edu/~m28s00/syllabus/
Rowe
An Introduction to Data Structures and Algorithms with Java
Checkers (Spring 2000)
1
checkers, applet
Write (or finish writing) an applet which allows two people to play a game of checkers.
http://math.kenyon.edu/~m28s00/projects/project-1/
This course is intended as a second course in programming, as well as an
introduction to the concept of computational complexity and the major abstract data structures
(such as arrays, stacks, queues, link lists, graphs, and trees), their implementation and
application, and the role they play in the design of efficient algorithms. Students will be required
to write several programs using a high-level language.
Second course for majors.
##############################################################
39
DePauw
Computer Science II
122
?
Java
1
?
?
?
?
?
?
?
?
This course builds on CSC 121 and introduces programming topics such as: sets,
recursion and dynamic data types. Data type abstraction and implementation are introduced by
studying structures such as lists, stacks, queues and binary trees. The object-oriented
implementation of these structures is emphasized. Tools for algorithm analysis are introduced
and comparisons of functional, object oriented and imperative programming paradigms are made.
The concept of tradeoffs, i.e., time vs. space, iteration vs. recursion, static vs. dynamic, and
imperative vs. functional, recurs as a theme throughout the course.
Second course for majors. No course website!
##############################################################
47
Dickinson
Introduction To Computing II
132
http://omega.dickinson.edu/~braught/courses/cs132f00/cs132f00.html
Java
1
http://omega.dickinson.edu/~braught/courses/cs132f00/syllabus.html
Pohl and McDowell
Java By Dissection: The Essentials of Java
MineSweeper
?
array, matrix
Write a method static int numAdjMines(int[][] mineBoard, int row, int col)
that will return the number of mines that are adjacent to the cell row, col on the mineBoard. Be
careful not to use negative row or column indices!
http://omega.dickinson.edu/~braught/courses/cs132f00/classes/class17c.html
##############################################################
7
Duke
Program Design and Analysis II
CPS100
http://www.cs.duke.edu/courses/fall00/cps100
C++
3
http://www.cs.duke.edu/education/courses/fall00/cps100/syllabus.html
Astrachan
A Computer Science Tapestry
Sedgewick
Algorithms in C
Tag Validator
3
stack, html, inheritance
validate tags on a web page
http://www.cs.duke.edu/education/courses/fall00/cps100/assign/tags/
A continuation of Computer Science 6. Overview of advanced data structures and analysis of
algorithms, data abstraction and abstract data types, object-oriented programming, proofs of
correctness, complexity, and computability.
Second course for majors
##############################################################
23
Georgetown
Computer Science II
072
http://www.cosc.georgetown.edu/~mahe/072/072.html
C++, Java
2
http://www.cosc.georgetown.edu/~mahe/072/072.html
Deitel and Deitel
C++ How to Program
Deitel and Deitel
Java How to Program
Palindrome
7
stack, queue, inheritance
Write a program to determine if a string is a palindrome.
http://www.cosc.georgetown.edu/~mahe/072/proj7.html
This course continues the development of the program design principle begun in 071. The
objective of the course is to develop a mastery of object-oriented programming using the C++ and
Java languages. Topics covered include inheritance, polymorphism, files, exception handling,
recursion, and elementary data structures including linked lists and trees. Java programming
component will include graphical user interfaces (GUIs), threads, graphics, servlets, RMI,
networking and files. Professor Velauthapillai
Second course for majors
##############################################################
31
University of California San Diego
Basic Data Structures and Object--oriented Programming
CSE 12
http://sunpal.ucsd.edu/~cs12x/
Java, C
3
http://sunpal.ucsd.edu/~cs12x/schedule.txt
Standish
Data Structures in Java
Roberts
Programming Abstractions in C
Stroustrup
The C++ Programming Language
Flanagan
Java in a Nutshell
Preliminary Calculator and array based stack
2
array, stack, calculator, mathematical expressions
Develop a program that will simulate a top-of-the-line calculator that will
perform such advanced commands as addition, subtractions, multiplication, division,
exponentiation, and factorial! Given part of the stack.c file, suggestion to begin the calc.c file,
starting for "driver.c," and main.c
http://sunpal.ucsd.edu/~cs12x/hw2.txt
Basic data structures including: linked lists, stacks, queues, trees, and hash tables. Basic object-
oriented programming including: classes and abstract data types, inheritance, overloading and
overriding methods, pointer arithmetic, recursion.
Second course for majors
##############################################################
39
Lehigh
Structured Programming and Data Structures
17
http://www.lehigh.edu/~ejk0/csc17.html
Pascal, C++
2
http://www.lehigh.edu/~ejk0/syl17pp.pas
Deitel and Deitel
C++ How to Program
Cummings
Turbo Pascal
HanoiTower
6
abstract data structure, ADT, class design
Develop a class HanoiTower which is an ADT for a single tower of hanoi.
http://www.lehigh.edu/~ejk0/c17hw6.pas
Algorithmic design and implementation in high level, block-structured, procedure-oriented
languages. Recursion, lexical programs, pointers, data structures, and their
applications.
Second course for majors
##############################################################
47
Yeshiva
Introduction to Computer Science and Programming II
1336C
http://www.yu.edu/yeshivacollege/syllabuses/lebo1336ccom.html
Java
1
http://www.yu.edu/yeshivacollege/syllabuses/lebo1336ccom.html#Syllabus
Bishop
Java Gently
?
?
?
?
?
Principles of good programming style, expression, and documentation; control flow; invariant
relation of a loop; stepwise refinement of statements and data structures or top-down
programming; string processing; concatenation, substrings, matching; internal searching and
sorting; recursion; linked lists and linear allocation (stacks, queues, deques). Prerequisite: COMP
1315C.
Second course for majors. Could not find assignments online.
##############################################################
1
Swarthmore College
Algorithms and Object-Oriented Programming
CS 35
http://www.cs.swarthmore.edu/~newhall/cs35/cs35.html
Java
3
http://www.cs.swarthmore.edu/~newhall/cs35/cs35.html#schedule
Goodrich and Tamassia
Data Structures and Algorithms in Java
Maze Path Searching
4
stack, queue
Implement two versions of an algorithm for finding a path through a rectangular maze; one version will use a stack, and the other will use a queue to store state information as the search algorithm proceeds.
http://www.cs.swarthmore.edu/~newhall/cs35/hw04/hw04.html
You will be learning data structures and algorithms which are important in the construction of sophisticated computer programs. The underlying themes of the course will be program design, abstraction, analysis, and an introduction to object-oriented programming. Techniques to analyze various algorithms and data structures will be presented.
##############################################################
9
Wesleyan College
Data Structures
COMP 212
http://dkrizanc.web.wesleyan.edu/courses/212/index.html
C++
3
http://dkrizanc.web.wesleyan.edu/courses/212/index.html
Sedgewick
Algorithms in C++
none
2
priority queue, array, ordered, unordered, binary, heap, ternary, time, random
Implement priority queue in the following ways: unordered array, ordered array, binary heap, ternary heap. Time the sorting of N elements by inserting random numbers into the p.queue and extracting them in order with a function ExtractMin()
http://dkrizanc.web.wesleyan.edu/courses/212/prog2/prog2.html
The purpose of this course is to introduce and investigate a variety of important data structures based on the notion of an abstract data type. In particular, the following topics will be discussed: Abstract Data Types, Stacks and Queues, Symbol Tables, Binary Search Trees, Balanced Search Trees, and Hashing.
##############################################################
17
Colgate University
Introduction to Computing II
COSC 102
http://149.43.80.141/CsLabWebPages/CS102_Web_Pages/default.htm
C++
2
http://149.43.80.141/CsLabWebPages/CS102_Web_Pages/default.htm
Carrano, Helman, and Veroff
Data Abstraction and Problem Solving with C++
Implementing Stacks with Linked Lists
6
stack, linked list
Implementing Stacks with Linked Lists
http://149.43.80.141/CsLabWebPages/CS102_Web_Pages/Labs/Lab5/Lab5.htm
The focus of the course is the study of data structures and algorithms. It builds on concepts learned in the first course (COSC 101), and also introduces new concepts and techniques. One goal of the course is to improve upon the programming skills acquired in the introductory course and to learn some new programming constructs. By the end of this course students should feel fairly confident in writing moderately large programs. Some important tools that will be used in order to accomplish this goal are data abstraction and object-oriented programming. These topics will be emphasized throughout the course. In addition, we will study several very useful data structures such as stacks, queues, lists, and trees, and several algorithms for sorting, searching, and accessing data. We will also learn techniques for analyzing and comparing the efficiency of different algorithms.
##############################################################
25
University of the South
Data Structures.
257
?
?
?
?
?
?
?
?
?
?
?
Recursion, data abstraction, algorithm design and analysis, and the implementation of large programs.
Nothing other than a short description was given for this course on the Math/Computer Science website.
##############################################################
33
Whitman College
Data Structures with C++
270
?
C++
2
?
?
?
?
?
?
?
?
We study fundamental methods used to store, access, and manipulate data in computers. Storage structures to be covered include files, lists, tables, graphs, and trees. We will discuss and analyze methods of searching for and sorting data in these structures.
Second course for majors
##############################################################
41
Centre College
Intermediate Structured Programming and Data Structures
CSC 23
?
?
2
?
?
?
?
?
?
?
?
This course continues to emphasize principles of programming and software engineering while providing an increasing breadth of topics in computer science. Nontext files and pointer-type structures are introduced. Data abstraction is emphasized with introduction to lists, queues, stacks, and trees. Recursive data structures and procedures are employed in programming projects. Algorithms are analyzed for a variety of applications. Introduction to space and time complexity.
##############################################################
49
Sarah Lawrence College
Software Engineering
none
?
C++, Java
1
?
?
?
?
?
?
?
?
The goal of this course is to give students a taste of what it is like to design and develop real software. The quotes by Knuth illustrate two themes of this course that are not necessarily at odds: The challenge of writing good software should not offset the pleasure derived from writing it. Some of the main topics we will cover include why developing reliable, non-trivial software is inherently difficult, the importance of abstraction, the separation of design from implementation, and how to write software in teams. No place is the adage "there is no substitute for experience" more relevant than in software engineering. With that in mind, this course is intended to be hands-on. Design and development techniques will be learned primarily through the design and development of a semester-long software project. Permission of the instructor is required. Students should have at least one semester of programming experience, preferably in C, C++, or Java.
This school has VERY few courses in Computer Science. This is the closest thing to CS-2.
##############################################################
1
Harvard
Introduction to Computer Science II
CS 51
http://www.fas.harvard.edu/~lib51/
LISP, C++, Java
3
http://www.fas.harvard.edu/~lib51/Handouts/
?
?
?
?
?
?
?
Abstract models for computational processes and their concrete realizations. Functional, imperative, and object-oriented styles of programming; processor and memory architectures; interpretation and compilation of programming languages. State-space search, finite-state processes, formal logic, data and functional abstraction, and syntactic and semantic formalisms as examples of useful abstractions. The engineering of complex software. Laboratory exercises using LISP, C++, and Java.
Second course for majors
##############################################################
9
Columbia
Data Structures in C
CS 3133
http://www.columbia.edu/~cs3133/
C
3
http://www.columbia.edu/~cs3133/schedule.html
Sedgewick
Algorithms in C
Kernighan and Richie
The C Programming Language
none
7
BST, binary, tree, merge sort
Revising a previous assignment which stored Harry Potter spells in a spell book. Was implemented with link lists, this assignment requires BSTs. Returning entries in sorted order must be implemented.
http://www.columbia.edu/~cs3133/project2.html
Data types and Structures: arrays, stacks, singly and doubly linked lists, queues, trees, sets, and graphs. Programming techniques for processing such structures: sorting and searching, hashing, garbage collection. Storage management. Rudiments of the analysis of algorithms. This course will assume knowledge of Java as taught in W1007 or W3101.
This course is the C-version of the second course for majors, which is taught in Java. The Java course has no web-page.
##############################################################
17
Emory
Introduction to Computer Science
CS 253
http://www.mathcs.emory.edu/~cs253000/
Java
3
http://www.mathcs.emory.edu/~cs253000/lectures/
?
?
Spell Checker
4
hash table
Using a hashtable
to store a dictionary of words--
then checking files for misspelled words.
http://www.mathcs.emory.edu/~cs253000/handouts/hw4.pdf
Basic data structures (stacks, queues, lists, trees, and graphs) and algorithms for their implementation. Internal searching and sorting.
Third course, first in data structures.
##############################################################
25
University of Michigan
Programming and Introductory Data Structures
EECS280
http://www.engin.umich.edu/class/eecs280/06/
C++
2
http://um-captest.ummu.umich.edu/eecs280/lectures/
Savitch
Problem Solving with C++
Encapsulating behavior in a StatisticsVector
4
vector
Implementing a class: Statistics Vector which has member functions which return certain elements of interest or perform common tasks (max, min, average, etc.)
http://www.engin.umich.edu/class/eecs280/06/proj4/
Techniques and algorithm development and effective programming, top-down analysis, structured programming, testing, and program correctness. Program language syntax and static and runtime semantics. Scope, procedure instantiation, recursion, abstract data types, and parameter passing methods. Structured data types, pointers, linked data structures, stacks, queues, arrays, records, and trees.
Second course for majors
##############################################################
41
University of California Irvine
Introduction to Computer Science II
ICS 22
http://www.ics.uci.edu/~klefstad/s/22.html
Java
2
http://www.ics.uci.edu/~klefstad/s/22.html
Weiss
Data Structures and Algorithm Analysis in Java
Weiss
Data Structures and Problem Solving Using Java
none
4
arrays, class, linked list
Using the ArrayList class to store shapes that make up a picture. Implement a zoo using a linked list of animals which exhibit behaviors when you pet them/feed them certain foods.
http://www.ics.uci.edu/~klefstad/s/22/hw/4.html
Second of a three-quarter introductory sequence. Covers abstract behavior of classic data structures (lists, stacks, queues, tables, trees), alternative implementations, and analysis of time and space efficiency, recursion, object-oriented programming, and functional programming.
Second course for majors
##############################################################
49
Rensselaer Polytechnic Institute
Computer Science II
CSCI-1200
http://www.cs.rpi.edu/~kettnv/cs2/
C++
2
http://www.cs.rpi.edu/~kettnv/cs2/lectureNotes.htm
Deitel and Deitel
C++ How to Program
none
8
input, output, operators, streams, template, set, class, overload
Writing input/output operators and working with streams. Writing a templated Set class which holds some private data, has a few overloaded, operators, and has one member function, AddElement.
http://www.cs.rpi.edu/~kettnv/cs2/hwks/hwk8.htm
Programming concepts: functions, parameter passing, pointers, arrays, strings, structs, classes, templates. Mathematical tools: sets, functions, and relations, O-notation, complexity of algorithms, proof by induction. Data structures and their representations: data abstraction and internal representation, sequences, trees, binary search trees, associative structures. Algorithms: searching and sorting, generic algorithms, iterative and recursive algorithms. Methods of testing correctness and measuring performance.
This is the second course for majors, and it covers trees. The third course is called Data Structures and Algorithms and covers more advanced data structures such as balanced trees, tries, heaps, priority queues, and graphs.
##############################################################
4
Pomona College
Principles of Computer Science
CS 60
http://www.cs.hmc.edu/courses/2000/fall/cs60/
Java, rex, Prolog
2
http://www.cs.hmc.edu/courses/2000/fall/cs60/overview.html
Keller
Computer Science: Abstraction to Implementation
Parser
7
tree, recursion, parse
Students write a program to parse a logical statement into a "parse tree," in anticipation of evaluating the statement in a future assignment.
http://www.cs.hmc.edu/courses/2000/fall/cs60/assignments/a7.html
Introduction to principles of computer science. Algorithms, complexity analysis, data structuring, data and procedural abstraction, grammars, correctness, logic principles, processor organization, operating system concepts, programming languages, basic automata theory, and theoretical limitations.
This course, the second for majors, covers some data structures (trees, lists, queues, stacks, etc), while a later data structures course covers more complex topics. Though the data structures in this course are fairly simple, the breadth of the course is impressive, including logic, some hardware discussions, etc.
##############################################################
12
Washington and Lee
Fundamentals of Computer Science III
CSCI 201
http://www.wlu.edu/~lambertk/classes/201/index.html
Java
2
http://www.wlu.edu/~lambertk/classes/201/syllabus.html
Lambert and Osborne
Java: A Framework for Program Design and Data Structures
none
4
linked list, interface, test, implement
Students implement a linked list implementation of a list class and test it.
http://www.wlu.edu/~lambertk/classes/201/projects/hw4.htm
Emphasis is on the use and implementation of common data structures, including algorithm analysis and object-oriented design. Additional topics will be chosen from networking, artificial intelligence, and parallel processing.
This is the third course in the curriculum for majors and routinely covers trees, binary search trees, heaps, etc.
##############################################################
20
Hamilton
Data Structures
CS 111
http://www.cs.hamilton.edu/~bailey/courses/fall00/111/
C++, Java
?
?
?
?
?
?
?
?
?
A second course in object-oriented programming, concentrating on the common information patterns (linear and hierarchical, for example) that arise in many programs, and the implementation of these in structures in ways that are efficient in terms of memory space and running time. In addition to providing a taxonomy of data structures, this course will discuss measures of computational complexity of the algorithms used to manipulate the structures. This course will begin with a further investigation of Java and will introduce the C++ programming language.
This is the second course for majors. Access to the server is apparently forbidden from outside Hamilton.
##############################################################
4
MIT
?
?
?
?
?
?
?
?
?
?
?
?
?
MIT just doesn't seem to have a course that fits the description. Their first programming course, taught in Scheme, (6.001) covers OO-programming in depth, and thus at least touches on data structures, but that is not its focus. Likewise, data abstraction is a topic covered in 6.170, "Laboratory in Software Engineering," but that course focuses on "large software systems," which seems more analogous to our CPS 108. I haven't found any other courses focusing on programming at all. Their course listings for EECS are at http://student.mit.edu/catalog/m6a.html.
##############################################################
12
Northwestern
Data Structures
CPS 311
http://www.cs.northwestern.edu/courses/cs311/
C++
2
http://www.cs.northwestern.edu/courses/cs311/
Budd
Data Structures in C++ using the Standard Template Library
Binary Search Trees
4
binary, search, tree, test
Students must write functions to test sets and search trees for certain conditions.
http://www.cs.northwestern.edu/courses/cs311/assignments/4/
The design, implementation, and analysis of abstract data types, data structures and their algorithms. Topics include: data and procedural abstraction, linked lists, stacks, queues, binary trees, searching, and sorting. Required for computer science majors.
Second course for majors.
##############################################################
20
University of Virginia
Program and Data Representation
CPS 216
http://www.cs.virginia.edu/~cs216/
C++
3
http://www.cs.virginia.edu/~cs216/outline.htm
Weiss
Data Structure and Algorithm Analysis in C++
AVL Trees
6
binary tree avl search
Students examine the difference in performance between AVL Trees and binary trees by using both with the same set of data and test operations.
http://www.cs.virginia.edu/~cs216/labs/lab6/lab6.pdf
Introduces programs and data representation at the machine level. Data structuring techniques and the representation of data structures during program execution. Operations and control structures and their representation during program execution. Representations of numbers, arithmetic operations, arrays, records, recursion, hashing, stacks, queues, trees, graphs, and related concepts.
This is the third course for majors, following an introductory CS course and a programming course. Discrete Mathematics (CS 202) is also a prerequisite.
##############################################################
28
Tufts University
Data Structures
Comp 15
http://www.cs.tufts.edu/g/15/
C
3
http://www.eecs.tufts.edu/g/15/syllabus/syllabus.html
Sahni
Data Structures, Algorithms, and Applications in C++
Linked Lists and Compression
2
linked list compression class
Students use linked lists to implement a class for the purpose of compressing/decompressing files. Function prototypes are provided.
http://www.eecs.tufts.edu/g/15/Rproject2/node2.html
A second course in computer science. Data structures and algorithms are studied through major programming projects in the C programming language. Topics include linked lists, trees, graphs, dynamic storage allocation and recursion.
##############################################################
36
University of Wisconsin, Madison
Intro to Data Structures
CS 367
http://www.cs.wisc.edu/~cs367-1/cs367.html
Java
3
http://www.cs.wisc.edu/~cs367-1/topics.html
?
?
Testing Interfaces and Code
3
test class interface
Students implement TestQueue.java, a class to test the public interface of a class Queue.java for correctness and completeness.
http://www.cs.wisc.edu/~cs367-1/assignments/Prog3/Program3
Study of data structures (including stacks, queues, trees, graphs, and hash tables) and their applications. Development, implementation, and analysis of efficient data structures and algorithms (including sorting and searching). Experience in use of an object-oriented programming language.
##############################################################
44
Tulane
Object-oriented Design and Programming
CPSC 102
http://www.eecs.tulane.edu/Belkhouche/
C++
1
http://www.eecs.tulane.edu/Belkhouche/bb_dir/102admin.html
Deitel and Deitel
C++ How to Program
Nile.com
5, 6
search, class
Students design and implement an online book-store that supports searching for, buying, returning, and holding books.
http://www.eecs.tulane.edu/Belkhouche/bb_dir/asg6f00.html
An introduction to object-oriented analysis, design, and programming. Object-oriented methodology, including processes and notations, is covered. Concepts of classes, objects, inheritance, and polymorphism are discussed. Structural and behavioral modeling is emphasized throughout the course. An object-oriented language (e.g., C++) is introduced and used to implement OO designs.
##############################################################
52
Auburn
Data Structures
Comp 2210
?
Java
?
?
?
?
?
?
?
?
?
Couldn't find a course web site after exhaustive search.
##############################################################
60
Colorado School of Mines
Data Structures
MACS 262
?
C++
2
?
Main and Savitch
Data Structures and other Objects Using C++
none
3
double linked list, implementation, overloaded operator, template
Students implement a class to build and manipulate double-linked-lists, including overloaded assignment and comparison operators, incorporating a provided Error class to handle error conditions.
http://www.mines.edu/Academic/courses/math_cs/macs262/hw3.shtml
Abstract data types, user-defined data structures, linked lists, queues, graphs, trees, binary trees, binary search trees, hash tables, searching and sorting.
Second course for majors. Course web pages is on BlackBoard system, but I found remnants of the summer version of the course, and that's wherefrom this information was obtained.
##############################################################
1
Stanford University
Programming Abstractions
CS 106B
http://www.stanford.edu/class/cs106b/
C
?
?
?
?
?
?
?
?
?
##############################################################
3
California Institute of Technology
Introduction to Data Structures and Algorithms
CS 2
http://www.ugcs.caltech.edu/~cs2/
C++
3
http://www.ugcs.caltech.edu/~cs2/lectures/
?
?
Zork
7
pointers, inheritance, concept design
create a text-based adventure game
http://www.ugcs.caltech.edu/~cs2/lab7/
CS 2 is a challenging course in programming languages and computer science, emphasizing modes of algorithmic expression. The course will include such topics as performance analysis of algorithms; proofs of program correctness; recursive and higher-order procedures; data structures, including lists, trees, graphs, and arrays; objects and abstract data types. The course includes weekly laboratory exercises and written homework covering the lecture material and program design
Second course for majors. No required text. Students used man pages and lecture notes.
##############################################################
11
University of Chicago
Programming C++
CSPP 513
http://people.cs.uchicago.edu/~jagolbec/cspp536/
C++
2
http://people.cs.uchicago.edu/~jagolbec/cspp536/syllabus.html
Stroustrup
The C++ Programming Language
Winston
On to C++
Classes and Arrays
2
arrays, interface
catalog a collection of tama-guccis
http://people.cs.uchicago.edu/~jagolbec/cspp536/hw2.html
An introduction to computer programming using C++. Students learn concepts of procedural and object-oriented programming. Topics include control and data abstraction, self-reference, and basic algorithms and data structures
Not required for majors
##############################################################
19
University of California Berkeley
Data Structures and Advanced Programming
CS 61B
http://www-inst.eecs.berkeley.edu/~cs61b/
Java
3
http://www-inst.eecs.berkeley.edu/~cs61b/lectures/index.html
Hilfinger
Programming Intro Java
Puzzle Solver
2
algorithm design, modules
solve a logic probelm
http://www-inst.eecs.berkeley.edu/~cs61b/hw/proj2.pdf
Fundamental dynamic data structures, including linear lists, queues, trees, and other linked structures; arrays strings, and hash tables. Storage management. Elementary principles of software engineering. Abstract data types. Algorithms for sorting and searching. Introduction to the Java programming language.
Second course for majors
##############################################################
27
Wake Forest University
Data Structures
CSC 235
http://www.mthcsc.wfu.edu/~burg/Courses/Fall00/CSC235/
C++, Java
3
http://web.cs.wfu.edu/~hemler/courses/CSC112/current/admin/calendar.html
Sahni
Data Structures, Algorithms, and Applications in C++
none
4
recursion, stack, graphics
implement maze program from text
http://www.mthcsc.wfu.edu/~burg/Courses/Fall00/CSC235/assignments/Assignment4.html
Study, analysis, and implementation of abstract data structures such as list, stack, queue, and tree. Complexity analysis of algorithms which operate upon these data structures.
Second course for majors
##############################################################
35
University of Southern California
Data Structures
CSCI 102
http://www-scf.usc.edu/~csci102/
C++
2
http://www-scf.usc.edu/~csci102/fall2000/sched.html
Main and Savitch
Data Structures and Other Objects Using C++
Deitel and Deitel
C++ How to Program
none
2
postfix, loop
implement a problem from the text
http://www-scf.usc.edu/~csci102/fall2000/progassigments.html
Linear lists, strings, arrays, and orthogonal lists; graphs, trees, binary trees, multilinked structures, sorting techniques; dynamic storage allocation; applications.
Second course for majors
##############################################################
43
Pennsylvania State University
Intermediate Programming
CSE 120
http://www.lv.psu.edu/ojj/courses/cse-120.html
C++
2
http://www.lv.psu.edu/ojj/courses/cse-120/general/topics.html
?
?
Treesort alphabetizer
3
recursion, trees, sort
develop a treesort that recursively alphabetizes the strings inserted into a binary search tree, keeping the tree balanced at all times
http://www.lv.psu.edu/ojj/courses/cse-120/assignments/treesort.html
Systematic programming; top-down program development, documentation, and testing; introduction to data structures, text processing, numerical methods, algorithm analysis, program verification.
Second course for majors
##############################################################
51
American University
Introduction to Computer Science II
CSIS 281
http://www.cas.american.edu/~linvill/courses/c/6428101s00.htm
C++
1
http://www.cas.american.edu/~linvill/courses/c/6428101s00.htm
Deitel and Deitel
C++ How to Program
?
?
?
no online assignments. All handwritten
?
A second level course in computing for students who are computer science majors or who will use computers in their academic and professional careers. Students will further develop problem solving and programming skills. The programming language C++ will be studied, and students will become proficient in their use. Emphasis will be on large programs built from modules. An overview of the field of Computer Science and the impact of computers on society will be discussed.
Second course for majors
##############################################################
59
Clemson University
Computer Science 2
CS 102
http://www.cs.clemson.edu/~cs102/
Java
2
?
Main and Savitch
Data Structures and Other Objects using Java
none
8
stack
implements a char stack, write code to test proper nestings.
http://www.cs.clemson.edu/~lab102/labs/lab8/lab8.html
Continuation of CpSc 101, with continued emphasis on problem solving and program development techniques. Typical numerical, nonnumerical, and data processing problems will be examined. Basic data structures will be introduced.
Second course for majors
##############################################################
3
Wellesley College
Data Structures
CS 230
http://rocky.wellesley.edu/cs230/
Java
2
http://rocky.wellesley.edu/cs230/syllabus/syllabus.html
Downey
Data Structures in Java
Postfix Calculator
6
stack
Write a program that prompts the user for a mathematical expression in postfix and that evaluates the expression and prints the result. uses stacks. student must design a class that the user can easily interact with.
http://rocky.wellesley.edu/cs230/hw06/node1.html
An introduction to techniques and building blocks for organizing large programs. Topics include: modules, abstract data types, recursion, algorithmic efficiency, and the use and implementation of standard data structures and algorithms such as lists, trees, graphs, stacks, queues, priority queues, tables, sorting, and searching. Students become familiar with these concepts through weekly programming assignments using the Java programming language.
Second course for majors
##############################################################
11
Smith College
Computer Science II
CSC 112
http://cs.smith.edu/~thiebaut/classes/112/112.html
C++
3
http://cs.smith.edu/~streinu/Teaching/Courses/112.html
Horton
Ivor Horton's Beginning C++, The Complete Language ANSI/ISO Compliant
Word Frequency
5
vector, streams
read in a text file and output the words in order of frequency
http://cs.smith.edu/~thiebaut/classes/112/hw5.htm
This is the second programming course in the required Computer Science major sequence. It will cover more advanced programming techniques (object oriented), more advanced Unix concepts, data structures and the object oriented programming language C++.
Second course for majors
##############################################################
19
Colby College
Data Structures and Algorithms
CS 231
http://www.cs.colby.edu/~djskrien/cs231-fall00/index.html
Java
3
?
Standish
Data Structures in Java
Using Vectors to Implement and Generalize Priority Queues
4
priority queue, tvectors, template
implement a priority queue using tvectors, then template the implementation
http://www.duke.edu/~rmp4/project%204.txt
Using Java, an introduction to the primary data structures and the algorithms that operate on them. Data structures to be studied include arrays, graphs, trees, stacks, and queues. The algorithms include searching, sorting, insertion, deletion, and traversal. A weekly laboratory session provides hands-on computer experience.
Second course for majors. Coursesite is local access only.
##############################################################
27
Connecticut College
Data Structures
COM 212
http://www.conncoll.edu/academics/departments/comsci/com212/
Java
2
http://www.conncoll.edu/academics/departments/comsci/com212/syllabus.html
Horstmann
Computing Concepts with Java 2 Essentials
?
?
?
?
http://www.conncoll.edu/academics/departments/comsci/com212/progassign.html
Abstract data structures such as lists, stacks, queues and trees will be studied as well as programming techniques using recursion and pointers. Searching and sorting algorithms and algorithms analysis will also be discussed. Principles of software design will be explored by constructing major programs.
Second course for majors
##############################################################
35
Lafayette College
Principles Of Computer Science II
CS 103
http://www.cs.lafayette.edu/~collinsw/cs103/index.html
Java, C++
3
http://www.cs.lafayette.edu/~collinsw/cs103/index.html
Collins
Data Structures and the Java Collections Framework
Collins
Data Structures and the Standard Template Library
Eight Queens
4
stack, backtracking
classic eight queens on a chess board problem
http://www.cs.lafayette.edu/~collinsw/cs103/project4.html
Second course for majors
##############################################################
43
Furman University
Introduction to Computer Science II
CP 12
http://s9000.furman.edu/~pgabbert/cs12/main.html
C++
1
?
Lambert, Nance, and Naps
Introduction to Computer Science with C++
Inspector Inheritance and the Missing Link
6
linked list, inheritance
similar to multiset
http://s9000.furman.edu/~pgabbert/cs12/labs/lab06.html
A continuation of CS11. Emphasis on use of data structures to model and implement algorithms as computer programs. Principles of high-level program analysis and design.
Second course for majors
##############################################################
62
Hollins University
Computer Science II
CMPS 260
?
?
1
?
?
?
?
?
?
?
?
Digital computer programming with emphasis on file manipulation, multiple part programs, and threads. Various data structures such as lists, stacks, queues, and trees are introduced. Offered to first-year students.
Second course for majors
##############################################################
70
Presbyterian College
Fundamental of Computer Science II
CS 301/302
?
?
?
?
?
?
?
?
?
?
?
A study of principles of program design and implementation, using a modern programming language. Emphasis will be placed on procedure abstraction and data abstraction, and on the effective use of subprograms and data structures in implementing them. Students will write several programs of increasing complexity, culminating in a large group project.
Second course for majors
##############################################################
2
Williams
Computer Science 136
CS 136
http://www.cs.williams.edu/~andrea/cs136/index.html
Java
3
?
?
?
Text Reader
4
?
Who knows? The only material available on the course "webpage" was sample input, and a tiny bit of code.
http://www.cs.williams.edu/~bailey/courses/cs136/
This is an introductory data structures course. Currently it is taught in Java. Students work with basic data structures including vectors, lists, trees, search trees, dictionaries, hash tables, and graphs. This course has a weekly three hour lab. Students with significant experience in Java and structures up to hash tables and graphs should consider advanced placement to Computer Science 237.
##############################################################
10
Davidson
Data Structures and Algorithms
CSC 321
http://www.davidson.edu/academic/math/davis/courses/csc321/index.html
Java
2
http://www.davidson.edu/academic/math/davis/courses/csc321/syllabus.html
Goodrich and Tamassia
Data Structures and Algorithms in Java
Felleisen and Friedman
A Little Java, A Few Patterns
?
?
?
?
?
Programming techniques and data structures using the C programming language.
##############################################################
18
Bates
Computer Science II
CS 102
?
Visual BASIC
1
?
?
?
?
?
?
?
?
A continuation of Computer Science I. The major emphasis of the course is on advanced program design concepts and techniques, and their application to the development of high-quality software. Specific topics covered include the software development cycle, abstract datatypes, files, recursion, and object-oriented programming. Computer Science 101 and 102 provide a foundation for further study in computer science.
##############################################################
26
Bucknell
Introduction to Computer Science II
CSCI 204
http://www.eg.bucknell.edu/~cs204/Fall00/
C++
2
http://www.eg.bucknell.edu/~cs204/Fall00/assignments.pdf
Berman
Data Structures via C++
Tic-Tac-Toe
4
arrays, backtracking
The program plays an optimal game of tic-tac-toe.
http://www.eg.bucknell.edu/~cs204/Fall00/hw4-view.pdf
Methods of software engineering applied to design and programming. Topics include object-oriented design, elementary data structures, recursion, and programming team dynamics. Prerequisite: CSCI 203 or permission of the instructor.
##############################################################
34
Union
Introduction to Computer Science II
CSc 77
http://tardis.union.edu/csc077/
C++
2
http://tardis.union.edu/csc077/csc077-syl.html
Carrano, Helman, and Veroff
Data Abstraction and Problem Solving with C++
Glass and Schuichert
The STL Primer
Young and Levine
Unix for Dummies: Quick Reference
Sets of Integers
2
sets
Design a class for integer sets that supports providing unions and intersections.
http://tardis.union.edu/csc077/hw002.html
Basic concepts of data organization and abstraction, software design, stacks, queues, trees, and their implementation with linked structures. Sorting and searching techniques.
##############################################################
42
Denison
Introduction to Computer Science II
CS 271-272
?
C++, Java
3
?
?
?
?
?
?
?
?
Topics include algorithm analysis; stacks; queues; lists; trees; forests; heaps; hash tables; priority queues; coalescable equivalence relations as ADTs; sorting algorithms and their analyses; Prim, Kruskal, Dijkstra, other graph algorithms; algorithm design strategies including greedy, dynamic programming, probabilistic, backtracking, and divide and conquer; introduction to P and NP; emphasis on the object oriented paradigm using C++ or java, with exposure to the functional programming paradigm using lisp, scheme, ML, or some other functional language.
##############################################################
50
Willamette
Data Structures
CS 241
http://www.willamette.edu/~levenick/cs241/cs241.html
Java
3
?
Main and Savitch
Data Structures and Other Objects Using C++
Bouncy Bouncy
5
threads, vectors, graphics
Simulate molecules bouncing around in a box.
http://www.willamette.edu/~levenick/cs241/labs/lab5_circle.htm
Theoretical and practical study of programming and abstract data types in Java including lists, stacks, queues, trees and algorithms used on these data structures. The course includes object implementation of structures and sharpens programming skills learned in previous courses. Prerequisite: Programming experience in some higher-level programming language.
##############################################################
58
Gustavus Adolphus
Introduction to Computer Science II
MCS 178
http://www.gac.edu/~mc28/F2000/
Java
2
http://www.gac.edu/~mc28/F2000/syllabus.html
Hailperin, Kaiser, and Knight
Concrete Abstractions: An Introduction to Computer Science
Robot Cars
4
robotics
Design some functions to enable control of robotic cards.
http://www.gac.edu/~mc28/F2000/labs/robots/
A continuation of MCS-177. Students will learn how to use programming language definition as an abstraction mechanism by writing and modifying a Scheme interpreter in Scheme. They will also be introduced to the notion of state through a simplified computer architecture and its assembly language. Students then explore how the abstraction of state can be used to construct more efficient computational processes than otherwise, and to construct software systems that are modular and naturally reflect the structure of non-computational systems that the software models, especially through object-oriented programming.
##############################################################
2
Yale
A Second Course in Programming
CS 200
http://zoo.cs.yale.edu/classes/cs200/
C
3
http://www.cs.yale.edu/homes/xiao/cs210/syllabus.html
Reek
Pointers on C
Kernigan and Ritchie
The C Programming Language
Harbison and Steele
C, A Reference Manual
Long Numbers
2
arrays, pointers, arithmetic
Write functions to implement the multiplication and division of arbitrary precision numbers.
http://www.cs.yale.edu/homes/xiao/cs210/cs200_as2.txt
Programming techniques and data structures using the C programming language.
##############################################################
10
Cornell
Computers and Programming
COM S 211
http://www.cs.cornell.edu/Courses/cs211/2000fa/
Java
2
http://www.cs.cornell.edu/Courses/cs211/2000fa/CourseInfo.htm
?
?
Word Count
4
trees, sets
Reads in words from a text file and print out the number of words and unique words. Also, implement the add operation on a search tree, and analyze the run times of algorithms.
http://www.cs.cornell.edu/Courses/cs211/2000fa/hw/hw4/hw4.htm
Intermediate programming in a high-level language and introduction to computer science. Topics include program structure and organization, modules (classes), program development, proofs of program correctness, recursion, data structures and types (lists, stacks, queues, trees), object-oriented and functional programming, and analysis of algorithms. Java is the principal programming language.
##############################################################
18
Notre Dame
Data Structures
CSE 331
http://www.cse.nd.edu/courses/cse331/www/
C++
3
http://www.cse.nd.edu/courses/cse331/www/syllabus00.html
Weiss
Data Structures and Problem Solving Using C++
Stroustrup
The C++ Programming Language
Spell Check
3
strings, red-black trees
Write a spell checker for text files.
http://www.cse.nd.edu/courses/cse331/www/hw/pa3/pa3.pdf
Fundamental techniques in the design and analysis of non-numerical algorithms and their data structures. Elementary data structures such as lists, stacks, queues; more advanced ones such as deques, priority queues, and search trees. Design techniques such as divide-and-conquer. Sorting and searching algorithms. File compression, geometric methods, linear programming, random number generators, and string processing.
##############################################################
26
UNC Chapel Hill
Systematic Programming
COMP 114
http://www.cs.unc.edu/~weiss/COMP114/
Java
2
http://www.cs.unc.edu/~weiss/COMP114/03-Syllabus.doc
Bailey
Java Structures
Stanat and Weiss
Unpublished Manuscript
Coin Counter
3
vectors
Write a program that counts the number of ways to make change for a given amount with arbitrarily valued coins.
http://www.cs.unc.edu/~weiss/COMP114/29-Program3.doc
Prerequisite, COMP 14 or 15. Advanced programming. Program specifications; preconditions, postconditions, loop invariants. Linear data structures, searching and sorting. Algorithm paradigms and analysis. Fall and spring. Dewan, Weiss.
##############################################################
34
University of Rochester
Data Structures
CSC 172
http://www.cs.rochester.edu/u/www/courses/171/Spring-00/CSC172SP00/
Java
3
http://www.cs.rochester.edu/u/www/courses/171/Spring-00/CSC172SP00/intro.html
Weiss
Data Structures and Algorithm Analysis in Java
Deitel and Deitel
Java How to Program
Spell Check
3
class structure, vectors
Write a program that spell checks a document.
http://www.cs.rochester.edu/u/www/courses/171/Spring-00/CSC172SP00/PROJ4.htm
Representing data for computer manipulations (e.g., trees, lists, sets, vectors, stacks, and queues) in Java. Analysis of the running times of programs operating on such data structures, and basic techniques for program design, analysis, and proof of correctness (e.g., induction and recursion). Lab required.
Second course for majors
##############################################################
42
University of Illinois Urbana Champaign
Data Structures and Software Principles
CS 225
http://www-courses.cs.uiuc.edu/~cs225/
Fortran
C, C++, Java
3
http://www-courses.cs.uiuc.edu/~cs225/cs225/_nav/_framepage/infoPage.html
?
?
Name/Grade Map
5
map class, AVL trees
This program maps pseudonyms to real names to login names to grades.
http://www-courses.cs.uiuc.edu/~cs225/cs225/_mps/mp5/mp5.pdf
Data abstractions: elementary data structures: lists, stacks, queues, trees; searching and sorting techniques. Introduction to the principles of software engineering including semester programming project.
##############################################################
50
University of Texas Austin
Computer Science II
CS 315
http://www.cs.utexas.edu/users/downing/cs315/Syllabus.html
C++
2
http://www.cs.rochester.edu/u/www/courses/171/Spring-00/CSC172SP00/intro.html
Carrano, Helman, and Veroff
Data Abstraction and Problem Solving with C++
Schildt
C++ from the Ground Up
Schildt
STL Programming from the Ground Up
Grade Analysis
3
vectors
Write a program that runs some rudimentary statistical analysis on grades, and curves them.
http://www.cs.utexas.edu/users/downing/cs315/Projects/Grading.html
Techniques for program development and debugging, simple data structures, internal searching and sorting, recursion, string processing. Prerequisites: CS 307 with a grade of at least "C".
##############################################################
58
Clark University
Introduction to Computer Programming II
CSci 102
http://aleph0.clarku.edu/~achou/cs102/
Java
2
http://aleph0.clarku.edu/~achou/cs102/
Main
Data Structures and Other Objects Using Java
Very Long Integers
3
linked lists, classes, strings
Implement a very large integer class, which stores and adds arbitarily large numbers.
http://aleph0.clarku.edu/~achou/cs102/assign3.html
A continuation of CSci 101, covering such topics as string manipulation, data files and their processing, pointer variables, and dynamic data structures such as linked lists, stacks, queues, and binary trees. The usage and implementation of recursion also is discussed. Approximately six programming projects are assigned as the laboratory component of the course. These projects entail the design and implementation of programs involving the topics mentioned above.
##############################################################
13
Rice
?
COMP 212
http://www.owlnet.rice.edu/~comp212/
Java
3
http://www.owlnet.rice.edu/~comp212/00-fall/CS212F00.html
?
?
Hangman
?
?
?
http://www.owlnet.rice.edu/~comp212/00-fall/projects/01/hangman.htm
##############################################################
21
Vanderbilt
?
CS 201
http://cswww.vuse.vanderbilt.edu/~dfisher/courses/cs201/SPRING99/
C
3
http://cswww.vuse.vanderbilt.edu/~dfisher/courses/cs201/SPRING99/syllabus.html
?
?
Postfix Evaluation
?
?
?
http://cswww.vuse.vanderbilt.edu/~dfisher/courses/cs201/SPRING99/programs/prog4.html
##############################################################
29
College of William and Mary
?
CS 241
http://www.cs.wm.edu/~prosl/cs241/home.html
C++
1
http://www.cs.wm.edu/~prosl/cs241/daybyday.html
?
?
?
?
?
?
http://www.cs.wm.edu/~prosl/cs241/hw3/hw3f00specs.html
##############################################################
37
Boston College
?
MC 141
http://www.cs.bc.edu/~borowsky/classes/mc141/
C
2
http://www.cs.bc.edu/~borowsky/classes/mc141/Schedule.html
?
?
Palindrome checking
?
?
?
http://www.cs.bc.edu/~borowsky/classes/mc141/hw5.html
##############################################################
45
University of California Santa Barbara
?
CS 20
http://www.cs.ucsb.edu/~mcguire/courses/20/
Java
1
?
?
?
Stack/Queue
?
?
?
http://www.cs.ucsb.edu/~mcguire/courses/20/assts/5.html
##############################################################
15
John Hopkins
Data Structures
CS226
http://www.cs.jhu.edu/~cs226/
Java
3
http://www.cs.jhu.edu/~cs226/
Goodrich and Tamassia
Data Structures and Algorithms in Java
Lewis and Loftus
Java Software Solutions
Arnow and Weiss
Introduction to Programming using Java
Data Structures
2
vector, list
In this project, you will construct an implementation of the entire Sequence interface using either an array or linked list (this means that you may not use java Vector or List classes). In particular, if your student number (SSN) ends in an odd digit, you must use an array, and if your student number ends in an even digit, you must use a doubly-linked list.
http://www.cs.jhu.edu/~cs226/proj2.html
Second course for majors
##############################################################
0
Princeton University
General Computer Science
COS 126
http://guest:guest@courseinfo.princeton.edu/courses/COS126_F2000/
C
2, irregular
http://www.cs.princeton.edu/~cs126/syllabus-f00.pdf
Sedgewick
Algorithms in C
King
C Programming: A Modern Approach
A Pseudo-Random Walk on Wall Street
5
assebly code, machine code, random walk
Use TOY assembly language to simulate stock prices over time.
http://www.cs.princeton.edu/~cs126/assignments/toy.html
An introductory survey for students in the sciences and engineering. Hardware and software systems. Programming in C and other languages. Introduction to algorithms and data structures. Applications to solving scientific problems. Fundamentals of the theory of computation.
First course for majors, combines CS1, CS2, plus covers lower-level stuff (circuits, grammar, Turing machines, assembly)
##############################################################
8
Dartmouth College
Data Structures and Programming
CS 15
http://www.cs.dartmouth.edu/~farid/teaching/cs15/
Java
3
http://www.cs.dartmouth.edu/~farid/teaching/cs15/
Weiss
Data Structures and Algorithm Analysis in Java
Midterm Practice
4
Big-O, Trees, Stacks
Various word problems
http://www.cs.dartmouth.edu/~farid/teaching/cs15/homework4.html
This course continues the study of computer science begun in Computer Science 5. It is organized around the ideas of data abstraction and abstract data types. Students will learn ways to represent lists, sets, dictionaries, priority queues, and other structures inside of the computer. They will also study design tradeoffs (space, time, operations allowed) and reasons for choosing one data structure over another. Specific representations include linked structures, binary trees, balanced trees, and hashing. More advanced sorting methods than were covered in Computer Science 5 will also be included. Students will implement programs that make use of the data structures and algorithms and will be assigned written work.
##############################################################
16
Washington University in St. Louis
Computer Science II
CS 102G
http://www.cs.wustl.edu/~sck/102/current-semester/
Java
1, irregular
http://www.cs.wustl.edu/~sck/102/current-semester/cal.html
Horstmann and Cornell
Core Java, Volumes I and II
A Vending Machine Simulator using FSM Controller
4
code re-use, finite state machine, class design
Graphically simulate a vending machine--do things depending on button press
http://www.cs.wustl.edu/~sck/102/current-semester/lab/lab2c/
CS 102 builds on CS 101's introduction to software systems as collections of communicating components. CS 102 emphasizes more sophisticated uses of object-oriented concepts (inheritance, polymorphism, method overloading, and multiple inheritance of interfaces) and techniques for building systems of multiple interacting components. Representation invariants, loop invariants, and exception handling are used as techniques for writing correct and robust programs. Additional algorithms and data structures are presented. An introduction to file I/O, string parsing, virtual machine and memory models, graphics, user interfaces, threads, concurrency, synchronization, and network programming is provided. Concepts and skills are mastered through programming exercises, many of which employ graphics to enhance conceptual understanding. Java, an object-oriented programming language, is used as the vehicle of exploration.
This course strongly emphasizes state machines and the inner-workings of Java.
##############################################################
24
UCLA
Introduction to Computer Science II
CS 32
http://www.cs.ucla.edu/classes/spring00/cs32/
C++
3
http://www.cs.ucla.edu/classes/spring00/cs32/syl.pdf
Weiss
Algorithms, Data Structures, and Problem Solving with C++
Scientific Calculator Simulator
2
stack, classes
Simulate the functions of a fairly complex scientific calculator (must support 2 line display, parathases, value memories, smart display of either integer, decimal, or sci. notation, must allow user to edit previous entry lines before evaluating.)
http://www.cs.ucla.edu/classes/spring00/cs32/pr2.pdf
CS32 covers object-oriented data structures and software development, algorithm analysis, and advanced problem-solving using the C++ language. It is a follow-on to CS31 and requires strong previous knowledge of C++ and object-oriented techniques.
Requires use of Visual C++ for Windows
##############################################################
32
New York University
Introduction to Computer Science II
V22.0102
http://cs.nyu.edu/courses/spring00/V22.0102-002/index.html
Pascal, Java
2
http://cs.nyu.edu/courses/spring00/V22.0102-002/syllabus.html
Kruse
Data Structures and Program Design
Intro. to Huffman Compression
3
linked lists, compression
Use linked lists to compress a file. Later the same code will be modified to use binary trees in order to do true Huffman compression.
http://cs.nyu.edu/courses/spring00/V22.0102-002/hw3a.html
The design of data structures for representing information in computer memory. Topics include: Abstract data types and their implementations; Stacks; Queues; Priority queues; Dictionaries; Sorting; Recursion.
Strong knowledge and experience with Pascal is a prerequisite. Students with poor grades (worse than a C) in the CS1 course are not allowed to take this class.
##############################################################
40
University of California Davis
Data Structures and Programming
ECS 110
http://muldoon.cipic.ucdavis.edu/classes/ecs110-s96/ecs110.html
C++
3
http://muldoon.cipic.ucdavis.edu/classes/ecs110-s96/ecs110.html
Horowitz, Sahni and Mehta
Fundamentals of Data Structures in C++
Subway Map
4
graphs
Use a graph to find all possible subway routes between two points using no segment (between two points) more than once.
http://graphics.cs.ucdavis.edu/courses/ecs110-s96/Assignment-4/Assignment-4.html
Catalog Description: Design and analysis of data structures for a variety of applications. Trees, heaps, searching, sorting, hashing, graphs. Extensive programming. Goals: By the time students finish, they should have learned to think clearly about and solve complex and poorly-defined programming tasks. Students are able to (a) find appropriate abstractions to solve a complex problem (b) choose appropriate data structures and algorithms (c) analyze simple algorithms and discuss trade-offs among data structures (d) get it all working. Expanded Course Description: Analysis of algorithms. Strings. Stacks. Queues. Trees. Tree traversals. Binary trees. Expression trees. Binary arch trees. Amortized analysis. Hashing. Universal hashing. Heaps. Sorting algorithms. Graphs. Depth-first Search. Minimum spanning trees. Shortest paths. Union/Find data structure. Splay trees. Digital search trees. Tries. Huffman codes. Branch-and-Bound. If time permits, any of the following: Skip lists, B-trees, Fibonacci heaps.
Requires grade better than C in CS1 course.
##############################################################
48
Pepperdine University
Computer Science II
COSC 221
http://www.pepperdine.edu/seaver/natsci/COMP%20SCI/cosc221.htm
Component Pascal
2
http://www.pepperdine.edu/seaver/natsci/COMP%20SCI/cosc221.htm
Warford
Programming with BlackBox (unpublished --online at "ftp://ftp.pepperdine.edu/pub/compsci/prog-bbox/")
?
?
?
?
?
Introduction to object-oriented programming. Recursion, basic algorithms, array searching and sorting. Dynamic storage allocation, pointer types, linked lists and binary search trees as abstract data types. Classes, objects, abstract classes, inheritance and polymorphism, linked lists and binary trees as classes.
Follow-up course (CoSc 320) it their pure data structures course and it addresses the more advance issues.
##############################################################
56
Catholic University of America
Computer Programming II
CSC 114
http://burns.ee.cua.edu/~tvedt/csc114/syllabus.htm
C++
1
http://burns.ee.cua.edu/~tvedt/csc114/syllabus.htm
Deitel and Deitel
C++ How to Program
?
?
?
?
?
Two classes cover same material in different languages (C++ in 114, Java in 124) Sent email to apparent professor of class, John D. Tvedt. No responce yet.
##############################################################
0
Amherst College
Data Structures
CS 21
http://www.cs.amherst.edu/~lam/cs21syll.html
Java
?
http://www.cs.amherst.edu/~lam/cs21syll.html
Goodrich and Tamassia
Data Structures and Algorithms in Java (Second Edition)
?
?
?
?
?
A fundamental problem in computer science is that of organizing data so that it can be used effectively. This course introduces basic data structures and their applications. Major themes are the importance of abstraction in program design and the separation of specification and implementation. Program correctness and algorithm complexity are also considered. Data structures for lists, stacks, queues, trees, sets and graphs are discussed. This course will provide advanced programming experience.
Contacted professor about accessing secured files (detailed syllabus, assignments).
##############################################################
8
Middlebury College
Data Structures
CX 214
http://www.middlebury.edu/~schar/Courses/cx214.S00/
Java
3
http://www.middlebury.edu/~schar/Courses/cx214.S00/
Bailey
Java Structures
Linked list problems
4
linked list
Various problems: test, traverse, manipulate, sort lists
http://www.middlebury.edu/~schar/Courses/cx214.S00/hw/hw4/
This course stresses ideas and structures helpful in designing and implementing algorithms, especially for solving large or complex problems. Important concepts in this context are data abstraction and modularity, which should be familiar from CX 121. In this course, we will introduce many important data structures such as vectors, lists, stacks, queues, trees, and graphs, and discuss various ways to implement these structures. We will also introduce the concept of algorithmic complexity, and compare the different implementations terms of time and space efficiency. Programming will be done in Java; familiarity with Java and Unix is assumed.
##############################################################
16
Vassar College
Computer Science II
CMPU 102
http://www.cs.vassar.edu/~cs102/index.html
C++
3
http://www.cs.vassar.edu/~cs102/index.html#schedule
Dale, Weems, and Headington
Programming in C++
NASA Database
4
database, parallel arrays
Make a database of parts for the space shuttle.
http://www.cs.vassar.edu/~cs102/A4/A4.html
Locked inside a corrupt PDF file
##############################################################
24
Macalester College
Computer Science II
CS 24
?
?
3
?
?
?
?
?
?
?
?
This course continues the presentation of the fundamental concepts of computer science begun in Computer Science 23. It introduces the procedural model of computation, object-oriented design, the theory of types, problem specification, formal specifications, and will focus more formally on analysis of algorithms for efficiency and correctness. The course will include a study of advanced data types such as lists, trees, graphs, and sets. Students will study the advantages and disadvantages of different data structures, and will explore their applications across computer science.
Contacted professor. No reply yet.
##############################################################
32
Franklin And Marshall
Data Structures
CPS 260
http://www.fandm.edu/departments/ComputerScience/curriculum/CPS260.html
C, C++, Java
3
http://www.fandm.edu/departments/ComputerScience/curriculum/CPS260/syllabus.html
Bailey
Java Structures
Pothering and Naps
Introduction to Data Structures and Algorithm Analysis with C++
?
?
?
?
?
from aces
Students choose prefered language, use appropriate book.
Students use CodeWarrior for Macintosh.
Assignment not online.
##############################################################
40
Occidontal College
Introduction to Computer Science
CS 211
?
?
?
?
?
?
?
?
?
?
?
Programming with linked data structures, including stacks, queues, trees and linked lists. Object-oriented programming. Programming methodology. Computer systems. Ethics in computing.
Apparent professor contacted.
##############################################################
48
Skidmore College
Introduction to Computer Science II
CS 206
http://www.skidmore.edu/~pvonk/cs206/
C++
1
http://www.skidmore.edu/~pvonk/cs206/calendar.htm
Carrano, Helman, and Veroff
Data Abstraction and Problem Solving with C++
Workign with Queues
1
queue, arrays
Implement and mess arounf with queues.
http://www.skidmore.edu/~pvonk/cs206/calendars/proj2.pdf
Continuation of CS 106: study of recursion, pointers, development strategies for large software projects, and introduction to data structures, analysis of algorithms, and program verification.
Visual C++ for Windows used.
Data Structures delt with in depth in later course, CS 321 (http://www.skidmore.edu/~adean/cs3210009/homepage.html)
Slow server!
##############################################################
n/a
Kalamazoo College, MI
Data Structures
CS 210
http://max.cs.kzoo.edu/cs210/index.shtml
Java
3
http://max.cs.kzoo.edu/cs210/syllabus.shtml
Bailey
Java Structures
Linked Lists: Bad News Bearers
5
circular linked list, pointers
Play with different implementations of lists.
http://max.cs.kzoo.edu/cs210/Labs/LLists/LListsPP.html
CS 210 is a continuation of Introduction to Programming (CS 110), and provides students an opportunity to further develop and refine their programming skills. In particular, the emphasis of this course is on the organization of information, the implementation of common data structures such as lists, stacks, queues, trees, and graphs, and techniques of data abstraction, including encapsulation and inheritance. We will also explore recursion and the close relationship between data structures and algorithms.
This is actually the 3rd course for majors, but basically lines up as CS2.
CodeWarrior used.
##############################################################
6
Carleton
?
?
?
C++
3
?
?
?
?
?
?
Two assignments: polynomial class that privately inherits from a linked-list based queue and postfix evaluation, but implement stacks and queues too
http://turing.mathcs.carleton.edu/faculty/jgoldfea/cs127/spring00/assignment4.html
Spring 2000
##############################################################
14
Grinnell
?
CSC152
http://www.cs.grinnell.edu/~rebelsky/Courses/CS152/2000F/index.html
Java
3
?
?
?
?
?
graphing calculator that deals with fractions
http://www.cs.grinnell.edu/~rebelsky/Courses/CS152/2000F/Homeworks/hw.03.html
##############################################################
22
Oberlin
?
CS 151
http://exciton.cs.oberlin.edu/cs151/
?
3
?
?
?
Airport simulation
?
?
?
http://exciton.cs.oberlin.edu/cs151/labs/lab06/default.htm
Gets to trees, hash tables and los of OO stuff
Link is to spring 2000 version
##############################################################
30
Colorado College
?
MA222
http://faculty1.coloradocollege.edu/~sjanke/MA222/
Pascal
?
?
?
?
?
?
?
Queueing simulation of a xerox machine (implement the queue)
http://faculty1.coloradocollege.edu/~sjanke/MA222/assignments.html
This offering is a five week course that does lists to NP-completeness!!
##############################################################
38
Bard College
?
CMSC 142
http://inside.bard.edu/~mcgrail/courses/csII/
Java
?
?
Corman, et al
Big White book
?
?
?
?
?
From Spring semester 2000 we find the assingments do not track the syllabus
http://inside.bard.edu/~mcgrail/courses/csII/about trees, graphs, etc.
but the last assignment on the web is about priority queues. And
it is simply "build one, make it implement a todo list"
Does not look like it gets very far in use of data structures.
The assignment below is bubble sort:
http://inside.bard.edu/~mcgrail/courses/csII/assignment5.html
Also CMSC 201, "linked lists, stacks, queues, trees,
hashtables, graphs", but no web page.
##############################################################
46
Beloit College
Data Structures and Objects
Computer Science 195
http://cs.beloit.edu/~chavey/CS195/
C++, Java?
2
?
?
?
Maze solving
4
?
?
http://cs.beloit.edu/~chavey/CS195/Program4.html
trees, priority queues, tables,
##############################################################
57
College of Wooster
Computer Programming II
CS 152
http://www.wooster.edu/math/
?
1
?
?
?
?
?
?
?
?
##############################################################
65
Knox
?
CS 205
http://www.knox.edu/cs205/
C++
3
?
?
?
?
?
?
Simulate ants gathering food. Use arrays but can be made more complex.
http://www.knox.edu/cs205/homework03.html
##############################################################
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?