Skip to content

HW 1: peoPLe

Your first assignment shares its name with the third big theme of the course — PLs + People. Fitting, since this assignment is really about getting oriented: to the syllabus, to the people and history behind programming languages, and to how this course actually runs.

How you'll submit this assignment

HW 1 is submitted entirely on Gradescope — there is no PDF or file to upload. As you work through this page you'll see boxes labeled Gradescope question; type your answer to each one directly into the matching question on the HW 01: peoPLe [written exercises] assignment in Gradescope, by the due date on the schedule.

(Later assignments will ask you to upload a PDF. This one doesn't.)

Keep your responses somewhere you can find them again as you work.

Gradescope question: Assignment preamble

Submit this response on Gradescope.

Gradescope's first question just confirms you can reach this page: select "I am able to access the instructions on the course web page."

What You'll Do

  • Get familiar with the syllabus.
  • Read and think about the history of programming languages, and the ways culture and programming languages are entwined.
  • Get oriented to how assignments work in this course.

Checklist

  • Read the syllabus
  • Read the Yang and Rabkin article
  • Read Grace Hopper's talk
  • Answer the syllabus questions on Gradescope
  • Answer the Yang and Rabkin question on Gradescope
  • Answer the Hopper question on Gradescope
  • Describe a spoken language and a programming language on Gradescope
  • Compare the two languages on Gradescope
  • Answer the "what is a programming language?" reflection on Gradescope
  • Submit the separate HW 1 reflection on Gradescope

Collaboration

For this assignment, you'll work on your own. Starting with the next assignment, you'll have the option to work with a partner — see the syllabus for the pair-programming rules once you get there.

You're always welcome to talk with other people in the course about the course materials — just keep the "in your head" rule and the "understanding, not rote learning" rule from the syllabus in mind.


Readings

Give yourself a few hours for this section — it's the bulk of the assignment. After the readings, there's roughly an hour of thinking and writing left to do.

The Syllabus

Begin by reading the syllabus. For real — please actually read it. It covers how this course works, what's expected of you, and why we've made the choices we've made.

History and Culture of Programming Languages

Two readings connect programming languages to the people and cultures around them:


Respond to the Readings

As you finish each reading, answer the matching questions on Gradescope.

Respond to the Syllabus

Gradescope question: Syllabus check

Submit this response on Gradescope.

List three things from the syllabus that you think will help you learn this semester. Gradescope has a separate box for each of the three.

Gradescope question: Syllabus questions / concerns

Submit this response on Gradescope.

After reading the syllabus, what questions or concerns do you have?

Respond to the Yang and Rabkin Article

Gradescope question: Yang and Rabkin response

Submit this response on Gradescope.

Pick a 1–2 sentence passage from the article. Paste the passage (in quotation marks) into the first box, then write a short (~50 word) reaction to it in the second box.

Respond to the Hopper Talk

Gradescope question: Hopper response

Submit this response on Gradescope.

Write a short (~50 word) description of something from the Hopper talk that surprised you, or that stood out to you in some way.


Think About Programming-Language Design

In this part, you'll reflect on how programming languages are designed by comparing them to spoken languages.

First, choose a random number between 1 and 10. Map it to one of these 10 most-common spoken languages by number of native speakers, according to Wikipedia:

  1. Mandarin Chinese
  2. Spanish
  3. English
  4. Hindi
  5. Bengali
  6. Portuguese
  7. Russian
  8. Japanese
  9. Western Punjabi
  10. Marathi

Gradescope question: Describe a spoken language

Submit this response on Gradescope.

  • Which language did you get?
  • What is the character set of that language? — the set of valid characters used to write it. If the character set has a name, you can just give the name.

Now, choose a different random number between 1 and 10. Map it to one of these 10 most-used programming languages, according to the TIOBE index:

  1. C
  2. Java
  3. Python
  4. C++
  5. C#
  6. Visual Basic
  7. JavaScript
  8. PHP
  9. R
  10. Groovy

Gradescope question: Describe a programming language

Submit this response on Gradescope.

  • Which programming language did you get?
  • What is the character set of that programming language? — a human-language summary is fine (e.g. "the letters of the English alphabet, plus some operators").
  • What are the keywords (also called reserved words) in that programming language? — you can usually find these by searching <language name> keywords.

Compare the Two Languages

Now put the spoken language and the programming language side by side.

Gradescope question: Compare spoken and programming language

Submit this response on Gradescope.

  • What does the spoken language have in common with the programming language?
  • What is different between the spoken language and the programming language?
  • How might the similarities and differences affect someone's ability to learn the programming language?

Reflection: What Is a Programming Language?

Think back on your definition of "programming language" from class / module 01.1.

Gradescope question: Reflection — what is a programming language?

Submit this response on Gradescope.

  • Are HTML and CSS programming languages, according to your definition? Why or why not?
  • What do you think Yang and Rabkin would say about whether HTML and CSS are programming languages?
  • What might be some consequences of TIOBE's decision not to include HTML and CSS on their list of programming languages?

Turning It In

There's nothing to upload for HW 1 — just make sure every Gradescope question box above has an answer in the HW 01: peoPLe [written exercises] assignment on Gradescope, submitted by the due date shown on the schedule. If you don't see the CS 131 course on Gradescope, email the instructor at bang@cs.hmc.edu.

There is also a short HW 1 reflection to submit separately on Gradescope. Every homework this semester has one — a few quick questions about how the assignment went, submitted for completion credit.


Where to Go From Here

If the themes of this assignment grabbed you, here's more to explore: