Old Final Exams


Final Exam - Spring 2009

Its all about me ...

In the past I've had students collect their own data for the final exam and then conduct investigations to answer some questions that I had, like "does the refrigerator get warmer inside if you leave the door open?" or "where are the rogue wireless networks in ERF?" or "what is the magnetic field around a microwave oven?"

This year I found myself asking questions about electricity / water / natural gas usage at home. How much am I using? Have any of the improvements I've put into place (CF lightbulbs, programmable thermostat, etc) made any obvious difference or have they been outweighed by buying a bigger TV and putting in a pond? At the same time I was also curious to know what you could learn about a person from just their utility bills. I decided to combine the 'green' topic and the 'cyber-stalking 101' topic together into this final exam.


I've kept all my old utility (electricity, natural gas, water) bills in a file cabinet in the basement, but I've never actually looked at the numbers, so I grabbed them and typed in the relevant information to create a table containing 10 years of data on:

The data is available here: http://www.evl.uic.edu/aej/526/526finaldata.csv

Electricity is typically billed once a month, but typically every other meter reading is an estimate. Water is typically billed every 2 to 3 months, and natural gas every 1 to 2 months. This makes it harder to see short term trends, but longer term trends should still be visible.

The temperature data in the file comes from the electricity company. I'm not sure how much I trust that data. You might want to get temperature data from another source, and probably in addition to the average also look at the minimum and maximum.



You should start by looking at data itself and do some simple plots in your favourite spreadsheet / plotting program. There will be some obvious cyclical patterns such as air conditioning driving up electricity usage dramatically in the summer and the furnace driving up natural gas usage dramatically in the winter.

Your job is to look beyond the cyclical patterns for longer term trends and aberrations that are hiding there, and see what changes in the real world could have caused them. Some of these changes are related to hot hot a summer was or how cold a winter was, others are related to human behavior. This is where the cyber-stalking / privacy issues part of the project comes in. If you have access to this utility data and can filter out the repeating patterns, and the general environmental changes, can you find interesting events or trends that tell you about the people?

The goal here is to create a set of effective visualizations to aid in your analysis and to back up any conclusions you draw.





- The house stayed basically the same throughout the 10 years of data collection.
- The house uses electricity to run the air conditioner for cooling, and to run the blower on the furnace for heating
- The house uses gas for heating and cooking, and drying laundry


I did some measurements of my electricity usage last month in the spring:

In a common house:
This data should allow you to break up the daily usage into components that can vary over the months and years.




Here are some relevant facts that should give you some things to look for. Many of these I don't remember the dates for. Maybe you can come up with some guesses as to when they happened.

- We replaced our top loading clothes washing machine with a front loading machine
- We switched the house over to CF bulbs
- I had an SGI indy that was running all the time that I turned off. It was replaced by a PC that ran all the time, which was turned off a couple years later. Now all the machines are mac minis or laptops which take much less power.
- There is only one TV in the house but it was replaced/upgraded twice during those 10 years.
- We started using a programmable thermostat to make the air-conditioning and heating less aggressive when no-one was expected to be home
- We started gardening aggressively which used more water. Later we started using mulch and began using much less water for the plants
- We started a 400 gallon pond in 2000 and expanded it to 650 gallons in 2002. Ponds require complete water changes at least a couple times a year. In 2002 we did many water changes as we had a bunch of sick fish in the pond - this is really obvious in the water data.
- We put in a new (more efficient) air conditioner
- We had a couple people staying with us for 3 weeks.

You will very likely need to look up some other reference material on the web about water, gas, and electricity usage. I did. I also found that some sites over-inflate the usage numbers by 50 to 100% compared to the numbers that I was able to measure. I would recommend looking at a few different sites to get a better feeling about what good average numbers might be. Be sure to cite the websites that you use.

You can use whatever software you want to extract the patterns in the data and to visualize the results. Please document this work in your web page. The web page should show visualizations of the data itself, and visualizations of divergence from the norms. Show all the valuable visualizations that you created and used to do your analysis work.

Task #1 - document the repeating seasonal patterns and what affects those patterns (e.g. temperature)

Task #2 - given the results from task #1, document the long term trends and short term variations in those patterns (e.g. given temperature readings and a spreadsheet program, you should be able to work out expected values for gas and electricity usage, and then any variation you see might suggest a human cause.)

Task #3 - given the results from task #2, try to make some hypothesis as to what human activities caused those long term trends or short term variations.



This exam is going out during the Project 3 presentations, and during that time people will have the ability to ask questions in class about the data to try and clarify any questions you have that would help your analysis. I think I've given you all the relevant facts, but maybe I've forgotten something. As you look at the data maybe you will find something in a particualr month/year - ask me about it and I'll see if I can go back through my records and find some event that may be applicable.

Here are some of the dates that I have found:
June 2000 - Air conditioner replaced
July 2004 - New programmable thermostat installed
July 2006 - 2 week trip out of the country
Fall 2006 - Started using mulch and less water in the garden
2007 - Transition to compact fluorescent bulbs
March 2008 - Front loading washer repalces top loading washer




By the beginning fo the final exam period each person should create a web page of their results. Again as usual everyone should send me a 320 x 240 jpg snapshot for the web.

There is no software to turn in for this project, just a series of screen snapshots (possibly from different pieces of software)

During the final exam period itself each student will have 10 minutes to describe their visualization work and their findings.



Final Exam - Spring 2007

Visualizing the Invisible

Since the final exam period can get a bit monotonous if everyone is presenting exactly the same thing, we are going to have a bit of variety in the final exam work and visualizations. Half of the class will investigate sound levels in EVL. Half the class with investigate electromagnetic fields around various household appliances.

I will be supplying the probes for this activity.


Sound Levels in EVL

    In this activity half of the class (5 people) will work together to collect sound level data throughout the main floor of the lab (i.e. the part that is on the second floor of ERF), and then each person will visualize that data on their own. This data will  be collected on an irregular grid based on the various sound levels you find, so more detail can be collected near areas of changing sound levels; the floor tiles make a nice grid. There are lots of machines in the lab that typically generate noise, and we have two anechoic chambers where the audio levels drop below measurable levels, so there is a range of levels in the lab. There are also issues of sound levels at different heights in the lab, so the final datafile generated should have x, y, z coordinates. Since those sound levels are static, this group will also look at how those background sound levels when all the phones in the lab ring. This group may also want to look at the affect of the paper shredder, or the Xbox/wii/PS3, etc.
     We have an existing map of EVL that was generated during a previous version of the class where the students mapped out wireless strength in the lab. That map can be used here.
    As an aside, the anechoic chamber can also be used to measure how loud your cell phone ring is, or how loud you can shout.

maps of evl from a previous class can be found at http://www.evl.uic.edu/rlk/evl/index.html



E/M fields around common appliances

    In this activity half of the class (6 people) will break into three groups of two, and each group will measure the E/M field around a common household item to see what the field looks like. This field will be measured on 3 axis (X, Y, Z for each location.) By default the items to be measured are a microwave oven, hair dryer, and CRT monitor but if there is something else interesting that a group wants to measure that should be OK as well. The E/M field will be measured on a more regular grid. Each person will then create their own visualization based on the data.
    Please do not microwave the sensor.




By the beginning fo the final exam period each person should create a web page of their results including the source code and executable to run their visualization as usual. Again as usual everyone should send me a 320 x 240 jpg snapshot for the web.


In both cases, the various groups should get together ahead of time to plan out the data collection. The audio should be collected either in the evening or on the weekend. when people are not around The E/M data could be collected during the day but it ma be easier during the evening or weekend.


Final Exam - Spring 2005

Andy's Fridge

One thing that you haven't dealt with so far is time varying data, so in this final exam we will do another data collection and visualization assignment on a smaller scale (both in time and space) - in this case measuring the temperature in and around a refrigerator.

We have a set of 10 small 1-Wire temperature sensors that are connected through ethernet cables and then attach to a computer through a USB port. These have an advertised maximum cable run length of 300 meters though we will be working in a much smaller volume. The sensors are also rated to +/- 0.5 degrees C.

There are several places that sell these 1-wire temperature sensors, or you can build them yourself. We bought ours through http://www.pucebaboon.com/

There is some windows software (Version 4.00 beta 4) including an API that works with these sensors at http://www.maxim-ic.com/products/ibutton/software/tmex/index.cfm and I have tried this out and it works for graphically viewing one sensor at a time nicely.

There are also linux based software at http://www.digitemp.com/software.shtml

One job for someone in the class is to find or write a better piece of logging software for the sensors to dump all of the data to a file. This should be pretty easy under linux, or re-writing the java code under windows.

Another job for someone is to do a test to see how fast the sensor responds to temperature change, without hurting the sensor. For example taking the sensor from a known cold temperature to a known hot temperature and seeing how long it takes for the sensor to correctly register the change. For this experiment the temperature should not change very quickly, but its still good to know the limitations of the sensor.

Another job is to decide where to place the sensors. We will investigate several things in the data collection. First, how long does it take a room temperature refrigerator to reach a steady state temperature inside. Second how much heat is generated as a result of this. Finally, once the refrigerator has reached a steady state, what is the effect of opening the door and holding it open while you decide what you want to grab. Was your mother right to tell you not to stand there with the door open? Lets find out. A fridge is also nice for this kind of visualization because part of it gets cold and part of it gets hot.

The default refirgerator for this study (and you can feel free to suggest another one you prefer) is my 20 year old Montgommery Ward compact dorm room fridge. EVL also has a larger fridge with multiple compartments that usually needs to be defrosted, so that may make a more interesting visualization.

There should be some sensors placed inside (say in the general cool area, and in the small colder area, and some placed outside or on the surface. That way some sensors will get colder, some hotter, and others stay the same.


As with the wireless measurements all of the data will be shared with the entire class, and then each person should do their own visualization of the data using vtk.

The compact refrigerator is pretty simple in design so you should be able to use the basic vtk geometry primitives to create one.



During the final exam period each person will give a short 8 minute presentation about their solution, just as for the 3 class projects. Each person should also create the typical project web page with source code and screen snapshots.

Here are some photos taken during the data collection




Final Exam - Spring 2004

For the final exam you will revisit the work you have done already in the class and create a step-by-step tutorial to highlight certain features of vtk and help new users learn to program them.


You can choose either part of project 2 as a basis for your tutorial. That is, you can choose isosurfaces or volume rendering for the topic.

This html (web or cdrom based) tutorial should start with the assumption that the user has vtk correctly installed along with the language of your choice (java, python, visual studio, tk, etc.) The user should then start through a multipart tutorial that begins simply, and by the end has the user with a functional version of that part of the assignment. The entire tutorial should take the user an afternoon to finish. The tutorial should be divided into sections and have headings, and goals for each section.

The tutorial should provide:
- code that can be downloaded or copy and pasted and then run successfully for each step
- links to necessary data files available on the web, or as a CDROM with an html front end
- snapshots of what the code should do (movies if you are really motivated)

Obviously having a lot of good comments in your code is part of this but you should also extract and highlight important sections of your code and describe what they do and what they can allow the user to do. The idea here is to teach what the user can do with vtk, not just what your code does. The code and the examples are the means, not the end on this assignment.

Its probably a good idea to give options at various points in the tutorial along with their results. If we do this we get this result, but if we do this other thing we get that result and then instances where each result may be useful. Highlighting any particularly sneaky wrong things that people may think to do but should not do is also a good idea.

The tutorial should provide some simple user interfaces as well. They do not have to be as complex as the ones from the project assignments but you should not ignore user interfaces in your tutorial. The user should be able to interact with the visualization. You may want to have very simple interfaces at first and then talk more about interfaces at the end of the tutorial, or you can add in new interface capabilities as you go along.


Important point to note:

This tutorial should show your understanding of which vtk tools and filters are used for doing what; and you should be able to present this knowledge in a way that is valuable to a new user who has data to visualize. For example, its not just saying that you should use filter X before filter Y but rather what doing that sequence of filters will allow the user to see in their dataset. Its not just that you 'could' do this with vtk, but 'why would' you do this with vtk.


Also note that you can modify/improve the version of project 2 that you turned in for this final exam.


During the final exam period each person will have 8-10 minutes to describe their tutorial.


We will also have a contest where each of the students gets to vote for the top 3 tutorial web sites from the class for some extra points. You can't vote for your own, and along with your vote you also have to tell me why you think these are the top 3.



last revision 10/25/10