Exploration Sessions

Each week we will offer a different opportunity to explore extra topics in computer science with one of our 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 7 (Computational Linguistics) - Thurs, November 29 3:30-4:30pm in EEB125 icon Turn in Exploration HW7

  • 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 as we take a brief tour through its many subfields. Our TA Caitlin guarantees there will be something interesting for everyone!
  • Homework - Due Thurs, December 6th - 3:30pm
    • Turn in one file: sentence.txt
    • Visit an online English language parser and enter the sentence: "I saw the man with the telescope."
    • Check the "Show all linkages" box.
    • Click the submit button.
    • You should see two different parses/trees for this sentence. Why is that? What sorts of problems do you think phenomena like this pose in the field of computational linguistics? Submit your answers in the file sentence.txt.

Week 6 (Cellular Automata) - Thurs, November 15 2:30-3:30pm in GUG220 icon Turn in Exploration HW6

  • Some label the field of cellular automata as "recreational science". As we'll see, a cellular automaton is no more than a strange sort of game. However, these games turn out to have extraordinary implications in many fields, and some think they can explain the nature of the universe! We'll take a close look at some interesting cellular automata and discover why mathematicians and computer scientists are so obsessed with them.
  • Homework - Due Thurs, November 29th - 3:30pm
    • Turn in three files: still-lifes.rle, oscillate.rle, chaos.rle
    • First, download the program Golly. For this homework, you will need to construct a series of Game of Life configurations and turn in .rle files for them. To create a new pattern, choose File > New Pattern. You can draw "live" cells by clicking with the pencil tool, as demonstrated during the exploration session. You can then save the pattern to an .rle file with File > Save Pattern.
    • Create three unique "still life" configurations. Each still life should consist of four or more live cells which do not die or oscillate when the simulation is run. These still lifes should be "strict", meaning that killing a single cell in the still life should destabilize it. Submit these three configurations in the same file called "still-lifes.rle".
    • Turn in a file called "oscillate.rle" which contains at least one oscillating pattern. This oscillator can have a period of 2, but we encourage you to try your hand at a more complex oscillator.
    • Now, time for some experimenting! We'd like you to turn in a file called "chaos.rle" that contains a pattern which spawns chaotic behavior. The "chaotic" phase of your pattern should last for longer than 40 generations, after which it can give way to oscillators and still lifes. Try to minimize the number of cells which you use to create your pattern. We encourage you to try for longer than 40 generations. For reference, the chaotic pattern shown during the session (the "R-pentomino") lasts for over a thousand generations before it stabilizes (you aren't allowed to turn in that one though).

Week 5 (Network Programming) - Weds, November 7th 12:30-1:30 in PAA102 icon Turn in Exploration HW5

  • This week, we'll explore network programming. Network programming is all about getting separate computers to talk to each other and share data. Networks are the foundation for applications ranging from the internet to LAN parties. We'll also talk about internet censorship and how network programming can affect society at large.
  • Presentation: icon Network Programming With Python
  • Client files: icon client_message.py, icon client_skel_ver1.py, icon client_skel_ver2.py.
  • Server files: icon server_message.py, icon server_skel_ver1.py, icon server_skel_ver2.py.
  • Homework - Due Thurs, November 15th - 3:30pm
    • Turn in two files: server.py and client.py
    • General description: Write a simple instant messaging program similar to the singlemessage program we wrote in section. The program should accept a message from one user at a time (i.e., it should allow User A to post something, then User B, then User A, etc., but not User A, then User A, then User A, then User B). Have the program continue looping until one of the users enters the string “QUIT”. Your scripts should have a header comment saying whether your script was designed to run with Python 2.7 or Python 3.2.
      icon Detailed specification

Week 4 (Python) - Thurs, October 25 3:30-4:20 in EEB125 icon Turn in Exploration HW4

  • This week, Dian will be introducing the Python programming language. We will discuss what it is and why people use it and highlight similarities and differences between Java and Python. We will look at the BMI program from lecture and start writing it in Python.
  • Materials: icon presentation, icon code
  • Homework - Due Thurs, November 8th - 3:30pm
    • Turn in one file: bmi_calculator.py
    • Complete the BMI program so it has the same functionality as the Java lecture example.

Week 3 (Web Programming) - Thurs, October 18 3:30-4:20 in EEB125 icon Turn in Exploration HW3

  • This week, we will discuss web programming. If you've ever been curious about how webpages work, this session is a chance to see 'under the hood' of a website and learn about how a website is built. We'll be talking about and trying out some of the common languages and technologies that make up a web page, and talk about the tools and resources you can use to start creating your own site.
  • Homework - Due Thurs, October 25 - 3:30pm
    • Turn in one file: webpage.txt
    • View a favorite website using the Chrome or Firefox web developer tools. Turn in a single file, webpage.txt, listing at least three different HTML elements and one CSS rule used in the page.

Week 2 (Artificial Intelligence) - Thurs, October 11 3:30-4:20 in EEB125 icon Turn in Exploration HW2

  • This week we'll spend time thinking about what it means to think. Because this is a computer science course, we are especially interested in how computers can/would think. To introduce the topic, we'll watch a few videos related to current Artificial Intelligence research and spend time discussing various sub-topics within AI. One of the sites we'll be referencing allows you to have conversations with "intelligent" computer programs. The homework will involve having a conversation with one of these programs and writing a few sentences about whether you think machines can think.
  • Homework - Due Thurs, October 18 - 3:30pm
    • Turn in one file: conversation.txt
    • Talk to Cleverbot or A.L.I.C.E. 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.

Week 1 (Binary) - Thurs, October 4 3:30-4:20 in EEB125 icon Turn in Exploration HW1

  • This week we'll explore the question, what is a computer? What are these mysterious machines and how are we able to get them to do what we want? We'll also learn some binary and figure out what the deal is with those 0's and 1's anyway. Come with your thinking caps ready as we'll solve some binary puzzles together!
  • slides: icon pdf icon pptx
  • Homework -- due Thurs, October 11 - 3:30pm
    • Turn in one file: binary.txt
    • Why do computers use binary?
    • How high can you count in binary on your fingers?
    • Translate 1101 and 1010.01 from binary to decimal