Pointers and Memory
|Binky Pointer Video
A silly but memorable 3 minute animated video demonstrating the basic structure,
techniques, and pitfalls of using pointers. There are separate versions
of the video for C, Java, C++, Pascal, and Ada. There is also a more traditional
text (below) that goes with the video, and a brief
history of how the video was made.
||The companion text for the Binky video. Presents the same concepts
and examples as the video, and includes study questions with solutions.
Code is presented in C, Java, C++ and Pascal.
|Pointers and Memory
||A 31 page explanation of everything you ever wanted to know about pointers
and memory. Can be used as an introduction, or as review for people who
mostly understand pointers. Mostly uses C, with some discussion of C++
and Java. The early sections introduce basic pointer concepts, while the
later sections discuss more advanced topics such as reference pointers
and dynamic arrays.
Lists and Trees
|Linked List Basics
||A 26 page introduction to the techniques and code
for building linked lists in C. Includes basic examples and sample problems
with solutions. Provides a basic understanding of linked lists and pointer
|Linked List Problems
||A quick review of linked list basics followed by 18 linked list problems
with solutions. The problems range from beginner, to intermediate, to advanced
-- an excellent source of pointer algorithm problems.
||A 27 page introduction to binary trees. Introduces the basic concepts
of binary trees, and then works through a series of practice problems with
solution code in C/C++ and Java. Binary trees have an elegant recursive
structure, so they make a good introduction to recursive pointer algorithms.
|The Great Tree List Recursion
||One of the neatest pointer/recursion problems you will ever see. This
is an advanced problem that uses linked lists, binary trees, and recursion.
Includes solution code in Java and C.
||A quick 23 page introduction to the main features
of the Perl language. Handy as an introduction or a quick reference.
||A relatively quick, 45 page discussion of most of the practical aspects
of programming in C. Explains types, variables, operators, functions, control
constructs, arrays, pointers, strings, array/pointer trickery, and the
standard library functions. The coverage is complete, but quick, so it
is most appropriate for someone with some programming experience. (revised 4/2003)
|Unix Programming Tools
||A 16 page introduction to the most common Unix tools and their usage
in the compile-link-debug process. Introduces gcc, make, gdb, emacs, and
the shell. There should be enough information here to allow someone with
a little Unix experience to build and debug.
|Stanford Tetris Project
||Complete programming materials for a tetris assignment, including
a game playing AI. A runnable version is included, along with sufficient
materials for people to attempt the project. Presented at the
Nifty Assignments Panel at SIG-CSE 2001