EBoard 06 (Section 1): Classes

Warning This class is being recorded. (There may not be audio, but it’s being recorded.)

Getting started (this will be our normal start-of-class sequence)

Updated for Covid

  • Grab a card. The card will have a computer name and a location.
  • Remember the name and location.
  • Drop the card back in the jar.
  • Navigate to the computer.
  • If you arrive first, grab a disinfectant cloth, clean off the work area (particularly the keyboard), log in and load the lab, but don’t start.
  • When both partners arrive, introduce yourselves.

Approximate overview

  • Administrivia
  • Debrief
  • Questions
  • Lab


Introductory notes

  • Covid and other illnesses remains issues. Consider masking. Clean your keyboards.
  • Remember: Support is available
    • Mentor sessions: Sundays 4-5 pm somewhere.
    • Evening tutors: Sunday 3-5, Sunday-Thursday 7-10pm in 3813/3815.
    • Sam (via office hours, email, and Teams Chat).
    • Individual tutors.
  • GitHub is not being nice to some of you. I’ll try to help during class.

Upcoming Token activities


  • CS Extras, Thursday, 4:15 pm, Science 3821. Graduate school
  • Convocation, tomorrow, 11am, HSSC A2231 (Auditorium). Vincent Lloyd on Abolitionism: Religious Criticism or Secular Criticism?
    • Insert Sam’s convocation spiel.
  • Poetry reading 4:15 today in the Kernel (multi-purpose room) in the HSSC. It should be really interesting. First transgender professor at Yeshiva University. Draws upon book of Isaiah and Cosmopolitan Magazine.




Upcoming work

  • Readings for Friday. (Do before class; nothing to turn in. Please ask questions on Teams.)
    • Not ready yet. Stay tuned.
  • MP 1 due Thursday.
  • MP 1 post-assessment due Friday night. (Do it after you turn in the assignment on Thursday.)
  • MP 2 distributed Friday.

Attending class remotely

Given the illnesses going around campus, some of you may need to attend class remotely. That’s fine, but please try not to make it your norm.

a. Let me know via email that you will not be in class.

b. You are still responsible for the work. Plan to do the lab on your own.

c. Synchronous: If you wish, you can join the Teams Meeting during class. That gives you an opportunity to hear what I say and ask me questions.

d. Asynchronous: If not, I recommend that you check the recording and the eboard. (You may want to check those anyway.)

e. Let me know if you need extra time on any assignments.

Debrief on Monday’s lab

  • Modern programming tools: When they work, they seem transparent. When they don’t work, it’s often a PITA to figure out what’s going wrong.
  • Since we each may have different settings, what works for one person may not work for another.
  • Sam changes labs and other materials regularly. Make sure you have the latest version with ctrl-r (reload)
  • Sam is cruel and mean and makes us use command-line tools when the GUIs are much easier to use.
  • It appears that the designers of programming tools assume everyone knows JSON.
  • Output is weird in Java. If you don’t flush the buffer, things don’t appear. (If you don’t set autoflush to true when creating the PrintWriter, you don’t even see stuff when you print a newline.)


Why are you making us use the terminal for GitHub when there are nice UIs?

The terminal is always a good fallback. (Your UIs aren’t always available.)

May give you a better understanding of the steps.

You can use the UIs if you’d like.

I tend to be a command-line person.

Classes lab

Welcome to the boring part of the recording.

Note: Links to the Javadoc now appear in the lab. (Hmmm ….)

Note: toReal should be doubleValue.

Plan to finish up the lab with your partner (or on your own).

Sam will hang around to answer questions.

Debrief / Some important lessons

  • We work at different speeds.
  • OOP encourages a different way of thinking. Instead of “multiply x and y”, we tend to write “tell x to multiply itself by y”.
    • One of the parameters is (usually) implicit
  • When you work with a language that has libraries, you have to get used to reading the documentation for those libraries. For example, strings have indexOf, split, subString, and more.
  • The core Java libraries are not necessarily designed consistently. For example, why do we create a new BigInteger from an int with BigInteger.valueOf(i) rather than new BigInteger(i)?