After lots of hard work, I finally submitted the approval form for my thesis this morning.
Actually, I'm not technically done yet. First of all, the form is submitted but there's still an electronic thesis deposit process I have to go through. Also, my advisor still thought that some of the citations weren't adequate, so I agreed not to do the electronic thesis deposit until after I had fixed those issues. Also, I have to make sure that all the documentation for the software is updated. But I can easily do all that from Colorado, and I have plenty of time between now and when my job starts.
Anyway, I'm off to GenCon now, and then on to Colorado! I'll make sure to keep you updated.
Showing posts with label Academics. Show all posts
Showing posts with label Academics. Show all posts
Wednesday, August 3, 2011
Tuesday, May 24, 2011
More Interesting Stuff
A couple days ago I started the Weight Watchers diet program. Weight Watchers is cool because it is based on a point system, where each food has a point value based on the amount of fat, carbs, protein, and fiber, and you can eat whatever food you want provided you stay under the target point value depending on your weight and activity level.
I just finished my classes, so no more tests or exams ever! But I still have plenty of work to do because I have to write a paper for a conference which is due on July 6, and then I have to expand that paper into a thesis which is due on August 8.
Today in the mall in Champaign I found a stall selling "Power Balance" bracelets which are similar to the bracelets I mentioned in the previous post in that they work by the placebo effect. They cost about $30, but you can save a lot of money and buy functionally equivalent "placebo bands" here.
Another thing I am planning to do more often on this blog is to post links to other web sites which I find interesting. One interesting web site I found is Cheap Talk, a blog written by two economists. They have lots of discussions of economic theory applied to a variety of topics including game theory and ticket scalping. (Under the "game theory" tag if you scroll down you will see a post called "how to get bumped" about how to score free airline tickets, and below that is one about ticket prices in restaurants which is also interesting.)
I just got an email asking me to support Illinois athletics by switching my energy provider to "Fighting Illini Energy." One of the options that they say they offer is the ability to choose a plan that provides 50% or 100% of your energy from renewable energy sources. (What does that even mean? I mean, isn't electricity fungible? All of it goes from the power plants, onto the grid, and then into your home. I didn't even think it was possible to track a particular "unit" of electricity from the power plant to your home.)
The gaming club on Saturdays at UIUC is still going on over the summer. Since it is summer the building we normally play in - the English Building - was locked so we ad to go into the student unoin. The only problem was that the area of the student union we played in had a TV tuned to MTV, so whenever a song came on that any of the other players had heard before, they would all start singing along and making lots of noise, and they kept doing that even after I asked them to stop several times. Apparently they thought it was funny. I think what I will do next time is say something like "Let's say you had a friend who was in a wheelchair, and you kept taking the wheelchair away so he couldn't get around. Now maybe you might think it was funny but probably he wouldn't think it was funny. So just like some people have a hard time getting around without wheelchairs, I have a hard time playing games when everyone is making lots of noise. Maybe you might think it's funny to make lots of noise so I can't concentrate, but I don't think it is funny."
I just finished my classes, so no more tests or exams ever! But I still have plenty of work to do because I have to write a paper for a conference which is due on July 6, and then I have to expand that paper into a thesis which is due on August 8.
Today in the mall in Champaign I found a stall selling "Power Balance" bracelets which are similar to the bracelets I mentioned in the previous post in that they work by the placebo effect. They cost about $30, but you can save a lot of money and buy functionally equivalent "placebo bands" here.
Another thing I am planning to do more often on this blog is to post links to other web sites which I find interesting. One interesting web site I found is Cheap Talk, a blog written by two economists. They have lots of discussions of economic theory applied to a variety of topics including game theory and ticket scalping. (Under the "game theory" tag if you scroll down you will see a post called "how to get bumped" about how to score free airline tickets, and below that is one about ticket prices in restaurants which is also interesting.)
I just got an email asking me to support Illinois athletics by switching my energy provider to "Fighting Illini Energy." One of the options that they say they offer is the ability to choose a plan that provides 50% or 100% of your energy from renewable energy sources. (What does that even mean? I mean, isn't electricity fungible? All of it goes from the power plants, onto the grid, and then into your home. I didn't even think it was possible to track a particular "unit" of electricity from the power plant to your home.)
The gaming club on Saturdays at UIUC is still going on over the summer. Since it is summer the building we normally play in - the English Building - was locked so we ad to go into the student unoin. The only problem was that the area of the student union we played in had a TV tuned to MTV, so whenever a song came on that any of the other players had heard before, they would all start singing along and making lots of noise, and they kept doing that even after I asked them to stop several times. Apparently they thought it was funny. I think what I will do next time is say something like "Let's say you had a friend who was in a wheelchair, and you kept taking the wheelchair away so he couldn't get around. Now maybe you might think it was funny but probably he wouldn't think it was funny. So just like some people have a hard time getting around without wheelchairs, I have a hard time playing games when everyone is making lots of noise. Maybe you might think it's funny to make lots of noise so I can't concentrate, but I don't think it is funny."
Wednesday, March 16, 2011
Job Search
So, last week I made my decision: I will be switching to a Masters degree program. This does mean that I won't get to do that internship at Lawrence Livermore, because the internship requires that you commit to staying in school through the Fall semester. This actually turns out to be okay because I will get to stay at school through August to finish up my thesis. There's a fair bit of work still left; I have to finish up all the remaining programming work, write documentation on all my code so that my replacement can figure out what's going on after I leave, and of course write the actual thesis. Also, I have started to look for full-time jobs for after school.
I went to the Engineering Career Services office and got my resume and cover letter looked at, and they basically had me rewrite the whole thing using the format described in the career guide, which made it look much better. I took the new resume and cover letter over to the Graduate College's career services office, and they told me that my resume and cover letter looked very good, and they only had a couple minor stylistic changes. I searched for jobs online and through job posting on bulletin boards in the Computer Science department. So far I have submitted resumes to 9 companies, and have gotten phone interview requests from 2 of them. One of them was MathWorks, which makes Matlab. Another was Palantir Technologies, which makes a data analysis and visualization platform (read the web site if you are interested). They wanted to interview me for a "Business Development" position, and I'm very interested in what that position entails. I'll report back when I see how the interviews go.
And one more thing. When I was in elementary school and people asked me what I wanted to be when I grew up, I would answer "math test-question editor", because I took lots of math tests like the Math Olympiad during that time and often I found the test questions ambiguous. During my online job search, I found an online job advertisement for a math test-question editor. But things have changed a lot in the past 15 years, and I decided not to apply for that job.
I went to the Engineering Career Services office and got my resume and cover letter looked at, and they basically had me rewrite the whole thing using the format described in the career guide, which made it look much better. I took the new resume and cover letter over to the Graduate College's career services office, and they told me that my resume and cover letter looked very good, and they only had a couple minor stylistic changes. I searched for jobs online and through job posting on bulletin boards in the Computer Science department. So far I have submitted resumes to 9 companies, and have gotten phone interview requests from 2 of them. One of them was MathWorks, which makes Matlab. Another was Palantir Technologies, which makes a data analysis and visualization platform (read the web site if you are interested). They wanted to interview me for a "Business Development" position, and I'm very interested in what that position entails. I'll report back when I see how the interviews go.
And one more thing. When I was in elementary school and people asked me what I wanted to be when I grew up, I would answer "math test-question editor", because I took lots of math tests like the Math Olympiad during that time and often I found the test questions ambiguous. During my online job search, I found an online job advertisement for a math test-question editor. But things have changed a lot in the past 15 years, and I decided not to apply for that job.
Thursday, March 3, 2011
The results are in
I have two pieces of good news to report:
First, I passed my qual! I haven't got the “official” announcement yet but Jeff told me that the qual has been graded and I passed it.
Second, all the votes are in and I am now going to be an official member of House Valdemar in Belegarth. They are in the process of making the special tunic for me and I will have an official “initiation ritual” next Saturday, March 12.
EDIT: I typed "not" instead of "now" before.
Saturday, February 19, 2011
The qual is finally done!
I had my qual exams this Thursday and Friday. According to the qual web site, normally the qual has 8 questions on it, and a passing score requires "nearly perfect" answers to about 3 of the questions and partial answers to 3 more. This time there were 10 questions on the qual, and I was able to get complete answers to 5 of them and partial answers to 4 more of them. So I think I passed, though I won't know for sure until the results come in, probably next week.
One thing that this does mean for the blog is that you will get to see more of my "Gaming Math" problems. The main reason I haven't been able to put up more of those problems recently is not because I haven't played any games with interesting math or computer science problems in them, but rather because most of the time I can't actually solve the problems I come up with. But preparing for the qual has helped me get better at solving those kinds of problems so that means that you will see more of them.
Here is a problem:
Gaming Math - Problem 15: "For Science!"
In the board game "Battlestations," players control crew members aboard a spacecraft, and they are sent on dangerous missions. In one of the missions, the players are trapped in a region of space containing N wormholes, and the only way to get out is to go through the wormholes in a specified sequence. The only way of finding out what that sequence is is by using the ship's Science Bay, which allows the player to ask any yes-or-no question about the sequence.
1. In the scenario described in the game, N=4. What is the minimum number of questions required to guarantee figuring out the correct sequence?
2. For an arbitrary N, what is the minimum number of questions required? Find an algorithm that achieves this minimum number, and prove its optimality.
(Hint: Don't forget that you can ask any yes-or-no question about the sequence.)
The answer is here.
One thing that this does mean for the blog is that you will get to see more of my "Gaming Math" problems. The main reason I haven't been able to put up more of those problems recently is not because I haven't played any games with interesting math or computer science problems in them, but rather because most of the time I can't actually solve the problems I come up with. But preparing for the qual has helped me get better at solving those kinds of problems so that means that you will see more of them.
Here is a problem:
Gaming Math - Problem 15: "For Science!"
In the board game "Battlestations," players control crew members aboard a spacecraft, and they are sent on dangerous missions. In one of the missions, the players are trapped in a region of space containing N wormholes, and the only way to get out is to go through the wormholes in a specified sequence. The only way of finding out what that sequence is is by using the ship's Science Bay, which allows the player to ask any yes-or-no question about the sequence.
1. In the scenario described in the game, N=4. What is the minimum number of questions required to guarantee figuring out the correct sequence?
2. For an arbitrary N, what is the minimum number of questions required? Find an algorithm that achieves this minimum number, and prove its optimality.
(Hint: Don't forget that you can ask any yes-or-no question about the sequence.)
The answer is here.
Monday, February 14, 2011
More school stuff
- I have just finished creating, assigning, collecting, and grading the first homework assignment of the year as a TA. This homeowrk was about formal logic, including propositional and first-order logic. (Propositional logic just has variables which can be either true or false, while first-order logic allows variables to be arbitrary objects, there are "predicates" that are basically functions which take objects as arguments and return a boolean variable, and there are "quantifiers" which allow you to say things like "for any X, P(X) is true" or "there exists an X such that Q(X) is true". We thought this part would just be review (these are Masters students in computer science, so we thought they would already know about logic) but some of them had trouble with simple things like the difference between validity (statement is true all the time regardless of the values of the variables) and satisfiability (statement is true for some assignment of values to the variables.) In fact one of the problems we had to "cancel" and make it an extra credit problem because it had to do with proofs in first-order logic, a topic we didn't cover (I didn't realize that we weren't going to cover it when I wrote the homework, and the professor didn't notice when he was looking at the homework before posting it)
- I have my Ph.D. qualifying examination this Thursday and Friday. I have looked at most of the previous quals and it seems like I pretty well prepared for it. Another thing is even if I do decide to only get a Masters degree, passing the qual is a good idea because if I pass the qual I am exempt from the distributional requirements for a Masters (there are still two distributional requirements, hardware and systems, that I haven't taken courses in so I would need to do that if I were to go that route).
- I have my Ph.D. qualifying examination this Thursday and Friday. I have looked at most of the previous quals and it seems like I pretty well prepared for it. Another thing is even if I do decide to only get a Masters degree, passing the qual is a good idea because if I pass the qual I am exempt from the distributional requirements for a Masters (there are still two distributional requirements, hardware and systems, that I haven't taken courses in so I would need to do that if I were to go that route).
Wednesday, May 5, 2010
Updates on school
I will post the latest update on the superhero game soon but I have other things to talk about - like the fact that I just finished my last class of the school year! Of course school is not yet done - there are still the final exams and final project.
Also, I am making more progress toward finding a research advisor;. I talked to Sheldon Jacobson and he gave me some interesting papers to read. Also, Roy Campbell said he would set up a meeting between me and some people in the Beckman Institute because it looks like there is really cool stuff going on there, although that hasn't been done yet. Also, I went to a guest lecture by Eric Brewer of Berkeley about technology in developing countries (just look on his web site for some of the projects his group has done). That lecture definitely inspired me to start looking for projects that, like those, can have a major social impact in the real world rather than just publishing papers. (This doesn't necessarily have to involve developing countries, at least not directly: computational methods are also used in other important application areas such as energy and the environment.) I don't believe there are any computer science research groups at UIUC looking at developing countries, but Roy Campbell has previously advised a project along those lines so at least he would know where to start. I am planning on talking to him again a couple weeks from now; I'll post again when I know more.
Also, I am making more progress toward finding a research advisor;. I talked to Sheldon Jacobson and he gave me some interesting papers to read. Also, Roy Campbell said he would set up a meeting between me and some people in the Beckman Institute because it looks like there is really cool stuff going on there, although that hasn't been done yet. Also, I went to a guest lecture by Eric Brewer of Berkeley about technology in developing countries (just look on his web site for some of the projects his group has done). That lecture definitely inspired me to start looking for projects that, like those, can have a major social impact in the real world rather than just publishing papers. (This doesn't necessarily have to involve developing countries, at least not directly: computational methods are also used in other important application areas such as energy and the environment.) I don't believe there are any computer science research groups at UIUC looking at developing countries, but Roy Campbell has previously advised a project along those lines so at least he would know where to start. I am planning on talking to him again a couple weeks from now; I'll post again when I know more.
Saturday, January 23, 2010
Superheroes, classes, and math, part 2
So after the first week of classes, and the character creation session for the superhero game, here is what has happened:
- I don't have anything particularly interesting to say about Stephen Bond yet.
- Steve LaValle is kind of a funny professor. The first day in class he said that "normally I try not to stay too close to the book, but in this case I am kind of confused as to whether I should do that, because I wrote the book." Also he had us look through the book and vote (by email) on which chapters we want him to focus on for the class. Not everyone turned their vote in on time, so he said that "just like real elections, we have low voter turnout here" and joked that "actually, I'll just ignore the voting and do whatever I want, just like the real government."
- Jeff Erickson called me a "great graduate student" on his web page.
- At Armored Gopher Games we had our character creation session for the superhero game. I had to take a cab there because my bike got a flat tire. But it was really cool and people had lots of funny superhero ideas. One of the superhero ideas was an alien who was given superpowers and sent to Earth to live among the humans as part of a "reality show." One of the character's disadvantages is that occassionally the "producers" will teleport him to a "more interesting" location, or teleport him back to the mothership to alter his powers. My idea was a "gadgeteer" type character who has an army of robotic UAVs (unmanned aerial vehicles) that will help him - like a "combat" one that has powerful attacks and a "scout" one that has stealth and detection powers. Dave said that this was a good idea for a character, but warned me that the focus of the game was on the heroes, and if the robots took up too much of the spotlight, he would find ways of disabling them.
- I don't have anything particularly interesting to say about Stephen Bond yet.
- Steve LaValle is kind of a funny professor. The first day in class he said that "normally I try not to stay too close to the book, but in this case I am kind of confused as to whether I should do that, because I wrote the book." Also he had us look through the book and vote (by email) on which chapters we want him to focus on for the class. Not everyone turned their vote in on time, so he said that "just like real elections, we have low voter turnout here" and joked that "actually, I'll just ignore the voting and do whatever I want, just like the real government."
- Jeff Erickson called me a "great graduate student" on his web page.
- At Armored Gopher Games we had our character creation session for the superhero game. I had to take a cab there because my bike got a flat tire. But it was really cool and people had lots of funny superhero ideas. One of the superhero ideas was an alien who was given superpowers and sent to Earth to live among the humans as part of a "reality show." One of the character's disadvantages is that occassionally the "producers" will teleport him to a "more interesting" location, or teleport him back to the mothership to alter his powers. My idea was a "gadgeteer" type character who has an army of robotic UAVs (unmanned aerial vehicles) that will help him - like a "combat" one that has powerful attacks and a "scout" one that has stealth and detection powers. Dave said that this was a good idea for a character, but warned me that the focus of the game was on the heroes, and if the robots took up too much of the spotlight, he would find ways of disabling them.
Tuesday, January 19, 2010
Superheroes, classes, and math
Today is the first day of classes at UIUC. I didn't have any classes today because all my classes are on Mondays, Wednesdays, and Fridays. In addition to working as a research assistant for Jeff Erickson, I am also taking two courses: Planning Algorithms with Steven LaValle and Numerical Analysis with Stephen Bond.
Additionally, on the gaming front, I'm about to start playing in a new role playing game campaign run by Dave, the owner of Armored Gopher Games. The game is going to be a superhero game, based on a rule set called the HERO System. The unique part about the HERO System is that unlike games such as Dungeons and Dragons where you have to pick from a given list of powers, in the HERO System there is a point system where you spend "character points" to create your own powers by picking from a list of effects (like "ranged killing attack", "energy blast," "entangle," and "transform,") and add in "advantages" and "limitations" to improve or restrict your powers (such as "armor piercing," "limited number of charges," or "reduced endurance cost.") As you can probably guess, there is a lot of math involved in this, which is why I'm excited about it. For example here is an actual conversation about one of the powers in the game, which allows you to have a group of "followers."
Me: "So, if you build your follower as an N-point character, you can have (2^k) of those followers for a point cost of (N/5)+5k, right?" (I am writing this formula on the whiteboard)
Dave: "That could be right, I don't know. You're talking in a foreign language to me. That's math. I don't speak math."
Me: (Pointing to a page in the rule book) "It says in the rule book that the follower costs 1 point for every 5 points it's built on, and you can double the number of followers by spending 5 points extra. Like it says in this example, if the follower is a 200-point character, he costs 40 points, and you can get two of him for 45, or four of him for 50, etc."
Dave: "Yes that sounds about right."
Anyway, we're going to be finalizing our characters on January 23rd, and then the actual game is going to start the second Saturday in February. I will post more on my blog about any more superhero action!
Additionally, on the gaming front, I'm about to start playing in a new role playing game campaign run by Dave, the owner of Armored Gopher Games. The game is going to be a superhero game, based on a rule set called the HERO System. The unique part about the HERO System is that unlike games such as Dungeons and Dragons where you have to pick from a given list of powers, in the HERO System there is a point system where you spend "character points" to create your own powers by picking from a list of effects (like "ranged killing attack", "energy blast," "entangle," and "transform,") and add in "advantages" and "limitations" to improve or restrict your powers (such as "armor piercing," "limited number of charges," or "reduced endurance cost.") As you can probably guess, there is a lot of math involved in this, which is why I'm excited about it. For example here is an actual conversation about one of the powers in the game, which allows you to have a group of "followers."
Me: "So, if you build your follower as an N-point character, you can have (2^k) of those followers for a point cost of (N/5)+5k, right?" (I am writing this formula on the whiteboard)
Dave: "That could be right, I don't know. You're talking in a foreign language to me. That's math. I don't speak math."
Me: (Pointing to a page in the rule book) "It says in the rule book that the follower costs 1 point for every 5 points it's built on, and you can double the number of followers by spending 5 points extra. Like it says in this example, if the follower is a 200-point character, he costs 40 points, and you can get two of him for 45, or four of him for 50, etc."
Dave: "Yes that sounds about right."
Anyway, we're going to be finalizing our characters on January 23rd, and then the actual game is going to start the second Saturday in February. I will post more on my blog about any more superhero action!
Saturday, October 17, 2009
Goings on at school
I have blogged enough about gaming for now so I will telll you what has been going on at school laterly.
I got the grade on my midterm back in Algorithms. I got 96 out of 100 (the highest grade in the class).
Also I am taking the mandatory CS 591-PHD orientation course, where each week they have a different guest speaker. We have had some cool lectures with some very distinguished lecturers, includnig Dan Reed who told us about high performance computing research going on at Microsoft, and Bill Gropp who told us about the new "Blue Waters" project at UIUC. Blue Waters is slated to be the most powerful supercomputer in the world, with the computing power of over 1 million laptops, and is scheduled to be completed sometime in 2011.
One interesting fact: part of the reason they are building Blue Waters at UIUC is because of the cold climate in Illinois. Supercomputers generate large quantities of heat and thus need to be cooled to avoid overheating and burning out, and that costs a lot of energy. Dan Reed also talked about this problem in regards to large corporate data centers. In fact, he told us, some corporations are discovering that in some cases it is actually cheaper to not even bother with extra cooling and simply replace computers as they fail rather than spend lots of electricity cooling them all. (That solution would not work for Blue Waters because unlike data centers that have lots of separate, redundant computers, Blue Waters is all connected and one part failing could ruin any computation that is in progress.)
On the other hand, this is probably not a good cooling solution for any large-scale computing application.
I got the grade on my midterm back in Algorithms. I got 96 out of 100 (the highest grade in the class).
Also I am taking the mandatory CS 591-PHD orientation course, where each week they have a different guest speaker. We have had some cool lectures with some very distinguished lecturers, includnig Dan Reed who told us about high performance computing research going on at Microsoft, and Bill Gropp who told us about the new "Blue Waters" project at UIUC. Blue Waters is slated to be the most powerful supercomputer in the world, with the computing power of over 1 million laptops, and is scheduled to be completed sometime in 2011.
One interesting fact: part of the reason they are building Blue Waters at UIUC is because of the cold climate in Illinois. Supercomputers generate large quantities of heat and thus need to be cooled to avoid overheating and burning out, and that costs a lot of energy. Dan Reed also talked about this problem in regards to large corporate data centers. In fact, he told us, some corporations are discovering that in some cases it is actually cheaper to not even bother with extra cooling and simply replace computers as they fail rather than spend lots of electricity cooling them all. (That solution would not work for Blue Waters because unlike data centers that have lots of separate, redundant computers, Blue Waters is all connected and one part failing could ruin any computation that is in progress.)
On the other hand, this is probably not a good cooling solution for any large-scale computing application.
Saturday, September 5, 2009
Independent Study
This semester I have decided to do an independent study with Professor Jeff Erickson.
The project we are working on (like several of the projects I have worked on in the past) involves numerical simulations of physical systems. Consider a function F(x,t) which represents the value of a particular physical variable at a particular point in space (x) at a given time (t). For example, in an application modeling heat transfer, F could represent the temperature at a given point in the material. The function F is defined by a set of initial conditions (at t=0) and then a set of differential equations that define how the value of F at each point x changes over time. The goal is to calculate (or at least estimate) the values of F over time.
Of course there are an infinite number of different values of X, and so an infinite number of variables to track. In order to solve this problem it is necessary to divide the region of interest up into a large number of smaller "cells," and keep track of one value at each cell. The pattern of cells is referred to as a "mesh". In a one dimensional case the "mesh" is trivial, but in a two dimensional problem there are lots of different mesh patterns, such as a square grid or a triangular grid. (I worked on a project with exactly this theme several years ago.)
One way of understanding the point of the "mesh" is by analogy to wargames like Dungeons + Dragons. In a real battle, movement is continuous, but in the game it is necessary to approximate that continuous movement by a discrete grid. And the shape of that grid (square in D+D, hexagonal in many other war games) is like the "mesh", and each point in that mesh is dealt with separately.
Of course in real life time is also continuous, so there are an infinite number of points in time. So just like with space, it is necessary to approximate the continuous time interval with a set of discrete points in time.The standard way of solving these problems doing this is to choose a "time step" dt - so for example if dt=6 seconds, you calculate the values of F at t=6 based on the values at t=0, then repreat the process to get the values at t=12 from t=6, and so on. (To continue with the D+D analogy, in a real life battle things are happening continuously in real-time, but the game divides up the time into a series of discrete "combat rounds".)
Now we come to the main part of our project. The part of our project that is different is to, rather than choose a mesh once and do a series of iterations where the time increases by dt each time, you keep track of a separate value of t for each vertex in the mesh, and increase the t value one vertex at a time. The advantage of doing this is that in many applications, there's a known maximum speed at which effects can propagate, and you can use this to limit the number of simultaneous equations that it is necessary to solve. Suppose that the equations are modeling sound waves, and the speed of sound in the material in question is 1000 meters per second, and suppose that the cells are spaced 1 meter apart. Then if, you use a dt of 0.001 seconds, then in one time step effects can propagate at most one mesh cell, so at each step rather than having to solve simultaneous equations for all the cells in the mesh, you only have to do so for one cell and its nearest neighbors, because those are the only cells that can affect the given vertex. This can significantly speed up the algorithm, and it also allows you to take better advantage of multiple processors, because different processors can be working on different parts of the mesh.
As for the D+D analogy for that, this is more of a stretch but here goes. Let's say you have a gigantic battle with 100 different characters arranged in a 10x10 array, and let's say each character only has powers that can affect other characters adjacent to him, and none of them can move.* Of course this battle is going to be slow going because once one person declares his actions he has to wait for 99 other characters to declare their actions before they can go do them and start theire next round. But as it turns out you don't need to keep everyone in sync like that - you can have some players start their second and subsequent rounds even before everyone finishes their first round. This is possible for the slow speed of interaction - since it will take nine rounds for anything happening in, say, the top left corner of the board to affect the character in he bottom right corner, one of those corners can be up to nine rounds "ahead" of the other and the game will still work just as normal. Basically, let's say that the guy in the top left corner just finished his 10th round while the guy in the bottom right corner is still deciding on his action for the 5th round. This will still work because the bottom right guy's 5th round action won't affect the first guy until at least the 14th round (it has to get through nine intervening spaces at one space per round), so he doesn't need to know about it yet. The condition that the "time difference" between two cells is no greater than the time it takes for information to move between them is known as the "causality" constraint.
However, there is an important complication. It is possible in certain circumstances, depending on how the mesh is laid out, to get "stuck" - i.e. there is no way to progress any vertex without violating a causality constraint.** If this happens then you have to (at least temporarily) go back to the original method of pushing up all the vertices at once*** (this is analogous to having everyone take their turns in sync, in the previous analogy). The problem is how to progress in such a way that you avoid getting stuck. There are also lots of other complications, like it you want to refine (i.e. make denser) a part of the mesh in the middle of the program execution, etc.
There is already a program that does this, and a paper about it, for the case of two dimensional meshes. The part that remains to be done is doing this for three dimensional meshes. Some of the algorithm design work is already done so a lot of the work is just coding it up (but after that we'll get to the other parts where the algorithms that are needed are not known yet).
In Erickson's words, "most computer science Ph.D. students can't program their way out of a wet paper bag, and that applies to most computer science professors as well.****" Since I am not one of those "most computer science Ph.D. students" he thought it would be a good idea for me to work for him.
---
* This analogy is technically inaccurate because in D+D, each player's turn happens sequentially, so A can do something to affect B, then that affects what B does, which affects C, so C chooses an action which affects D, and so on, all in the space of one round. For this analogy to work you have to assume that all turns happen simultaneously so that each link in the chain requires another round.
** It might appear that it is never possible to get stuck - if you increment the t value on the vertex that currently has the lowest t value, then you're not increasing any gaps. The explanation is that my description is significantly simplified - in reality it's not actually about the difference between the t values of the vertices, it has to do with the slopes of the sides of the "cells" in the n+1 dimensional space consisting of the n space dimensions plus the time dimension. But I couldn't figure out how to explain that part concisely and this post is long enough as it is.
***I'm actually not 100% sure how this part works. I just talked to Erickson yesterday and haven't read the papers yet.
****Erickson is not the first of my professors to express a similar sentiment. University of Maryland professor Samir Khuller said that when people find out that he is a computer science professor, sometimes that ask him to help fix their computer, and he says that "I can't even fix my own computer, how can I fix yours?" Michelle Hugue even once said that she "hates computers."
The project we are working on (like several of the projects I have worked on in the past) involves numerical simulations of physical systems. Consider a function F(x,t) which represents the value of a particular physical variable at a particular point in space (x) at a given time (t). For example, in an application modeling heat transfer, F could represent the temperature at a given point in the material. The function F is defined by a set of initial conditions (at t=0) and then a set of differential equations that define how the value of F at each point x changes over time. The goal is to calculate (or at least estimate) the values of F over time.
Of course there are an infinite number of different values of X, and so an infinite number of variables to track. In order to solve this problem it is necessary to divide the region of interest up into a large number of smaller "cells," and keep track of one value at each cell. The pattern of cells is referred to as a "mesh". In a one dimensional case the "mesh" is trivial, but in a two dimensional problem there are lots of different mesh patterns, such as a square grid or a triangular grid. (I worked on a project with exactly this theme several years ago.)
One way of understanding the point of the "mesh" is by analogy to wargames like Dungeons + Dragons. In a real battle, movement is continuous, but in the game it is necessary to approximate that continuous movement by a discrete grid. And the shape of that grid (square in D+D, hexagonal in many other war games) is like the "mesh", and each point in that mesh is dealt with separately.
Of course in real life time is also continuous, so there are an infinite number of points in time. So just like with space, it is necessary to approximate the continuous time interval with a set of discrete points in time.The standard way of solving these problems doing this is to choose a "time step" dt - so for example if dt=6 seconds, you calculate the values of F at t=6 based on the values at t=0, then repreat the process to get the values at t=12 from t=6, and so on. (To continue with the D+D analogy, in a real life battle things are happening continuously in real-time, but the game divides up the time into a series of discrete "combat rounds".)
Now we come to the main part of our project. The part of our project that is different is to, rather than choose a mesh once and do a series of iterations where the time increases by dt each time, you keep track of a separate value of t for each vertex in the mesh, and increase the t value one vertex at a time. The advantage of doing this is that in many applications, there's a known maximum speed at which effects can propagate, and you can use this to limit the number of simultaneous equations that it is necessary to solve. Suppose that the equations are modeling sound waves, and the speed of sound in the material in question is 1000 meters per second, and suppose that the cells are spaced 1 meter apart. Then if, you use a dt of 0.001 seconds, then in one time step effects can propagate at most one mesh cell, so at each step rather than having to solve simultaneous equations for all the cells in the mesh, you only have to do so for one cell and its nearest neighbors, because those are the only cells that can affect the given vertex. This can significantly speed up the algorithm, and it also allows you to take better advantage of multiple processors, because different processors can be working on different parts of the mesh.
As for the D+D analogy for that, this is more of a stretch but here goes. Let's say you have a gigantic battle with 100 different characters arranged in a 10x10 array, and let's say each character only has powers that can affect other characters adjacent to him, and none of them can move.* Of course this battle is going to be slow going because once one person declares his actions he has to wait for 99 other characters to declare their actions before they can go do them and start theire next round. But as it turns out you don't need to keep everyone in sync like that - you can have some players start their second and subsequent rounds even before everyone finishes their first round. This is possible for the slow speed of interaction - since it will take nine rounds for anything happening in, say, the top left corner of the board to affect the character in he bottom right corner, one of those corners can be up to nine rounds "ahead" of the other and the game will still work just as normal. Basically, let's say that the guy in the top left corner just finished his 10th round while the guy in the bottom right corner is still deciding on his action for the 5th round. This will still work because the bottom right guy's 5th round action won't affect the first guy until at least the 14th round (it has to get through nine intervening spaces at one space per round), so he doesn't need to know about it yet. The condition that the "time difference" between two cells is no greater than the time it takes for information to move between them is known as the "causality" constraint.
However, there is an important complication. It is possible in certain circumstances, depending on how the mesh is laid out, to get "stuck" - i.e. there is no way to progress any vertex without violating a causality constraint.** If this happens then you have to (at least temporarily) go back to the original method of pushing up all the vertices at once*** (this is analogous to having everyone take their turns in sync, in the previous analogy). The problem is how to progress in such a way that you avoid getting stuck. There are also lots of other complications, like it you want to refine (i.e. make denser) a part of the mesh in the middle of the program execution, etc.
There is already a program that does this, and a paper about it, for the case of two dimensional meshes. The part that remains to be done is doing this for three dimensional meshes. Some of the algorithm design work is already done so a lot of the work is just coding it up (but after that we'll get to the other parts where the algorithms that are needed are not known yet).
In Erickson's words, "most computer science Ph.D. students can't program their way out of a wet paper bag, and that applies to most computer science professors as well.****" Since I am not one of those "most computer science Ph.D. students" he thought it would be a good idea for me to work for him.
---
* This analogy is technically inaccurate because in D+D, each player's turn happens sequentially, so A can do something to affect B, then that affects what B does, which affects C, so C chooses an action which affects D, and so on, all in the space of one round. For this analogy to work you have to assume that all turns happen simultaneously so that each link in the chain requires another round.
** It might appear that it is never possible to get stuck - if you increment the t value on the vertex that currently has the lowest t value, then you're not increasing any gaps. The explanation is that my description is significantly simplified - in reality it's not actually about the difference between the t values of the vertices, it has to do with the slopes of the sides of the "cells" in the n+1 dimensional space consisting of the n space dimensions plus the time dimension. But I couldn't figure out how to explain that part concisely and this post is long enough as it is.
***I'm actually not 100% sure how this part works. I just talked to Erickson yesterday and haven't read the papers yet.
****Erickson is not the first of my professors to express a similar sentiment. University of Maryland professor Samir Khuller said that when people find out that he is a computer science professor, sometimes that ask him to help fix their computer, and he says that "I can't even fix my own computer, how can I fix yours?" Michelle Hugue even once said that she "hates computers."
Thursday, August 20, 2009
Registering for classes
This past week I have been meeting with various computer science professors in order to decide which classes to sign up for.
The first professor I met with was Michael Heath. I chose him because he works in the field of scientific computing, an area that I have done research and taken courses in in the past and so I might want to have him as my advisor. However he is not teaching any courses this semester. He did however give me a list of courses that I might want to take.
Another professor who I may want to work with is Steven LaValle. His research is in motion-planning algorithms for robots, and has a really cool lab with robots and obstacle courses for the robots to navigate around. I have already read much of the textbook he wrote on the topic. As it turns out, a lot of the problems that need to be solved in order to navigate robots are very similar to the types of problems that are solved in numerical and scientific computing. For example, robot motion planning problems are frequently modeled by specifying a set of parameters that describes a particular configuration of the robot (e.g. the displacement and rotation angles of each of the robot's joints) and then using a sampling method to search through the space of all possible parameters to find a path from the origin to the destination point. This is similar in some ways to numerical optimization problems where the goal is to search through a space of variables in order to find the variable values that optimize an objective function.
Unfortunately, LaValle isn't here this week so I couldn't talk to him. However I did also talk to another professor, Chandra Chekuri, who advised me to take two courses that would be useful in both the scientific computing and robotics fields - Topics in Algorithms and Discrete Mathematics - and also take some seminar courses where I can learn about different research areas. I also met with the director of the graduate program, Roy Campbell, who thought that that plan was a good idea.
Wednesday, August 12, 2009
Events coming up
Now that I am in my apartment in Illinois, I got a sheet indicating that there are several events coming up on campus. I will blog about them after they happen.
The schedule is as follows:
August 14 - Pizza night with other graduate students
August 16 - "Fun Night" sponsored by International Student and Scholar Services
August 17-21 - Meetings with faculty advisors & get signed up for classes
August 23 - QUAD Day: Learn about student organizations and entertainment available on campus
August 24 - First day of classes!
August 28 - "Meet and Greet BBQ" with faculty, staff, and other students in CS Department
The schedule is as follows:
August 14 - Pizza night with other graduate students
August 16 - "Fun Night" sponsored by International Student and Scholar Services
August 17-21 - Meetings with faculty advisors & get signed up for classes
August 23 - QUAD Day: Learn about student organizations and entertainment available on campus
August 24 - First day of classes!
August 28 - "Meet and Greet BBQ" with faculty, staff, and other students in CS Department
Wednesday, May 6, 2009
Graduation Information
Graduation information is as follows:
Gemstone Citation Ceremony:
Wednesday, May 20, 4:30 PM (parking starts at 4:00 PM)
Memorial Chapel
No tickets required
Main Commencement Ceremony:
Thursday, May 21, 7:00 PM (students arrive at 5:45 PM)
Comcast Center
Tickets required - I have tickets for myself + 7 guests
College of CMPS Ceremony:
Friday, May 22, 9:00 AM
Reckord Armory
No tickets required
Gemstone Citation Ceremony:
Wednesday, May 20, 4:30 PM (parking starts at 4:00 PM)
Memorial Chapel
No tickets required
Main Commencement Ceremony:
Thursday, May 21, 7:00 PM (students arrive at 5:45 PM)
Comcast Center
Tickets required - I have tickets for myself + 7 guests
College of CMPS Ceremony:
Friday, May 22, 9:00 AM
Reckord Armory
No tickets required
Thursday, April 16, 2009
Academics: Part 4 of 5: "Chaos Theory"
My next post is about a very interesting class:
Chaos Theory with Denny Gulick
You're probably wondering what we actually learn about in "chaos theory." The math behind chaos theory has to do mostly with iterated function systems. Meaning, if you have a function f(x) and an initial value x_0, then if you form the sequence x_1 = f(x_0), x_2 = f(x_1), x_3 = f(x_2) etc. you can look at properties of this sequence - whether it converges to one value, osciallates between two or more values, goes off to infinity, etc. Even simple functions like the logistic map (f(x) = kx(1-x) for a constant k) can produce very complicated behavior.
One interesting project we are doing is reading one of a selection of articles on applications of chaos theory, and writing a 1-2 page discussion of it. The article I chose is titled "Chaos on the Trading Floor" and is about the use of chaos theory to model the stock market. I imagine this is particularly relevant given the ongoing financial crisis.
Ironically, the use of mathematical techniques to model the stock market may have actually contributed to the financial crisis. According to Paul Krugman's book "The Return of Depression Economics and the Crisis of 2008," with the development of these techniques came the rise of hedge funds, which try to take advantage of statistical patterns in the stock market by making highly leveraged bets. This means for example that a hedge fund might start with $50 million in capital, then sell short (i.e. borrow and then sell) $950 million worth of one stock so they can buy $1 billion worth of another stock. This means that if the second stock goes up by 5%, they've doubled their money. Of course if it goes the other way around, then they lose all their money - and the people who they borrowed the original $950 million worth of stock from also lose money, because they're going to have a hard time getting their stock back. This kind of "ripple effect" was part of what made the financial crisis so severe.
Chaos Theory with Denny Gulick
You're probably wondering what we actually learn about in "chaos theory." The math behind chaos theory has to do mostly with iterated function systems. Meaning, if you have a function f(x) and an initial value x_0, then if you form the sequence x_1 = f(x_0), x_2 = f(x_1), x_3 = f(x_2) etc. you can look at properties of this sequence - whether it converges to one value, osciallates between two or more values, goes off to infinity, etc. Even simple functions like the logistic map (f(x) = kx(1-x) for a constant k) can produce very complicated behavior.
One interesting project we are doing is reading one of a selection of articles on applications of chaos theory, and writing a 1-2 page discussion of it. The article I chose is titled "Chaos on the Trading Floor" and is about the use of chaos theory to model the stock market. I imagine this is particularly relevant given the ongoing financial crisis.
Ironically, the use of mathematical techniques to model the stock market may have actually contributed to the financial crisis. According to Paul Krugman's book "The Return of Depression Economics and the Crisis of 2008," with the development of these techniques came the rise of hedge funds, which try to take advantage of statistical patterns in the stock market by making highly leveraged bets. This means for example that a hedge fund might start with $50 million in capital, then sell short (i.e. borrow and then sell) $950 million worth of one stock so they can buy $1 billion worth of another stock. This means that if the second stock goes up by 5%, they've doubled their money. Of course if it goes the other way around, then they lose all their money - and the people who they borrowed the original $950 million worth of stock from also lose money, because they're going to have a hard time getting their stock back. This kind of "ripple effect" was part of what made the financial crisis so severe.
Friday, April 10, 2009
Putnam Examination
I just received my score back from the Putnam exam. I got 48 out of 120 points, or which is rank 145.5 (the half is due to ties) out of 3627 participants.
Tuesday, March 31, 2009
Academics: Part 3 of 5: "Program Analysis"
“Had Darth Vader employed formal methods to the design of his Death Star, perhaps it would not have been vulnerable to the starfighter attack that led to its destruction.”
- Jose Meseguer and Grigore Rosu, professors of computer science at UIUC, in their research description
-----------------------------------------------------------
For my third post in this series I will talk about...
Program Analysis and Understanding with Jeff Foster
This is a graduate level course that is a lot different than any of the other computer science courses I have taken. We do very little programming in the class; instead, the focus is using mathematical logic to prove properties of computer programs.
Some of the topics we have learned about so far include:
Dataflow Analysis - this involves tracking different facts about the data manipulated by a program (like "variable X is always zero here" or "variable Y will always be overwritten by another value before it is used) through the execution of a program. The algorithm for doing this is actually reasonably straightfoward - basically, you first generate a "control flow graph" shoing all the different possible ways that control can proceed through the program (for example, an if statement would be a branch in the control flow graph, since control could go two one of two different places depending on the result of the if statement) and then propagate the facts along the edges of the graph. One area of active research now is dataflow analysis for multithreaded programs - where there are two or more separate "threads" of execution, and it is not known which thread will be executed first and when the operating system will decide to switch the control between threads. This of course makes dataflow analysis a lot harder because you don't actually know what the "control flow graph" looks like.
Automated Proof Systems - This involves repesenting logical statements (like "for all integers A and B, A+B = B+A") and proofs of those statements in a form that a computer can manipulate. For example, in the example above, you would first have to define "integer" - the way you do that is by saying "0 is an integer, and for every integer X, there exists a successor S(X)." From this definition it is possible to define operations like addition and multiplication, and then prove statements like the one above. The way you prove statements in Coq (the proof system we are using) is by giving a series of "tactics" that specify how to get from the hypotheses (the things you know are true) to the goal (the thing you are trying to prove.) Examples of tactics are:
Rewrite - If you know that A=B, then you can replace all the A's in an expression with B's, or vice versa.
Destruct - This "breaks apart" a term into all the possibilities for what it is, so you can do analysis on a case-by-case basis. For example if X is a boolean value (true or false), then "destruct X" would create two branches of the proof - one where X is true and one where X is false. This allows you to prove things like DeMorgan's Laws (by enumerating all the cases).
Apply - If you know that "if A then B", and your goal is B, this changes the goal to be A. This makes sense because if you know A and if you know "if A then B" then you know B.
(One good thing about automated proof systems from a teacher's perspective is that it makes it really easy to grade the homeworks. If the proof goes through and doesn't generate an error, then it must be correct.)
Automated proof systems are also useful in proving things about computer programs. If you define the syntax of a programming language in Coq, then you can represent statements like "the expression X+Y evaluates to 7 given the variable values X=3 and Y=4" and prove things like that the final result of an expression is the same no matter what order you evaluate its terms in (this is true in the simplified language we are studying, but not true in many real programming languages.)
Also, just yesterday my professor was quoted in a Diamondback article. (See the second page of the article for his quote.)
-----------------------------
P.S. The quote at the top of this post is inaccurate. Darth Vader had nothing to do with the design or construction of the Death Star.
- Jose Meseguer and Grigore Rosu, professors of computer science at UIUC, in their research description
-----------------------------------------------------------
For my third post in this series I will talk about...
Program Analysis and Understanding with Jeff Foster
This is a graduate level course that is a lot different than any of the other computer science courses I have taken. We do very little programming in the class; instead, the focus is using mathematical logic to prove properties of computer programs.
Some of the topics we have learned about so far include:
Dataflow Analysis - this involves tracking different facts about the data manipulated by a program (like "variable X is always zero here" or "variable Y will always be overwritten by another value before it is used) through the execution of a program. The algorithm for doing this is actually reasonably straightfoward - basically, you first generate a "control flow graph" shoing all the different possible ways that control can proceed through the program (for example, an if statement would be a branch in the control flow graph, since control could go two one of two different places depending on the result of the if statement) and then propagate the facts along the edges of the graph. One area of active research now is dataflow analysis for multithreaded programs - where there are two or more separate "threads" of execution, and it is not known which thread will be executed first and when the operating system will decide to switch the control between threads. This of course makes dataflow analysis a lot harder because you don't actually know what the "control flow graph" looks like.
Automated Proof Systems - This involves repesenting logical statements (like "for all integers A and B, A+B = B+A") and proofs of those statements in a form that a computer can manipulate. For example, in the example above, you would first have to define "integer" - the way you do that is by saying "0 is an integer, and for every integer X, there exists a successor S(X)." From this definition it is possible to define operations like addition and multiplication, and then prove statements like the one above. The way you prove statements in Coq (the proof system we are using) is by giving a series of "tactics" that specify how to get from the hypotheses (the things you know are true) to the goal (the thing you are trying to prove.) Examples of tactics are:
Rewrite - If you know that A=B, then you can replace all the A's in an expression with B's, or vice versa.
Destruct - This "breaks apart" a term into all the possibilities for what it is, so you can do analysis on a case-by-case basis. For example if X is a boolean value (true or false), then "destruct X" would create two branches of the proof - one where X is true and one where X is false. This allows you to prove things like DeMorgan's Laws (by enumerating all the cases).
Apply - If you know that "if A then B", and your goal is B, this changes the goal to be A. This makes sense because if you know A and if you know "if A then B" then you know B.
(One good thing about automated proof systems from a teacher's perspective is that it makes it really easy to grade the homeworks. If the proof goes through and doesn't generate an error, then it must be correct.)
Automated proof systems are also useful in proving things about computer programs. If you define the syntax of a programming language in Coq, then you can represent statements like "the expression X+Y evaluates to 7 given the variable values X=3 and Y=4" and prove things like that the final result of an expression is the same no matter what order you evaluate its terms in (this is true in the simplified language we are studying, but not true in many real programming languages.)
Also, just yesterday my professor was quoted in a Diamondback article. (See the second page of the article for his quote.)
-----------------------------
P.S. The quote at the top of this post is inaccurate. Darth Vader had nothing to do with the design or construction of the Death Star.
Friday, March 27, 2009
Academics: Part 2 of 5: "Answer Poverty"
Today, we did our final presentation for our Gemstone project.
Our Gemstone project was titled "ANSWER Poverty," which stands for "Assessing the Need for Services which Effectively Reduce Poverty." During our project, we interviewed recent immigrants living in Langley Park, a community just a few minutes away from Campus that has a high number of low-income immigrants. Our goal was to find out their experiences with and knowledge of financial services. The point of our project was to find ways of bringing people who currently use "fringe" financial services like check cashing, money wiring to pay bills, payday loans, etc. into the mainstream banking system, so they don't lose a large percentage of their paycheck to things like check cashing fees.
What we found in our focus groups was surprising in many ways. First of all, most of our focus group participants didn't even know what check cashing was, and only one out of several dozen total participants mentioned using it. This was surprising because Langley Park has a lot of check cashing outlets, which is why we chose it. We also found that for many members of our target population, mainstream banks could have fees such as overdraft fees and below-minimum-balance fees that exceeded even those offered by fringe financial institutions. We also expected that language barriers would be a difficulty, because many recent immigrants only speak Spanish. We found out that most of the time there was someone on the bank staff that could speak Spanish, but that a lot of bank literature was in English only so they couldn't understand it. We ended our presentation with recommendations on what banks and other financial service providers could do to offer more consumer-friendly services. At the end we got feedback from a panel of expert "discussants" we had recruited in order to give us advice for how we should revise our thesis.
There were, however, a few hitches and embarrasing moments. Twice during the presentation, we referred to "cash checking" instead of "check cashing." Also, during our rehearsal, I discovered that during the process of "cleaning up" the slides, on one of the slides I made featuring a graph showing the racial composition of counties in the United States versus the number of banks per capita, that one of my teammates had replaced the phrase "non-Hispanic white" with "non-white Hispanic." Fortuntely we caught this error before it made it into our final presentation. Also, at the beginning of our presentation we included a video showing the sights and sounds of Langley Park. One of our discussants was Bill Hanna, a professor at UMCP who also runs several community organizations that focus on Langley Park, and he politely informed us that several of the shots in our video featured locations that weren't even in Langley Park.
However, overall, the experience was exciting and we learned a lot. Also, at the presentation, they were distributing pledge forms asking people to donate money to the Gemstone Program in order to make sure future generations of students have the same opportunities we did. If you are interested in donating to the Gemstone Program you can contact Jim Wallace.
And finally, this was the last day on the job for one of our team's mentors, Jerry Grossman (although he will still be coming to our meetings to advise our team for the next few weeks as we finalize our final thesis). Starting next week he will be working at the USAID (U.S. Agency for International Development) as an "economic growth officer." I imagine he will have his work cut out for him there.
(We have two mentors. Our other mentor is Brian Beard, whose area of expertise is on poverty assessment tools in developing countries.)
By the way, Mom and Dad, they will but putting out a DVD of our presentations at some point and I will send it to you when they do so you can see it. Also if you are interested in meeting our mentors or other team members I can see if that can be arranged when you are in town for graduation.)
Our Gemstone project was titled "ANSWER Poverty," which stands for "Assessing the Need for Services which Effectively Reduce Poverty." During our project, we interviewed recent immigrants living in Langley Park, a community just a few minutes away from Campus that has a high number of low-income immigrants. Our goal was to find out their experiences with and knowledge of financial services. The point of our project was to find ways of bringing people who currently use "fringe" financial services like check cashing, money wiring to pay bills, payday loans, etc. into the mainstream banking system, so they don't lose a large percentage of their paycheck to things like check cashing fees.
What we found in our focus groups was surprising in many ways. First of all, most of our focus group participants didn't even know what check cashing was, and only one out of several dozen total participants mentioned using it. This was surprising because Langley Park has a lot of check cashing outlets, which is why we chose it. We also found that for many members of our target population, mainstream banks could have fees such as overdraft fees and below-minimum-balance fees that exceeded even those offered by fringe financial institutions. We also expected that language barriers would be a difficulty, because many recent immigrants only speak Spanish. We found out that most of the time there was someone on the bank staff that could speak Spanish, but that a lot of bank literature was in English only so they couldn't understand it. We ended our presentation with recommendations on what banks and other financial service providers could do to offer more consumer-friendly services. At the end we got feedback from a panel of expert "discussants" we had recruited in order to give us advice for how we should revise our thesis.
There were, however, a few hitches and embarrasing moments. Twice during the presentation, we referred to "cash checking" instead of "check cashing." Also, during our rehearsal, I discovered that during the process of "cleaning up" the slides, on one of the slides I made featuring a graph showing the racial composition of counties in the United States versus the number of banks per capita, that one of my teammates had replaced the phrase "non-Hispanic white" with "non-white Hispanic." Fortuntely we caught this error before it made it into our final presentation. Also, at the beginning of our presentation we included a video showing the sights and sounds of Langley Park. One of our discussants was Bill Hanna, a professor at UMCP who also runs several community organizations that focus on Langley Park, and he politely informed us that several of the shots in our video featured locations that weren't even in Langley Park.
However, overall, the experience was exciting and we learned a lot. Also, at the presentation, they were distributing pledge forms asking people to donate money to the Gemstone Program in order to make sure future generations of students have the same opportunities we did. If you are interested in donating to the Gemstone Program you can contact Jim Wallace.
And finally, this was the last day on the job for one of our team's mentors, Jerry Grossman (although he will still be coming to our meetings to advise our team for the next few weeks as we finalize our final thesis). Starting next week he will be working at the USAID (U.S. Agency for International Development) as an "economic growth officer." I imagine he will have his work cut out for him there.
(We have two mentors. Our other mentor is Brian Beard, whose area of expertise is on poverty assessment tools in developing countries.)
By the way, Mom and Dad, they will but putting out a DVD of our presentations at some point and I will send it to you when they do so you can see it. Also if you are interested in meeting our mentors or other team members I can see if that can be arranged when you are in town for graduation.)
Thursday, March 26, 2009
Academics: Part 1 of 5: "Redundant Signaling"
Since I haven't had much to write about recently, I'm going to write a little bit about my classes. This is going to be a series of posts, one for each class.
This first one is about my class "Introduction to Signal Processing" with Dennis Healy.
This class is actually mostly about stuff I have already learned in previous classes, such as linear algebra. Another problem is that the first 15 minutes of each lecture simply repeats the last 15 minutes of the previous lecture. Finally, even during the middle of the lectures he tends to repeat things over, and over, and over again. A couple weeks ago we learned about the Nyquist sampling theorem, which states that a continuous periodic function can be completely characterized by a set of "samples" taken from the function at discrete points in time depending on the highest frequency in the period. The same thing applies to Healy's lectures: one could "sample" the lecture by only paying attention for a brief period every 5-10 minutes and writing what is on the slide, and one would not lose any information.
(Fortunately, my other classes are a lot more fun and exicintg, and I'll tell you about them in upcoming posts.)
This first one is about my class "Introduction to Signal Processing" with Dennis Healy.
This class is actually mostly about stuff I have already learned in previous classes, such as linear algebra. Another problem is that the first 15 minutes of each lecture simply repeats the last 15 minutes of the previous lecture. Finally, even during the middle of the lectures he tends to repeat things over, and over, and over again. A couple weeks ago we learned about the Nyquist sampling theorem, which states that a continuous periodic function can be completely characterized by a set of "samples" taken from the function at discrete points in time depending on the highest frequency in the period. The same thing applies to Healy's lectures: one could "sample" the lecture by only paying attention for a brief period every 5-10 minutes and writing what is on the slide, and one would not lose any information.
(Fortunately, my other classes are a lot more fun and exicintg, and I'll tell you about them in upcoming posts.)
Tuesday, March 17, 2009
SURGE!
I just received notification that the University of Illinois has awarded me the following fellowship:
http://engineering.illinois.edu/students/graduate/surge/
I count as a "person with disabilities" on that list.
The amazing thing is that I never applied for this fellowship, or even knew about it in advance. What happened is that the graduate admissions person at UIUC contacted my computer science advisor saying that there as a fellowship that I could likely get, and the advisor asked me to come in and sign a form giving Disability Support Services permission to release my records to them. I did that a couple weeks ago and just today I got the e-mail saying it had been awarded. (I don't know how the graduate admissions person knew that I was a "person with disabilities" - I don't recall writing it in my application materials. Probably one of my professors wrote something about it in her recommendation letter - good thing he/she did!)
DEEP PHILOSOPHICAL QUESTION: If being "disabled" gives you special opportunities that you wouldn't have had if you weren't "disabled," does it still count as a "disability"?
http://engineering.illinois.edu/students/graduate/surge/
I count as a "person with disabilities" on that list.
The amazing thing is that I never applied for this fellowship, or even knew about it in advance. What happened is that the graduate admissions person at UIUC contacted my computer science advisor saying that there as a fellowship that I could likely get, and the advisor asked me to come in and sign a form giving Disability Support Services permission to release my records to them. I did that a couple weeks ago and just today I got the e-mail saying it had been awarded. (I don't know how the graduate admissions person knew that I was a "person with disabilities" - I don't recall writing it in my application materials. Probably one of my professors wrote something about it in her recommendation letter - good thing he/she did!)
DEEP PHILOSOPHICAL QUESTION: If being "disabled" gives you special opportunities that you wouldn't have had if you weren't "disabled," does it still count as a "disability"?
Subscribe to:
Posts (Atom)