Object-Oriented Software Engineering

Assignment 7: Implementation · Investigating Mysteries

Working on the Assignment

Errata: In the video I made a mistake when talking about § Dates & Times, question 4. I said that because of the time zone you’d be using 1 late day instead of 2. I should have said that you’d be using 2 late days instead of 3. Thanks Stephan Kemper for finding the mistake.

Character Encodings

25 points

Consult the lecture notes, including the notes under “More Information” that were added after the lecture.

  1. What’s the difference between ASCII, Unicode, UTF-8, and UTF-16?

  2. What’s the difference between an Unicode code point and the encoding of a character in UTF-8?

  3. What are the Unicode normal forms?

  4. For what can you use Unicode normal forms?

  5. What are the two differences between the following strings?

    I love OOSE-at least I think I do.
    I love OOSE—at least I think I do.
    
  6. When would you use the characters that are unique to the first string above? When would you use the characters that are unique to the second?

  7. Where in this website can you find the characters that are unique to the second string above?

  8. What’s your favorite weird Unicode code point?

Floating Point Numbers

10 points

  1. What’s the standard for defining floating point numbers (in JavaScript and many other languages)?

  2. What’s a project in which it makes sense to use floating point numbers?

  3. What’s a project in which it makes sense to use numbers with more precision?

  4. What’s a project in which it doesn’t matter what kind of number you use?

Dates & Times

20 points

I submitted my Assignment 5 and Roboose said that the time of my submission was 2019-10-11T14:35:00.000Z.

  1. In what format is this?

  2. What do each of the parts mean?

  3. What time was it in Baltimore when I submitted my assignment?

  4. How many late days (if any) did I use?

The Mystery of That Which Was Itself

35 points

Solve the mystery in a systematic way, showing how you go through the steps we discussed in lecture. After you followed the steps, discuss what the problem is, why it happens, how to fix it, and how to prevent this kind of error in the future.

Challenge Your Assumptions

10 points

Go over some of these lists of things that people assume but that are false. Compile a list of the 10 assumptions that surprised you the most.

Submission

⚠️  Your assignment is submitted only when you submit the form below.

Assignment

For example, jhu-oose-example-student.
Don’t include an @ sign at the beginning—this isn’t a mention.
GitHub identifiers do not start with 2019-student-.

For example, 48092726db45fd4bcde21e3712ac2d8e4a094797.
Graders will look at the code base as of this commit.
The code base as of this commit must include the filled in template at assignments/7.md.
You may find the commit identifier on the commits page at https://github.com/jhu-oose/2019-student-<identifier>/commits/master. Usually you want the most recent commit.

Anonymous Feedback on Lecture 7

Confidence


Relevance


Difficulty


Pace


Anonymous Feedback on Assignment 7

Confidence


Relevance


Difficulty


Load


⚠️  Don’t submit this form multiple times.

If you run into problems, send an email to assignment-submission@jhu-oose.com. Include the information about the submission: your GitHub Identifier and the Commit Identifier. Don’t include any information about the feedback—it’s anonymous.