Explorations in Computer Science
Second Edition

by R. Mark Meyer

(The lab numbers refer to labs in "Explorations in Computer Science, Second Edition." If there is more than one lab per book chapter, the labs are given letters such as Lab 9a and Lab 9b. Both refer to material in Chapter 9 of the textbook.)

Lab 1: Introduction to the Labs

Introduction -- tell us about yourself and practice taking screenshots
Lab 2: Exploring Number Systems

Number systems -- conversions between base 10 and some other bases

Binary addition -- convert numbers to binary and add them
Lab 3A: Representing Numbers

Negative binary numbers -- sign-magnitude form and 2's complement form

Real number representations -- scientific notation in decimal and in binary
Lab 3B: Colorful Characters

Character codes (ASCII and Unicode) -- show the corresponding ASCII or Unicode values for characters (up to 255).

Text translator into ASCII -- display a list of the Unicode values, and allow some text to be converted to numeric codes

Color maker -- display colors in RGB and HSB formats
Lab 3C: Compressing Text

Text compression using keywords -- compress and decompress text using a keyword table

Text compression using Huffman encoding -- compress and decompress text using a Huffman encoding
Lab 4: Logic Circuits

LogicGates -- A logic gate circuit simulator
Lab 5: Computer Cycling

Super Simple CPU -- a complete, working computer that illustrates the fetch/decode/execute cycle.
Lab 7: Low-Level Languages

Super Simple CPU -- the same as used in Lab 5 (above)
Lab 8: Using Algorithms for Painting

Palgo -- "painting algorithmically", a simple paint environment where a program directs the paintbrush. Also allows purely textual programming.

Lab 9A: Searching for the Right Sort

Stacks and queues -- difference between stacks and queues

Trees -- see how binary trees work
Lab 9B: Searching for the Right Sort

Sorting -- selection sort, bubble sort, quick sort

Searching -- sequential versus binary search

Palgo -- "painting algorithmically", a simple paint environment where a program directs the paintbrush. Also allows purely textual programming.
Lab 10: Operating Systems

Placement of jobs in memory -- contiguous allocation of memory for jobs, using various fitting algorithms

Scheduling of jobs -- using FSCS, SJF and Round Robin
Lab 11: Disk Scheduling

Disk Scheduling -- FSCS, SSTF and SCAN (elevator)
Lab 12B: Databases

Simple SQL -- A tiny relational database program that processes SQL queries
Lab 13: Artificial Intelligence

Semantic networks -- logic deduction

Eliza therapist -- conversational computer program using some simple rules for textual transformation
Lab 14: Simulating Life and Heat

Game of Life -- the classic cellular automaton

Heat transfer -- colorful animation of dissipation of heat
Lab 15: Networking

TCP/IP -- reliable connection, ensured delivery of packets between two nodes in a network, allows user to damage or destroy packets

Network router -- illustrates how routing decisions are made
Lab 17: Limits of Computing

Comparison of several functions -- shows how f(N) gets very large

Plotter -- a way to visualize the growth rates of functions

Traveling Salesperson Problem -- run the algorithm on various graphs to find the shortest complete route (if there is one). Beware! If you animate the search and the graph is reasonably large, the applet will take a very long time to finish!