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: icon PDF

Week 8 (Web Programming) -- Mon, Aug 6 1:10-2:10 - CSE 203 icon 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: icon PDF
  • Code from this lecture: icon helloworld.html, icon helloworld.css, icon bagels.html, icon bagels.css, icon bagels.js,
  • Some background materials

Week 7 (Reflection and Hacking Java) -- Monday, July 30 1:10-2:10 - CSE 203 icon 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: icon PDF
  • Code from this lecture: icon ATM.zip, icon ATM-2.zip, icon 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 icon Turn in Exploration HW4

  • Slides from this week's presentation: icon PDF
  • Code from this lecture: icon RSA.java, icon rsa.rb, icon 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 icon 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: icon 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 icon 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: icon PDF
  • Animated films produced by UW Students.
  • For homework, turn in an animation created using icon 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.
    • icon Motion.java We're changing the x,y position of an object based on the loop counter.
    • icon Size.java We're changing the dimensions of an object based on the loop counter.
    • icon AnimatedColor.java We're changing the color of an object based on the loop counter.
    • icon Gradient.java We create new colors whose Red, Green, and Blue componentts are based on the loop counter.
    • icon 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 icon 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.