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
Turn in Exploration HW9
LAST EXPLORATION SESSION OF THE QUARTER
-
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
-
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
-
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
-
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.
-
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
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).
-
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.