Exploration Sessions

Exploration session time/place:
Thursdays, 4:30 - 5:20pm, in MUE 153

Each week we will offer a different opportunity to explore extra topics in computer science with one of our head TAs, Jared (jonesje at cs.washington.edu). 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 (RSA Encryption and Security) -- 3/3/2011 icon Turn in Exploration HW9

  • This week is a followup to last week's lecture on modular arithmetic. We'll see how modular arithmetic and the study of prime numbers affects RSA encryption, a standard method of encrypting files. We'll also be looking at the field of computer security briefly, in general.
  • Links from this session:
  • Homework -- Due Wed. March 16, 2011 - 8:30 a.m.
    • Turn in one file: article.txt
    • article.txt
      • Read the following article and submit your opinion on the topic as a text file named "article.txt" (3 or 4 sentences).
      • Link to article

Week 8 (Modular Arithmetic) -- 2/24/2011 icon Turn in Exploration HW8

  • This week we'll take a look at modular arithmetic and the surprising impact it has on the computation of very large numbers.
  • Homework -- Due Fri. March 11, 2011 - 11:30 p.m.
    • Turn in one file: mod.txt
    • mod.txt
      • Use the strategy that Stuart explained in the exploration session to evaluate the following expressions (you shouldn't need a calculator):
        • (7 * 1328490192830942930840184201384920384209834920) % 7
        • (140000000002 * 210000000002) % 7
        • (1283904820984092819028340923094029342081 ^ 1982093849208349018094320810928345) % 2 (where x^y means x to the y power)
      • In mod.txt, only put the answers. Put each answer on it's own line.

Week 7 (No session this week) - 2/17/2011

Week 6 (No session due to Midterm) - 2/10/2011

Week 5 (Web Programming) - 2/3/2011 icon Turn in Exploration HW5

  • 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, PHP, and Javascript, affect the appearance of a web page.
  • Homework -- Due Wed. February 16, 2011 - 11:30 p.m.
    • Turn in one file: web.txt
    • web.txt
      • Choose a website that you use regularly. 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).
    • Here's a very basic guideline to the features of the technologies that we discussed:
      • HTML - Content
      • CSS - Styling
      • PHP - Dynamic page content creation
      • Javascript - Page interactivity/updating

Week 4 (Python) -- 1/27/2011 icon Turn in Exploration HW4

  • Python is another programming language like Java. Python is good for writing programs to process text and other data. It's used heavily in the Linux operating system and at companies like Google. We'll take a very brief look at Python - it's capabilities and similarities and differences to Java.
  • This week's assignment doesn't require you to program in Python, but feel free to download python and try it out using the links below. Learning more than one programming language makes you a better programmer in general.
  • Links from this session:
  • Homework -- Due Fri. February 4, 2011 - 11:30 p.m.
    • Turn in one file: pythondiff.txt
    • pythondiff.txt
      • From Aryan's introduction to Python, identify one way that Python is similar to Java and one way that Python is different from Java. Type up these observations and submit them in a text file.

Week 3 (Computer Animation) -- 1/20/2011 icon Turn in Exploration HW3

  • This week we'll be exploring 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.
  • Special thanks to Nick Garrett for his participation in this session!
  • Links from this session:
  • Homework -- Due Wed. January 26, 2011 - 11:30 p.m.
    • Turn in one file: MyAnimation.java
    • MyAnimation.java
      • Create a simple animation using DrawingPanel like we saw in the exploration session. The sleep function in DrawingPanel is your friend.

Week 2 (Thinking Machines/Artificial Intelligence) -- 1/13/2011 icon Turn in Exploration HW2

  • This week we will be thinking about 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 discuss some of the most famous opinions on the subject, 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 Fri. January 21, 2011 - 11:30 p.m.
    • Turn in one file: clever.txt
    • clever.txt
      • Talk to Cleverbot and then click "Thoughts so far". Copy and paste your conversation into a text file and submit it. Your conversation must consist of at least 10 lines entered by you (along with the 10 responses from Cleverbot).

Week 1 (Grammars) -- 1/6/2011 icon Turn in Exploration HW1

  • This week we will be exploring grammars. Computer scientists are interested in grammars because we produce our own languages (like Java) and we want to understand various programming languages that we work with. We will explain how to express a grammar in a formal manner and the homework will involve writing your own grammar file for a language that you make up.
  • GrammarSolverMain.exe Download this program to generate sentences from grammar files. This will only work on Windows. If you don't have a Windows machine, the IPL is available for all of your Windows-based needs.
  • Homework -- Due Wed. January 12, 2011 - 11:30 p.m.
    • Turn in two files: grammar.txt and mygrammar.txt
    • grammar.txt
      • Update grammar.txt (which we created during the Exploration Session) to generate sentences with adverbs (<adv>). Adverbs describe verbs (i.e. quickly jumped, lazily ate). A good clue is that many adverbs end with the letters "ly".
    • mygrammar.txt
      • Your file must have at least 5 rules (one rule per line)
      • Recall that each rule is of the following form:
        non-terminal : terminal | terminal | terminal
        Although the "terminal"s above can also include non-terminals
      • Try to be creative! Some possible ideas:
        • An excuse generator
        • A valley girl speech generator
        • A Java generator
  • NEW! Several students asked for a link to the slides used in this session. Click here to go to them. The slides are used in CSE 143, and the ones in this slide deck that talk about grammars start on slide 10.