Fall 2016 Computer Science 458: 12/07/2016
Per piazza posting, Jieung Kim office hours: Monday and
Wednesdays, 5:30 pm to 7:30pm. AKW 311.
Final Project: Additional Specifications
Final projects are due the last day of reading period: Thursday
Be prepared to give a brief presentation of your project to
the class after Thanksgiving break. It should be 5-10 minutes,
and describe what you intend to do. If you have already implemented
something, all the better.
Post project proposal to class*v2 under assignments Once
you get approval, you may commence work.
Submit your proposal this week. Leave time for an iterative
- Monday December 5th:
- Wednesday December 7th:
- Michael (Fan) Gao and Qian Qiao: Risk Management System for Equity Portfolios
- Sean (Xun) Lao and Keyang Dong: Defense of the Ancients (DOTA) hero
- Chen Gu, Jiaqi Gu, Ruiming Kou: Restaurant Recommendation system
- Yinfeng Zhang, Xiaofo Jiang: Implement (e)Mycin in Python
- Zhendong Cao, Shiying Xu: Movie recommendation system
- Sheng Qin and Chengyang Liu : Paper recommendation system
- Your project should run in the zoo. If you need additional libraries or
software installed, you must clear it with the TF.
- You need to include a write-up explaining your project, including
how to run it, what it does, what is interesting or important about it,
how it explains the decision. Screen shots might be helpful as well.
- You can create a web site. In this case, it may not need to run
in the zoo. However, you need to submit all the code so that
it could theoretically be run in the zoo.
- Can you leverage a project for another course? It depends. You need to
check with me first.
- Can you change your project after your proposal? Well, yes. The
real question is what happens if you do that? The answer is again, it depends.
If your initial idea hits a wall and does not work, you probably should
figure out another way to go.
Final Project: Criteria
In no particular order:
- Originality. I appreciate the degree to which you come up
with new ideas. There are lots of ways to tackling the projects.
- Functionality. The program should work. It is best if we
can run it ourselves, such as on the zoo. At the very least, you
should provide ample evidence that the program does what it is
supposed to do.
- Explanation. The program should explain its behavior. A
good way to think about this is how you would explain your program's
output to someone observing your program in action.
- Relevance to course. The program should have a connection
to a topic or topics discussed in class, including the guest speakers.
The more direct the connection, the better. Note that the best
connection is through a method or technique, not a domain. Thus,
applying Monte Carlo simulation to medicine is better than applying
astrology to finance.
- Clarity. This is valued in thought, word, and deed. How
clear is your concept? Do you describe it well in your write-up?
Does your program clearly reflect your idea?
- Success. Actually, not so much. In a freshman chemistry
course, I selected a project of making polywater - a polymer form of
water which had been reported by Soviet scientists. The professor
encouraged me to pursue this and it failed. I was unable to replicate
the Soviet experiment. (As it turns out, neither was anyone else.)
My point is that you may learn from failure as well as from success.
Self-driving Cars: an introduction
human.java (Java human class with
Final Project: The Hidden Agenda
Up until now, you have been in school where the teacher asks you a
question and then tells you if your answer was correct or not. You
have pretty much mastered that paradigm.
Soon, you are going into the real world, or graduate school. You will
be expected to identify and tackle problems that no one has solved
before. This course was meant to provide a bridge to that world - to
acclimatize you to various domains and provide you with multiple ways
of thinking about decision making. In addition, the languages R and
Python are valued outside academia.
Economic decision theory
Monte Carlo simulation
Net Present value
Rule based systems
Case based systems
Goal based systems
Statistical models - linear regression
My emphasis on cognitive science for decision making reflects the need
to maintain a focus on the human in the loop, and particularly the
importance to explain decisions.
The problem sets were often open ended, which required you to be
resourceful. The guest speakers reinforced the idea that there is a
spectrum of techniques that can be applied across a range of problem
domains. The real world requires that you be open minded, and willing
to learn new domains and new methodologies.
This course was meant to provide an intellectually safe space for you
to experience those challenges. That way, you won’t be surprised when
you see it in the real world.
Each of you had to weigh the resources you had and define what a
solution looked like. With the project, you have the opportunity to
identify a need or a problem and to come up with an original solution.
I am pleased to see the energy and ambition of the class as reflected
in the project proposals.
The main point is that I want to encouraged you to think
independently. That is why I give you a final project instead of a