Exploration Sessions
Most weeks we will offer a different opportunity to explore extra topics in
computer science with Nick (142 instructor), Allison (143 instructor), or one of our wonderful 142/143 TAs.
There will be a homework assigned each week.
You will accumulate one "exploration point" for each week that you attend the
lecture and do the homework. At the end of the quarter, your total
exploration points will be divided by 3 and will be added to your homework
points. There will be 166 homework points total, so this isn't adding a lot
to your potential score. As an example, if you were to participate in 3
exploration sessions, you would have 1 point added to your homework points,
which is like getting one more point on a weekly programming assignment. The
idea is to give people a small reward, but not something that is so large
that people feel obligated to participate in these optional sessions.
Week 9 (Computational Linguistics) -- Mon, Aug 13 1:10-2:10 - CSE 203
-
This week we'll explore one of the fastest growing fields in computer science. Come see what exactly is going on in the world of computational linguistics and why it is becoming so popular. I guarantee there will be something interesting for everyone!
-
Links from this session:
-
Slides from the lecture:
PDF
Week 8 (Web Programming) -- Mon, Aug 6 1:10-2:10 - CSE 203
Turn in Exploration HW6
-
What does it take to put together a web page like your Facebook profile or the Google search page?
This week we'll take a look at the breakdown of a web page and the technologies required to
produce a standard Internet experience. We'll learn, at a high level, how web technologies, such
as HTML, CSS, and Javascript affect the appearance of a web page.
-
Homework -- Due Mon. August 13, 2012 - 12:00 p.m.
-
Turn in 1 file: web.txt
-
Choose a website that you use regularly (a simple one would be best). In a text file, list the technologies
that you think are used by the site and how they are used (i.e. what parts of the
page are the results of which technology). Give an example of a CSS style rule used
on the website. Remember in Chrome you can view the source code for a page with CTRL+u,
and open the inspector with CTRL+SHIFT+i. Also you can right click an element and choose 'inspect element'.
In Firefox, you can install Firebug to get the same functionality.
-
Here's a very basic guideline to the features of the technologies that we discussed:
- HTML - Content
- CSS - Styling
- Javascript - Page interactivity/updating
- Ruby on Rails/PHP/PerlMason - Dynamic page content creation
Slides from this week's presentation:
PDF
Code from this lecture:
helloworld.html,
helloworld.css,
bagels.html,
bagels.css,
bagels.js,
Some background materials
Week 7 (Reflection and Hacking Java) -- Monday, July 30 1:10-2:10 - CSE 203
Turn in Exploration HW5
- This week we will be exploring the powerful field of Reflection in Java. We will explore simple things like accessing/setting other class's private variables and complex things like hacking/manipulating an entire class. Ending with a demo/exploration of a popular CS assignment hacked and controlled with only reflection.
- Slides from this week's presentation:
PDF
- Code from this lecture:
ATM.zip,
ATM-2.zip,
Frame
-
homework: Zack showed how to use reflection to hack the ATM in ATM.zip. ATM-2.zip does not give the card an ATM object as a parameter. Instead you must find a way to get the ATM object. The hint is that the user interface is build with Java's Swing framework, which makes use of the Frame class. In a file called reflection.txt, either describe how you can use the Frame to access the ATM, or describe how you might start trying to get the ATM object (what things you might look up or Google, etc). You can use the same techniques demoed in class.
Week 5 (Modular Arithmetic and RSA Encryption) -- Monday, July 16 1:10-2:10 - CSE 203
Turn in Exploration HW4
- Slides from this week's presentation:
PDF
- Code from this lecture:
RSA.java,
rsa.rb,
IndustrialRSA.java
-
Turn in one file: mod.txt
Only put the answers to the following question in the file, one per line.
- (7 * 1328490192830942930840184201384920384209834920) % 7
- (140000000002 * 210000000002) % 7
- (1283904820984092819028340923094029342081 ^ 1982093849208349018094320810928345) % 2 (where x^y means x to the y power)
Week 4 (History of Computer Science) -- Monday, July 9 1:10-2:10 - MOR 220
Turn in Exploration HW3
- This week we will explore a brief history of Computer Science with guest lecturer Dane Paschal.
- Slides from this week's presentation:
PDF
- For homework, look up Moore's Law online and describe briefly (a few sentences) how it has helped advance computing. Turn in your description in a file called moores_law.txt
Week 3 (Computer Animation) -- Monday, July 2 1:10-2:10 - EEB 105
Turn in Exploration HW2
-
This week we will explore the technology behind computer animation. We'll take a look at animation opportunities here at the UW as well as in industry. We'll see how animation can be accomplished using simple tools, like our own DrawingPanel class, or using more complicated tools for a much more impressive effect.
-
Slides from the lecture:
PDF
-
Animated films produced by UW Students.
-
For homework, turn in an animation created using
DrawingPanel.java in a file called MyAnimation.java. Optionally, use DrawingPanel to save your animation as a GIF file and turn it in as animation.gif. Here is the example that I showed in class...but you don't have to make something this complicated. Kirby!
-
We talked about using loops to change the position, size, and color of objects, and also to create gradients.
-
Motion.java We're changing the x,y position of an object based on the loop counter.
-
Size.java We're changing the dimensions of an object based on the loop counter.
-
AnimatedColor.java We're changing the color of an object based on the loop counter.
-
Gradient.java We create new colors whose Red, Green, and Blue componentts are based on the loop counter.
-
Polygons.java I mentioned in class that I'd post an example of how to create arbitrary shapes.
Week 2 (Thinking Machines/Artificial Intelligence) -- Monday, June 25 1:10 - 2:10 - EEB 105
Turn in Exploration HW1
-
This week we will be thinking about thinking (meta thinking). In particular, can
machines think? If they can, how would we know? These kinds of questions
are central to artificial intelligence, which is a field of computer
science. we'll look at some cutting edge AI research,
and we'll have conversations with a few programs that appear intelligent.
The homework will involve having a conversation with one of these programs
and writing a few sentences about whether you think machines can think.
-
Links from this session:
-
Homework - Due Mon. July 2, 2012 - noon
-
Turn in one file: conversation.txt
-
Talk to Cleverbot or A.L.I.C.E. (links above). Copy and paste
your conversation into a text file and submit it.
Also tell me whether you think the conversation demonstrates that the chat bot is intelligent.