ise582 - web technology for industrial engineering

description || schedule || students || lectures || homeworks || midterm || projects || examples || resources

ISE 582 - Spring 2010

Instructor: Alexandre R.J. François

TA: Mike Giakkoupis

course description


This is a fast-paced, project-based introduction to designing and implementing interactive web-based software for Industrial Engineering applications. The applications include economic models, market research tools, product design and representation, distribution of company data for outsourcing and vendor identification. Students will gain knowledge and experience in user interface design, Java, HTML, UNIX and UML. Over the course of the semester, the students will design and build a web application to automate data input and modeling, and problem solving in an industrial engineering domain.

Prerequisites: ISE 382, CS101L or equivalent.

Textbook: On To Java by Patrick Henry Winston and Sundar Narasimhan, 3rd Edition, Addison-Wesley, 2001.


Evaluation is based on:

Each student is expected to: be responsible for his/her own learning; solve and write up his/her own solutions; and, credit all collaborators and sources in their solutions. To use and pass off the ideas or work of another person's as one's own is NOT acceptable. Plagiarism will be severely punished (see the Academic Integrity Policy below).

The homeworks will be graded by the Teaching Assistant. Collaboration is allowed in completing the assignments, provided the names of all the collaborators are listed on each individual submission. Homeworks are due by midnight 7 days after they are assigned. No late assignments will be entertained, unless extreme circumstances can be demonstrated.

The midterm will be an open book, take home programming assignment. The midterm will be graded by the TA.


The project will exercise your knowledge in implementing web-based software for solving a problem in an industrial engineering application area. Students may work alone or in pairs to design and implement the projects. The application areas may include economic modeling, market research, product design and representation, data modeling, analysis and visualization. The project grade (on a scale of 100%) will be based on the program's content (40%), style (40%) and clarity (10%), plus the in-class presentation (10%). The project will be graded by the professor.

Project requirements
Project proposals

A proposal must include the following information

If the project is inspired/motivated by external sources (research article, other program, etc.), the proposal should include appropriate credit and references.


The deliverables for the project include weekly reports (about 1 paragraph, max 1 page, not including screenshots).

Each team will present their project on the last day of class. The presentation will last 5 minutes, and must give a clear and concise overview of the project objectives, and of the technical challenges overcome in its realization.

The presentation may comprise one or several of the following:

Final deliverables include:

academic integrity policy

The Department of Industrial and Systems Engineering adheres to the University's policies and procedures governing academic integrity as described in SCampus. Students are expected to be aware of and to observe the academic integrity standards described in SCampus, and to expect those standards to be enforced in this course.

You are expected to solve and write up your own homeworks, or you will be penalized for cheating. You are encouraged to study and to work on assignments and homeworks together. This includes discussing solution strategies to be used on individual assignments. If you do study or work together on a homework, be sure to credit your team of collaborators. However, all work submitted for the class is to be done individually.

All USC students are responsible for reading and following the Student Conduct Code, which appears in SCampus and at The USC Student Conduct Code prohibits plagiarism. Some examples of what is not allowed by the conduct code: copying all or part of someone else's work (by hand or by looking at others' files, either secretly or if shown), and submitting it as your own; giving another student in the class a copy of your assignment solution; consulting with another student during an exam. If you have questions about what is allowed, please discuss it with the instructor.

Students who violate University standards of academic integrity are subject to disciplinary sanctions, including failure in the course and suspension from the University. Since dishonesty in any form harms the individual, other students, and the University, policies on academic integrity will be strictly enforced. We expect you to familiarize yourself with the Academic Integrity guidelines found in the current SCampus.

Violations of the Student Conduct Code will be filed with the Office of Student Conduct, and appropriate sanctions will be given.

disability policy statement

Any Student requesting academic accommodations based on a disability is required to register with Disability Services and Programs (DSP) each semester. A letter of verification for approved accommodations can be obtained from DSP. Please be sure the letter is delivered to the instructor (or to the TA) as early in the semester as possible. DSP is located in STU 301 and is open 8:30 a.m. - 5:00 p.m., Monday through Friday. The phone number for DSP is (213)740-0776.

spring 2010 schedule

Friday January 15: Introduction - HTML
Questionnaire [html]
Getting started [html]

Friday January 22: Starting out with Java
Textbook ch. 1-5
Java 1 [html]

Friday January 29: Classes
Textbook ch. 6-13
Java 2 [html]
Code examples [java]
Assigned: homework 1 [html]

Friday February 5: Inheritance
Textbook ch. 14-20
Java 3 [html]
Code examples [java]
Due: homework 1 [html]
Assigned: homework 2 [html]

Thursday February 11: Extra class
Textbook ch. 1-20
Attendance is optional but recommended

Friday February 12: Problem Solving
Textbook ch. 21-26
Java 4 [html]
Due: homework 2 [html]

Friday February 19: Data Structures and File Streams
Textbook ch. 27-31,33
Java 5 [html]
Code examples [java]

Friday February 26: Exceptions, serialization, Modularization
Textbook ch. 32, 34-36
Java 6 [html]
Code examples [java]
Assigned: homework 3 [html]

Friday March 5: GUIs and the Model-View Approach
Textbook ch. 37-42
Java 7 [html]
Code examples [java]
Due: homework 3 [html]

Friday March 12: no class
Due: project proposals

Spring break

Textbook ch. 1-42
Text [html]
SnowFlake codebase [java]
Assigned: Friday March 26 at 0:01am
Due: Monday March 29 at 11:59pm

Friday March 26: Applets and Resource Locators
Textbook ch. 43-45
Java 8 [html]
Code examples [java]
Code examples [applet]
Due: Project progress report 1

Monday March 29
Due: Midterm (11:59pm)

Friday April 2: Interactive Forms, Menus, Dialogs
Textbook ch. 49-50
Java 9 [html]
Code example [java] [applet]
Due: Project progress report 2

Friday April 9: Javadoc
Java 10 [html]
Code example [java] [javadoc]
Due: Project progress report 3

Friday April 16: JAR files, Threads
Textbook ch. 48, 55
Java 11 [html]
Code example [java]
Due: Project progress report 4

Friday April 23: NO LECTURE (Project wrap-up week)
Due: Project progress report 5

Friday April 30: Project Presentations
Due: Final project deliverables
Due: Course evaluations (online)


lecture notes


Homework 1 [html]
Assigned: January 29
Due: February 5

Homework 2 [html]
Assigned: February 5
Due: February 12
Sample code [java]

Homework 3 [html]
Assigned: February 26
Due: March 5
Sample code, and input and output files [java]


Text [html]
SnowFlake codebase [java]
Assigned: Friday March 26 at 0:01am
Due: Monday March 29 at 11:59pm


Listed by rank in popular vote (top 5, honorable mentions, nominated)

(1) Simpsons Scrambler
Christina Puplava and Katrina Bisetti

The Simpsons Scrambler is a fun game for all ages. There are three levels of play - easy, medium and hard. Easy is a 3x3 puzzle, medium is a 4x4 puzzle and hard is a 5x5 puzzle. Press "start" to begin the puzzle and move the pieces to the open square in order to try to recreate the picture. When the puzzle is complete, the missing piece will reappear in the correct spot. There is a timer and move counter so that you can challenge yourself to improve every time you play. [website]

(2) Deal or no deal
Dina Ding and Runze Wang

This applet implements the game of Deal or No Deal, which involves the player and a banker. The game revolves around the opening of a set of numbered briefcases, each of which contains a different prize (cash or otherwise). The contents of all of the cases are known at the start of the game, but the specific location of any prize is unknown. The player claims a case to begin the game. The case's value is not revealed until the conclusion of the game. The player then begins choosing cases to be removed from play. The amount inside each choice is immediately revealed; throughout the game, after a predetermined number of cases have been opened, the banker offers the player an amount of money to quit the game, the offer based roughly on the amounts remaining in play and the player's demeanor. The player then answers the titular question: "deal or no deal?" [website]

(3) FindIt
Yun Ling

This applet (FinditApplicationWithLayout) extends the FinditApplication applet with some specified layout (FinditApplicationLayout). The applet is composed of one model (Findit) and five viewers (Headline, ImageSpace, Timebar, Banner, and FinditPanel). User detects a difference by clicking on the ImageSpace. If the clicking position is within a certain range from the correct difference position, this difference is labeled to be found. User can click on either of the two images shown on the ImageSpace. A Timebar is running and the time elapses faster in higher level of game. Headline and Banner reminds user the current level of game and the current number of found and unfound differences. [website]

(4) Kwik-E-Mart Online
Virgil Hidalgo and Amy Lam

Set in Matt Groening's "The Simpsons" universe, Kwik-E-Mart ONLINE is the online presence of Apu Nahasapeemapetilon's store. Users begin by clicking through items from a virtual store shelf. As they add items to the cart, the Kwik-E-Kart section is populated with the item name, desired quantity, and total price. The 'Edit Cart' button can be used to delete items or adjust quantities within the Kwik-E-Kart. Clicking 'Checkout', the user is taken to the purchase summary GUI where they can review the purchase, enter payment information, choose shipping, and finalize their order. [website]

(5) Hurricane Tracker to Oil and Gas Producers
Zhiliang Zhang

This project idea comes from last year I did a investment simulation on wallstreetsurvivor, which is a real-time financial investment simulation. I invested some money on a few oil companies' options. Then a hurricane appeared on the gulf of mexico, which made me so happy since it seemed it would cut the production of offshore rigs, crude oil price rose high since they can not provide enough oil and gas. However, this hurricane suddenly became a tropical depression and those oil companies resumed production at the same time. The consequence was I lost lot of money. That is the reason I think it is so important to develop a hurricane tracker to continuously update the information and therefore inform oil and gas producers the latest information of hurricane. Also, it could be a user friendly financial investment tool to get the tracking information. [website]

Gravity Maze
Dongyuan Zhan
honorable mention

In the game "Gravity Maze", there is a matrix of lattices. There is a ball and a sink. The game objective is to move the ball to the sink. There are some blocks in the maze which will block the movement of the ball. We can rotate the maze using the keyboard "left arrow" and "right arrow", let gravity to move the ball. While the ball is moving, we cannot rotate the maze. When the angle is 0, you can right click on the blocks. The game will ask you whether you want to remove this block; you can also left click on the a blank to add a block. The sink doesnít function as a block. If the ball doesn't stop at the sink, it will not be absorbed. There are 2 levels of this game. If you successfully play one level, the game will ask you whether want to replay or go to the other level. [website]

March Madness Applet
Samantha Mercer
honorable mention

The March Madness Java Applet application is an interactive application developed for the NCAA Division I Men's Basketball Tournament Challenge. Each user will be able to input their bracket play predictions and compare their predictions with the actual tournament results for the chance to be Tournament Champion. Rules and point accumulation will be based on ESPN's tournament challenge. As the tournament moves forward, the accuracy of each user's bracket will be compared to the actual results of the tournament and his/her score will be updated accordingly. [website]

Plane Runner
Anusha Marripudi

This game is a 2D game. In this game, there exists a plane, which runs in a fashionable manner among the applet that is created using java applet. The rectangle shaped structures are placed randomly. The plane moves along the maze type structure such that it should not collide to any of these rectangles. The game ends if any collision occurs. The plane can hit the rectangle shaped structure on any side of the plane. The score of the game increases with respect to the time of the game. As time increase, the speed of the plane increases along the maze. [website]

Expense Tracking Tool
Yilei Jia

This project is an expanse tracking tool that allows users to track spending when it happens. Users can enter expense amount in a input box, enter expense category in a drop list with matching category colors, pick a date using date selector. Users can use File->Open to load previous expenses from a text file with expenses in amount, month, and category format. Output is in a tabbed view while allows users to review results by category in a pie chart or by month in a bar graph. [website]

Maryann Hiller and BJ Takushi

MyPup is a fun JAVA Applet which allows users to determine the dog breed most suitable for their personality and lifestyle. Utilizing concepts and techniques from ISE 582, we created an interactive applet that asks a series of questions that pertain most to an individual in search of a dog. The algorithm we developed takes 13 different items of criteria into consideration when running and generating the recommendation. The quiz is intended to be humorous and informative. [website]

Password hacker
David Tang

Password hacker is a game where the user tries to guess the 10 most common passwords under a 60 second timer. How many passwords you guess correctly will determine your score and level of expertise (novice, intermediate, or expert). [website]

Black Jack
Hani Shageer

The project is centered around creating a BlackJack card game using Java applet. The goal of the game is to come as close or draw 21 without going over. There is only one player in my version of the game, and it is versus the house. If you draw over 21 once you hit you lose, if the house comes closer to 21 than you, you also lose. [website]

BlackSilver RFID Bike Lock Web Interface for DPS
Stephen Lizcano

This project developed a Java front-end for the BlackSilver RFID bike lock system. BlackSilver is an RFID-enabled bike lock that connects remotely to the USC network. This checks to see if the USC ID being scanned is that of a current student.

Fulfilling Dreams: One house at a time
Ali Ansari

The applet is designed to let the user know how much their monthly payments would be on a mortgage. The user can input the interest rate, the length of the loan, as well as the amount of the loan and the program calculates the monthly payment the user would have to make. In addition, a graph is displayed to the user showing how much interest payments they are making each year, and how much principal is being paid each year. This gives the user some notion about how the payment is being distributed so they can get a feel for how their loan is being reduced through the length of the loan. [website]

Job Scheduler
Hamid Hussain

The Job Scheduling Applet is designed to provide completion times for Flow Shop problems for different permutations of the order in which jobs are processed. [website]

Om Greeting Cards
Balasubramanian Vishal and Utsav Shah

The web-based applet allows a user to design his choice of greeting cards for any occasion with an option of adding a personal touch to it. A user is given the option of choosing from a set of pre-designed cards or customize the design according to his preferences. Initially, a set of pre-designed cards are displayed to the user, who either chooses from these options or can decide to create a new card design. The user gets to choose from a variety of customized options like fixed size/custom size, background color, editable text, image to be chosen. Based on this selection a final output can be viewed by user. [website]

Paint My Wall
Ashish Sethia

In a time where everything and everyone has their own website, I just thought of making my website a little different and perhaps more cooler. This was inspired by the graffiti application on facebook. Now I have a tab on my website that says Paint my wall where anyone who visits the website can write something or friends can draw something when they feel like. Currently, the application is pretty basic and involves different brush sizes and colors only but slowly I shall work on it and improve it by adding more stuff. The colors can be changed by ranging the numbers from 0 to 255 and if you need an eraser you can just get it by making all three colors as 255. [website]

code examples

Code examples created during the lectures will be placed in in a directory named following the pattern Examples-mmdd, where mmis the month and dd is the day.

January 29 [java]
Classes Person and Demonstrate illustrate constructors, getters and setters, display instance method

February 05 [java]
Classes Person, Adult, Child, Boy, Record and Demonstrate; illustrate inheritance, privatization, explicit calls to constructors and methods defined in superclasses, abstract classes.

February 19 [java]
Classes Demonstrate and Person (simplified); illustrate arrays and vectors, for and while loops, conditionals.

February 26 [java]
class Demonstrate: read lines from a text file using stream tokenizer, and write the sentences to a text file in reverse order.

March 5 [java]
A fully developed model-view graph application: illustrates frames, components, listeners and adapters, observables, observers

March 26 [java] [applet]
Applet version of the graph application and Resource Locator version of ReverseSentence

April 2 [java] [applet]
Applet version of the SnowFlake application (midterm) with controls, menu, dialogs

April 9 [java] [javadoc]
Javadoc-documented version of the SnowFlake applet (only a few classes, interfaces and methods have doc comments)

April 16 [java] [applet]
Simple thread demonstration; SnowFlake applet with animation, in a JAR file!


essential links

Java SE Documentation (Sun):
JDK 6.0 Documentation (Sun):
Java SE 6.0 Core API Specification (Sun):

USC Information Technology Services:
Unix - basic commands:
Emacs - quick reference:

suggested/recommended readings

Textbook: Patrick Henry Winston and Sundar Narasimhan, On To Java, 3rd Edition, Addison-Wesley, 2001.

automatic disclaimer

arjf © 2010