Intro to CS | Assignments

Summary

Num Title Due Kind Max Pts
F1-F3 Final Project Jan 24 FP 20
16 Digital Thermometer Jan 6 HW 10
15 Morse Code Dec 16 HW 10
14 Arduino Code Worksheet Dec 12 CL 1
13 Project Analysis Nov 30 CL 10
12 Group Maker Nov 23 HW 10
11 Translator Nov 14 HW 10
10 Chat Bot Nov 2 HW 5
09 Amazing Maze Oct 28 HW 20
08 Golden Section Oct 21 HW 20
07 Think Different Oct 13 HW 5
06 Scratch Connect Oct 7 HW 5
05A My Scratch Debug Oct 5 HW 3
05 Scratch Debug Oct 5 HW 5
04A Turning Polygons Worksheet Sep 30 CL 1
04 Drawing Patterns Sep 30 HW 5
03 Conditionals Worksheet Sep 23 CL 1
02 The Name Game Sep 23 HW 5
01 CS Research Report Sep 16 HW 5
00 Course Admin Sep 12 CL 1

Final Project (F1-F3): Design/Build/Present

For your final project, you have a lot of flexibility to create something of your own, rather than following specific assignment constraints. The project can be an Arduino system or application, something using Scratch, or an electronics kit that I have available.

The goal is to synthesize things you have learned in the course, and apply this knowledge to something fun or useful that you would like to make.

You may work alone or in teams (up to 3 people), as long as the project is large enough to support equal contributions from each team member. Effective teamwork will be a part of your grade.

The first step in the process is to declare your project intentions, after some freeform brainstorming and team formation. The main part of the project is the making — designing, building, coding, testing, etc. Finally, during our final exam session, you will present your project to the class and some invited guests.

The grading criteria for the final project are listed below.

GRADING (Final Project)
F1. Proposal 2 pts
F2. Project Work 15 pts
F3. Presentation 3 pts
TOTAL 20 pts
DUE: Tuesday, January 24.

Assignment 16: Digital Thermometer

In this assignment, you will explore using an analog sensor for input to your Arduino. (Up til now, you have only done output with it.) You will make a simple digital thermometer from a temperature sensor.

In addition to learning how to gather input data on your Arduino, you will also learn how to output text data on the computer screen, so you can see what is happening on your temperature sensor. This is called “serial printing.”

click for details

Temperature sensors are small devices that produce a varying voltage depending on the ambient temperature. We can read that variable voltage with an Arduino program and then, using some math, convert that voltage to a temperature value. Because this voltage can vary continuously (like when you twist a volume knob on a radio), it is called an analog sensor, as opposed to a digital sensor (which can only be on or off).

click to enlarge

The temperature sensor has leads (legs) that get connected to pins on the Arduino. There are three pins to connect with wires. The middle one is the data pin, on which you read the analog value of the sensor. The outer ones go to +5V and GND. It’s VERY IMPORTANT that you get these connected correctly; otherwise you’ll fry the sensor! The illustration shows which outer pin is +5V and which is GND.

click to enlarge

The schematic diagram shows how to connect them. (Don’t worry about the LCD for now.)

click to enlarge

Once we know the temperature that the sensor reports, we will want to tell someone what it is. For now, we’ll do that by simply outputting the value on the computer that the Arduino is connected to, in a special window called the “Serial Monitor.” This gives us a place to display messages from our program where a user can see it.

I have written an Arduino sketch that implements an example of this, which you can study and use as a base for your program if you need it to get started. You can open this Thermometer.txt file and copy and paste the code into an Arduino sketch. Once your circuit board is wired and connected to the Arduino, you will need to open the Arduino “Serial Monitor” window in order to see the output.

click to enlarge

Here’s a picture of what’s happening in the code to map the sensor raw value to a voltage, which is then converted to a temperature. You can just use the example code, you don’t have to understand this if you don’t want to.

click to enlarge

If you would like to experiment with the Processing application that I used in the demo to graph the temperature data on screen, you can open this ThermoGrapher.txt file and copy and paste it into a Processing sketch. When your Arduino sketch is running, press the run button on the Processing toolbar and you should see the graph respond.

Now, for the assignment!

The example sketch displays the temperature in text form on the computer. This is fine for us in the lab, but not very useful as a real thermometer. Your job is to make a digital thermometer with LEDs to show people what the current temperature is. This will make your thermometer useful even if the Arduino is not connected to the computer.

Add at least 5 LEDs in a row to your circuit and devise a way to light them up depending on the temperature value. You should modify the basic thermometer program to continuously light up the LEDs in a pattern that shows how warm or cold it is.

click to enlarge

You will have to figure out a reasonable range of temperatures for the minimum and maximum number of LEDs on your circuit. This sensor can react to a very wide range of temperatures (-50°C to 125°C), but you will probably want to have it light up a much smaller range around room temperature so you can see the changes. Here’s a picture of what it might look like, but feel free to design your own thermometer.

Once you have calibrated the LED range, write Arduino code that turns all of the LEDs on or off to indicate the ranges you have chosen. You can turn on a single LED to show what range the temperature falls in, or you can make it like a column of mercury that rises and falls. Your program logic will undoubtedly use multiple if/else statements to do that, regardless of your algorithm.

Submit your final Arduino program (the .pde sketch) at this link: Assign 16: Digital Thermometer.

GRADING (Homework)
Completed 10 pts
DUE: Friday, January 6.

Assignment 15: Morse Code

In this assignment, you will get to use some of the new style of coding you are learning in Arduino — the “C” programming language.

Unlike Scratch, C is a text-based programming language. This has advantages and disadvantages, like all things in life. It can be faster and easier to develop more complex codes in a text language like C, but C is more complicated to use at first than Scratch because it requires that you give precise commands for your goals. Of course, you had to do that in Scratch, too, but C is a little trickier because Scratch prevented you from making syntax erros in your code, and C does not.

click to enlarge

Morse Code is a “method of transmitting textual information as a series of on-off tones, lights, or clicks that can be directly understood by a skilled listener or observer without special equipment.” [Wikipedia: Morse Code]

In this assignment, you are going to make your Arduino flash an LED in Morse Code patterns.

Using one LED, write an Arduino program that sends the Morse Code version of your name in flashing on-off patterns, according to the table above. Choose an interval of time for one “dot,” and then use that as the basis for all of the other letter patterns, as explained in the timing notes on the chart.

click to enlarge

To help you understand the concept, here is a graphic that illustrates the Morse Code patterns and how they can be translated into LED flashes and then Arduino code. This example, for the letters “CS” should provide you a blueprint for how to develop an Arduino program that transmits your name.

And here is an Arduino sketch code that implements that example, which you can study and use as a base for your program if you need it to get started. You can open this MorseCodeCS.txt file and copy and paste the code into an Arduino sketch.

Now, once you have that working, the next step is to look for ways to reduce the size of your sketch code, which probably has a lot of redundant code fragments. One way to do this is to look for blocks of code that are repeated and use a “for loop” in Arduino to simplify your code; an example of this and details are on the handout I gave you in class. The template for a basic repeat loop to do something 10 times, for example, in C is:

for (int i = 1; i <= 10; i++) {
   // something to be repeated
}

Here is another version of the above example that replaces a few segments of repeated code with a for loop and just one of the code segments inside it. Study this MorseCodeCS2.txt file and compare it to the previous one to see where and how it does this.

Then analyze your Morse Code sketch and replace as many redundant segments as you can with for loops. The reduced version should function identically to the original.

click to enlarge

Finally, for extra fun (and extra credit), add a buzzer to your circuit on a different pin and then modify your sketch code to make the buzzer generate audible Morse Code in the same pattern as your flashing LED. Then you have an old-fashioned telegraph receiver!

Submit your final Arduino program (a compressed .zip file of the folder containing the .pde sketch) at this link: Assign 15: Morse Code.

GRADING (Homework)
Completed 10 pts
DUE: Friday, December 16.

Assignment 14: Arduino Code Worksheet

Please complete the worksheet on Arduino Code and turn it on paper.

GRADING (Classwork)
Completed 1 pt
DUE: Monday, December 12.

Assignment 13: Project Analysis

A good software engineer is adept at reading as well as writing software. In other words, analyzing a software program is as important as developing one from scratch. Or from Scratch, if you’ll pardon the pun.

For your final assignment in Scratch programming, you will analyze my solution to the Group Maker (assignment 12) and answer some questions about it in this worksheet. This will give you practice in reading programs.

Download my solution to the assignment from Group Maker – Davidson, and explore how it works in Scratch.

Then download this Project Analysis Worksheet, print it out, and answer the questions on it. You may discuss these questions with your neighbor. Turn in just the pages with your answers, and be sure YOUR NAME is on all pages.

GRADING (Classwork)
Completed 10 pts
DUE: Wednesday, November 30.

Assignment 12: Group Maker

At the beginning of the group exercise this week for the Amazon.com workshop, I formed eight groups of students by pulling numbers at random out of a container. This was a very manual and rather time-consuming process. In fact, it is just the kind of task that computers can be programmed to do very well.

So, for your last Scratch assignment, you will write a “Group Maker” program in Scratch. This will give you some practice in using lists and using random numbers to pick an item from a list of choices. Here’s how it will work.

Assume that you have a list in Scratch that contains the names of all of the students in a class. You task is to first ask the user how many groups s/he would like to form at random from the list. From the answer, and knowing how many items are in the list, you can figure out how many students should be in each group.

For example, if there are 24 students in the class and you are asked to form 6 groups, then you know that each group will need to have 6 students in it.

Your program will need to have a Scratch list for each group that you are to form. For each of these lists, you should set up a repeat loop that chooses the right number of items from the class list for each group. In the example above, it is 6.

In this repeat loop, you should find an item number at random between 1 and the number of items in the student list (the length of the list). Then you can get the name of the student at that item, insert it into the new group list, and then remove it from the class list so that the student is not in the available choices for the next pick.

There are some tricky cases to handle in this process for it to work correctly, but don’t worry about those to begin with. (An example is the case where the number of students is not evenly divisible into the number of groups requested.) Just get the basics going.

To get you started, here is a Scratch program that loads some student names into a list when the green flag is kicked: Group Maker. You can use this as a starting point for your program.

Part of your task is to understand how to use the random operator in Scratch and then combine this with code that will select items from a list.

Use your imagination for how to creatively show the resulting groups to the user, once you have constructed the group lists!

Submit your Scratch program at this link: Assign 12: Group Maker.

GRADING (Homework)
Completed 10 pts
DUE: Wednesday, November 23.

Assignment 11: Translator

For this exercise, you will experiment with message passing in Scratch, called “broadcasting.” Here are some resources that explain broadcasting messages:

  • Scratch Messages: slides I showed to explain messages in Scratch
  • Broadcast Sample: a tutorial explanation of broadcast messages in Scratch, by some kind Scratcher

Here is a Scratch program that does simultaneous translation of vocabulary words: Translator.

For your first exercise, add a few new vocabulary words to the program and at least one other translator in a different language.

Scratch also has a feature called “lists.” This very powerful technique (known as “arrays” in traditional computer science) allows you to assemble a number of variables into one larger collection of “items” in a list. It often simplifies the code you have to write to deal with large numbers of related things.

Here are some explanations of lists, in Scratch programs:

  • List Tutorial: a step-by-step explanation of how to use lists, by someone in the Scratch community
  • Keyword List Demo: an example of how you could use a list in your Chat Bot program from the previous exercise, by me

Now, for the real challenge in this Translator, you are to generalize the translation lexicon (the list of words in the dictionary that can be translated). To do this, you will construct one Scratch list for each language that you are providing a translator for. Think of parallel lists that might look like the table below. Your translator must have at least 10 words in at least 4 languages. Put each language’s list of words in a separate list.

item English Italiano Français Deutsch your choice
1 dog cane chien Hund
2 cat gatto chat Katze
3 man uomo homme Mann
4 woman donna femme Frau
5 to love amare aimer lieben
6 What time is it? Che ore sono? Quelle heure est-il? Wann ist es?
7
8
9
10

Now make your Scratch program ask the user to enter a word or phrase to be translated. Search the list of English words and phrases for a match. If you find one, broadcast a message to all of the translators to respond with the translation in their language. If you don’t find a match, then reply to the user and let him enter another word or phrase to translate.

The keyword list search example above will show you how to search a list when you don’t know how long it is. This is the first big challenge in this assignment. The second is how to have each translator know which English word you found so that it can find the corresponding one in its language’s lexicon.

Submit your Scratch program at this link: Assign 11: Translator.

GRADING (Homework)
Completed 10 pts
DUE: Monday, November 14.

Assignment 10: Chat Bot

A “chat bot” is a software program that is designed to (attempt to) carry on a conversation with a human being. Developing such a piece of software is a common pursuit in a branch of computer science known as artificial intelligence.

The first such program, a very primitive effort called Eliza, was developed in the mid-1960’s by an MIT computer scientist named Joseph Weizenbaum. Amazingly, it fooled many humans into believing they were talking to a real human.

To get an idea of how this works, you are to chat with two examples of chat bots:

Spend some time with each of these bots. Then discuss the following questions with a partner:

  1. What was it like talking to Eliza?
  2. What was it like talking to Cleverbot?
  3. How were Eliza and Cleverbot similar?
  4. How were Eliza and Cleverbot different?
  5. When did it seem like you were talking to a human? When did it seem like you were not talking to a human?
  6. Which bot did you like talking to more? Why?

Now, for some background, listen to the beginning of this episode of RadioLab, about “Talking with Computers.” The first part of the show is about the making of Cleverbot.

Then print out this worksheet — Talking with Machines — and answer the questions on it. Work in groups to discuss the issues.

Now, you will write your own Chat Bot, using Scratch. Details of the assignment are found here: Scratch Chat Bot. Follow the assignment instructions and be creative!

Submit your Scratch program at this link: Assign 10: Chat Bot.

GRADING (Homework)
Completed 5 pts
DUE: Wednesday, November 2.

Assignment 9: Amazing Maze

This assignment will give you practice with using variables, conditional logic, and keyboard events in Scratch.

Your task is to create a simple maze game, where the player uses the keyboard to navigate a Scratch sprite through a maze. Here are the basic rules of the game:

  1. Pressing one of the arrow keys should move the sprite up, down, left, or right.
  2. Create a variable that keeps track of the number of moves the player makes during the game. Each time an arrow is pressed counts as one move. The variable should be displayed om the game board so we can always see the number of moves that have been made.
  3. When the player successfully reaches the end of the maze, have the sprite announce how many moves it took to get there.
  4. Pressing the space key should reset the game to its initial state: move the sprite to the initial position, reset the number of moves to zero, etc.
  5. Pressing the green flag should start the game, which should do everything that the Space key does. It should also have the sprite announce the beginning of a new game.
  6. Use this image for the maze: Maze Background. You can download this image, and then import it into your Scratch program as a background for the Stage. Feel free to use a different image, or make your own, as long as it is as least as complex as this one.

But, of course, this isn’t really a maze-following game, because the player could just ignore the walls of the maze and head right for the exit.

So we need some more rules. But start with the above version and get that working first. Then add the following rules.

  1. Do not let the sprite run over any walls. Make sure it checks to see if there is room to go in the direction it is headed without hitting the wall. If not, just ignore the arrow move command, but still count it as a move!
  2. If the sprite reaches the end of the maze, make a little fanfare if it took less than 50 moves to do it.
  3. If the sprite takes more than 100 moves and still has not reached the end of the maze, let the player know and end the game with some obnoxious sound or action.

If you get all that working, think up some other fun things to add to the game. Here are some ideas, but go crazy with your own!

  • Add a timer to the game and give the player a maximum amount of time to solve the maze.
  • Make the sprite bounce off the wall when it hits it and spin around randomly in a new direction.
  • Make up your own maze image, perhaps a more complicated one. Add levels to the game.
  • Add an automatic mode, where the sprite goes off on its own without being controlled by the arrow keys and randomly tries moves to navigate through the maze.

Submit your Scratch program at this link: Amazing Maze.

GRADING (Homework)
Game Play 1

  1. Green flag to start (1 pt)
  2. Space key reset (1 pt)
  3. Maze background image (1 pt)
  4. Arrow keys for navigation (4 pts)
  5. Move counter (2 pts)
  6. Success announcement (1 pt)
10 pts
Game Play 2

  1. Wall avoidance (4 pts)
  2. Success fanfare (1 pt)
  3. Failure tracking (1 pt)
6 pts
Scratch Program

  1. Use of variables (2 pt)
  2. Use of conditionals (2 pt)
4 pts
Extra features (Extra Credit) 5 pts
TOTAL 20 pts (+ 5 EC)
DUE: Friday, October 28.

Assignment 8: Golden Section

This assignment will give you practice with drawing in Scratch, using coordinate systems, animation, and a chance to use some math and creativity. You will also have to analyze a problem and break it down into smaller component tasks. This decomposition of the problem is an important part of the process, almost as much as writing the software.

Your task is to design and program an animation in Scratch that illustrates the mathematical construction known as the Golden Section (or the Golden Mean, or the Golden Rectangle).

Here is the link to “Nature By Numbers,” the video I showed in class about the relationship between the Golden Section and nature.

It is a stunningly beautiful and elegant animation by Cristóbal Vila, of Etérea Studios in Spain. Be sure to watch it on a nice HD monitor to appreciate the visual richness.

This page on the site — “The theory behind this movie” — has some excellent illustrations and explanations about the construction and correlation of the Golden Section to forms in nature.

In class, I demonstrated the geometric construction of the Golden Section. This image is a snapshot of that algorithm. Your program should illustrate the steps of the construction, not just show the final result.

You should first analyze this construction and break down the animation into smaller tasks. For instance, if you have to draw four rectangles in total, then think about how you will draw those four individual rectangles and how they relate to each other.

You are free to exercise your own creativity in designing this animation, and encouraged to come up with a good educational, visual explanation of the Golden Section. It should show the basic geometry of the ratio and demonstrate the graphical relationship involved. (You do not have to illustrate the recursive nature of the rectangle.)

Here are two helpful Scratch programs you can look at, download, and maybe learn something from:

  • Pentagon Tutorial: this program, by a student in last year’s class, shows one way to draw a pentagon correctly in Scratch. It’s a nice simple method, and helps you understand the stuff about angles of your sprites.
  • Circle Drawing Demo: this program, by me, uses trig functions to calculate coordinates on the circumference of a polygon and draw it. It also shows how to use a variable to control the number of sides and the radius of the polygon.

After demonstrating the geometric relationship on a plain background, modify your Scratch program to allow you to create different size Golden Rectangles based on a variable that indicates the vertical dimension (height in pixels) of the rectangle. Your program should be able to draw a Golden Rectangle (just the rectangle, not all of the construction animation) based on any arbitrary value of the height. (This will require you to use the Scratch variable technique.)

NOTE: Your program must use the green flag to start the animation. It also must use the space bar to completely reset the animation back to its starting configuration. And you must make use of Scratch repeat loops in your algorithm.

Submit your Scratch program at this link: Golden Section.

GRADING (Homework)
Golden Rectangle illustration

  1. Algorithm sketch (2 pts)
  2. Scratch program correctness
    • Rectangle construction (4 pts)
    • Circle & radii overlay (4 pts)
    • Correct ratios (2 pts)
  3. Scratch program internals
    • Green flag to start (1 pt)
    • Space bar reset (1 pt)
    • Use of repeat loops (1 pt)
15 pts
Variable size rectangle

  1. Use of variable (2 pts)
  2. Correct scaling (2 pts)
4 pts
Design & creativity 1 pt
TOTAL 20 pts
DUE: Friday, October 21.

Assignment 7: Think Different

This assignment is a simple one — just to reflect on Steve Jobs and Apple and the “Think Different” ad we watched last week.

I would like you to write a short essay (about 200-300 words) on some aspect of this man’s work, his company’s business and products and mission, the role of design in Apple products, the meaning of the “Think Different” ad, or any of the people mentioned in it. You have a lot of freedom to choose the topic of your essay. Some suggestions are below. What is important is that your thoughts be reflective and well-expressed.

I realize this is not a language arts or social studies class, where writing is a big part of the course work. But I do think that students of technology should be well-rounded and capable of expressing themselves in clear prose as well as good code. Just as Steve Jobs prized good thinking and humanist concerns in his technologists, I would like you all to strive for those qualities as well.

You can watch the “Think Different” ad at this link. A list of the people seen in the ad are below.

Albert Einstein
Bob Dylan
Martin Luther King, Jr.
Richard Branson
John Lennon
Buckminster Fuller
Thomas Edison
Muhammad Ali
Ted Turner
Maria Callas
Mahatma Gandhi
Amelia Earhart
Alfred Hitchcock
Martha Graham
Jim Henson
Frank Lloyd Wright
Pablo Picasso

Here are some references that I found interesting. Please read a few of them; you may use them as inspiration for your essay.

Submit your essay at this link: Think Different Essay.

GRADING (Homework)
TOTAL 5 pts
DUE: Thursday, October 13.

Assignment 6: Scratch Connect

This assignment will give you practice in using Scratch blocks and writing a program that accomplishes a specific task, to a specification.

Download each of the following Scratch programs and follow the instructions on screen to create a working program that does what the instructions specify. You will need to figure out how to connect the blocks provided in the Scripts panel. You may NOT use any functions other then those provided in the Scripts box.

When you have solved each problem, save your version in a folder named ASSIGN-6-YOUR-NAME.

click to view larger

When you are ready to submit this assignment, create a compressed version of the folder with all of your Scratch programs in it. To do that, right-click on the folder and select the “Send to Compressed” option.

This will create a new folder next to your folder named ASSIGN-6-YOUR-NAME.zip.

Submit this compressed folder at this link: Intro to CS Assign 6.

GRADING (Homework)
Completed 5 pts
DUE: Friday, October 7 in the dropbox.

Assignment 5A: My Scratch Debug

Now that you have had some practice debugging a program, you can apply that skill to create your own debugging challenge.

Using the table below, develop an example Scratch program that focuses on some command or commands in the category for you. Make the Scratch program work correctly and do something that demonstrates those commands.

Workstation # Scratch Command
1-3 Motion
4-6 Looks
7-9 Sound
10-12 Pen
13-17 Control
18-20 Sensing
21-23 Operators
24-28 Variables

Then introduce a bug into your program so that the program works incorrectly according to your design. Follow the examples from Assignment 5 for formatting the program, with a message that explains what it should do, and a challenge to the user to repair the bug.

When we have a collection of them ready, we’ll have a debugging tournament, with some prizes for the best bug and the best fix!

And let’s try a new scheme for submitting assignments on this assignment. If this works well, we’ll use it for future ones.

Use this link: Intro to CS Assign 5A.

GRADING (Homework)
Completed 3 pts
DUE: Wednesday, October 5 in the FileStork dropbox.

Assignment 5: Scratch Debug

This assignment will give you practice in understanding how to diagnose and fix errors in a Scratch program (or any programming language).

Print out this worksheet — Debug-It, read each question, then download each of the following Scratch programs and modify them to fix the bug. When you have finished each one, answer the questions on the worksheet about how you fixed the bug.

Turn in the worksheet in the classroom dropbox.

GRADING (Homework)
Completed 5 pts
DUE: Wednesday, October 5 on paper.

Assignment 4A: Turning Polygons Worksheet

Please complete the worksheet on Turning Polygons and turn it on paper.

GRADING (Classwork)
Completed 1 pt
DUE: Friday, September 30.

Assignment 4: Drawing Patterns

Please complete the exercises on this Drawing Patterns handout. Save each one as a separate Scratch project, in one folder named “Assign 4 – NAME.” Compress and submit that entire folder in the course dropbox.

Here are two sample Scratch programs you can look at for examples:

GRADING (Homework)
Completed 5 pts
DUE: Friday, September 30, in the course dropbox.

Assignment 3: Conditionals Worksheet

Please complete the worksheet on Scratch Conditionals and turn it on paper.

GRADING (Classwork)
Completed 1 pt
DUE: Friday, September 23.

Assignment 2: The Name Game

OK, at last you start programming. Or “scratching,” as they say. Your first Scratch assignment is to make a simple animation using the letters in your name. The animation can be anything you like — be creative! This programming stuff is supposed to be fun. Use a separate sprite for each letter of your name and have each letter do something when the green flag is clicked. Each sprite should have a script that uses the “forever” block. Beyond that, go crazy and experiment a lot with as many blocks as you can find. Use the resources to poke around and try things. Here are two sample Scratch name programs you can look at for ideas. One is from another curriculum, and the other is one I made of my name. You can download them here to see how they work, and use them for ideas and techniques for your own animation.

  • Name.sb: a Scratch program that does crazy stuff with Cami’s name
  • Mr D.sb: a Scratch program that makes ME dizzy

Here is the introductory video we saw in class: Scratch Intro.

GRADING (Homework)
Separate sprites for each letter of your name 1 pt
Changing behavior for each sprite 1 pt
Using the “when green flag clicked” block 1 pt
Using the “forever” block 1 pt
Being creative (everyone is, this is just to make it 5 points) 1 pt
TOTAL 5 pts
DUE: Friday, September 23, for a demo in class.

Assignment 1: CS Research Report

This assignment is to follow up on our discussion of “What is Computer Science?” Here is the link to the UW “Pathways in Computer Science” video we watched.

Explore at least three of the following leading university computer science department’s web sites. To get a sense of the wide variety of application areas of computing, look at some of the different research projects and areas of investigation in their programs.

UW cs.washington.edu
Carnegie Mellon cs.cmu.edu
Stanford cs.stanford.edu
Berkeley cs.berkeley.edu
MIT eecs.mit.edu
Princeton cs.princeton.edu
Cornell cs.cornell.edu
Georgia Tech cc.gatech.edu
Illinois cs.illinois.edu
Penn cis.upenn.edu

Pick at least five specific projects that you find interesting, and read about the research efforts in more detail. Make notes of each one in your notebook. Include the name of the project, a URL for reference, and a summary sentence about the research work.

Then write a short report about the five projects. Your report should summarize each project, in your own words, and say why it interests you or what you find intriguing about it. Also state why you think, to the best of your understanding, the research area is significant in computer science. One concise paragraph for each project is sufficient. The purpose of this assignment is two-fold:

  1. To give you some insight into what the field of computer science is all about, in a research context.
  2. To give me an idea of what projects you think are most interesting so that I can incorporate your interests into our semester. I will try to arrange guest speakers to come to our class and talk to us about the work, especially if it is at the UW.
GRADING (Homework)
Five projects cited and summary paragraph completed for each 1 pt each
TOTAL 5 pts
DUE: Friday, September 16 on paper in class.

Assignment 0: Course Admin

Please complete the following three course administrative tasks for this assignment:

  • Discuss the syllabus and course policies with your parent or guardian and return the signed form to me.
  • Fill out an online survey with some information about yourself for me. You can find a link to the survey in the menu above on this site: Info | Student Info Survey.
  • Have your parent or guardian fill out an online (or on paper) survey and submit it or return it to me with the letter: Info | Parent Info Survey.
GRADING (Classwork)
Family letter signed & returned
Student Info survey completed
Parent Info survey completed
1 pt
DUE: Monday, September 12.