Here are some of the programs and other ICS-type projects I've written for various ICS courses at UCI. Some are cool, most are lame. They are a mix of JAVA, C++, and a SCHEME program. Oh, and my philosophy on USING these programs is this: I did not copywrite them, and I give permission to anybody to use them in whatever form you like, just don't let anyone know I wrote them. Update: I put a password on the programs because I noticed a lot of people are just leeching them. If you want a copy of the program, email me at Comments should goto

ICS 22 - Written in Java
GPA Calculator .zip a program that calculates the grade point average of a UCI student.
PHIZZ Vending Machines .zip create the backbone to a working vending machine
Bozo Burger .zip create the backbone to a working cash register
Zoo TV .zip backbone to a cable TV tuner
Nova Scotia Lottery .zip simulates the lottery system for nova scotia
Millennium Cinemas .zip simulator to see the best and most effiencent way of handling customers
Scheme Training .zip learn some scheme

ICS 52 - Software Engineering Requirements .doc The requirements document to an online bookstore called (pretty clever). Architecture .doc In this document, we chose a particular architecture for and discuss why. Implementation .zip In this homework, we implemented (sorta) the back-office portion of Testing .doc Here, we thoroughly (hah!) test the implemenation that we did in the previous assignment.

ICS 141 - Programming Languages
OS 141 .tar.gz A simulation of a simple operating system, used to teach multi-threading, and the basics of an OS.

ICS 142 - Compilers
Homework 1 .tar.gz assignment Design a multi-pass fully-optimizing compiler using a data-flow diagram
Homework 2 .tar.gz assignment Hand implement a lexical analyzer in C++, use Flex to generate a lexical analyzer.
Homework 3 .tar.gz assignment Use bison to generate a parser, handcode a top-down parser in C++
Homework 4 .tar.gz assignment Build a linked list symbol table
Homework 5 .tar.gz assignment Use a symbol table for Tiny-C functions to store variable offsets and types for parameters and local variables
Homework 7 .tar.gz assignment Modify the C++ program provided as a start to perform the following optimizations on a sequence of three-address code instructions: constant propagation, copy propagation, and constant folding.
Homework 8 .tar.gz assignment

ICS 152 -
Project 1 .tar.gz blah.

ICS 171 - Artificial Intelligence
Cyber Othello .rar The artificial intellegence for a othello playing computer. Written in java, you can play yourself in it, it's not that stupid (it can beat me)
Decision Tree .rar This is a basic implementation of a working decision tree. It will take input in the form of a training set, and will make guesses on a test set, then report it's results.
Perceptron Learning .xls Fairly basic perceptron learning spreadsheet. It emulates a basic neural network. i emphasize it's basic'ness.

ICS 156 - Advanced Networking
Intro .doc Intro to the labs
Single Segment Networks .doc Basic networking
Dynamic Routing Protocols .doc OSPF, BGP etc.
Lan Bridges .doc yeah...LAN bridging
Transport Layer Protocols .doc TCP and UDP

ICS 145b - Project in Operating Systems
Scheduler .tar.gz Rudimentary kernel scheduler with processes and resources
Virtual Memory .tar.gz Implementation of several virtual memory schemes and comparisons between them
Disk Driver .tar.gz Basic disk driver
Filesystem .tar.gz Filesystem utilizing the above disk driver

  ©201 Kevin Margulieux. All rights reserved