CSC 207.02 2019S, Class 03: Getting started with Java development
Overview
- Preliminaries
- Notes and news
- Upcoming work
- Extra credit
- Questions
- Quiz
- Eclipse lab
- Git lab
Preliminaries
News / Etc.
- We’ll follow the new partner methodology.
- Partner names appear on the board.
- See email about “Do not partner me with” option.
- I’ve responded to every lab that has been submitted.
- Please turn in your academic honesty policy if you have not done so
already.
- If you’re not on the csstudents list, you probably should be. Let me
know if you’d like to be added.
- Mentor sessions at 7:00 p.m. Sunday nights.
- You will have a substitute teacher on Wednesday. I’ll be off at the
ACM FAT* conference learning about Fairness, Accountability, and
Transparency in Artificial Intelligence.
- If you feel unsafe coming to class on Wednesday, send me an email message
and I will treat it as an excused absence. You are, however, responsible
for making up the work on your own.
- When you send me questions about assignments, please title them
things like “QUESTION on Assignment 2”. It makes it much easiere
for me to identify them as questions.
- In case it wasn’t clear from the syllabus and such, I will randomly
call on students in class. I do this for multiple reasons.
- It avoids bias (conscious and unconscious). Since I’m using cards,
I am unlikely to ask more questions of people from certain groups.
- It builds skills. For better or for worse, many people expect you
to express your ideas, even when you have not formulated them
completely. Practice in a low-stakes environment should help.
- It can remind you that you are not alone in confusion or
misunderstanding. While I may sometimes force you to guess, you
can feel free to answer “I’m not sure” when I call on you.
- It sometimes incentivizes you to ask questions. If you know
that I might ask you questions, you may be more inclined to ask
me questions.
- And more.
- If being called on during class causes severe anxiety, let me know and
we’ll figure out a way to adjust to support you.
- I’ve updated the due time for lab writeups; writeups are generally due
at the start of class.
- You should be able to access everything on the current eboard by
substituting
.md
for .html
at the end of the URL.
md
stands for “markdown”, a very simple markup language that
I use when writing the boards.
- I’ll probably work on ways to automate the update of the HTML page.
Upcoming work
- Assignment 1 due Thursday night.
- Reading due before class Wednesday.
- No lab writeup.
- CS Table Tomorrow, Noon, Somewhere. Trusting trust.
- Kindness through gratitude, Tuesday 11-1, outside DHall.
Other good things
Questions
In Java, you can’t get addresses directly. Are they still there?
Yes. Every object is really a reference to an object. Every
array is a reference to a chunk-o-membory.
So when I mutate an object or array within a procedure, I don’t have
to return it?
Yes. If you mutate an object or array within a procedure, you are
mutating the object or array the caller knows about.
Talk to me about licenses. How do I choose one?
Licenses specify how others may use your code.
Typically: No warantee of behavior. Often: You can use this however
you wish, provided you cite me.
Some licenses are viral: “You must use the same license on any derivative
code.”
I tend to use the MIT license or GPL.
I ask you to choose a license to remind you that you own your code
and, eventually, have some responsibility to think about ownership.
MIT: Use and cite. GPL: Use, make source code available, cite,
viral.
Style guidelines
Benefit to everyone using the same approach.
We’re using one that’s fairly common.
Quiz
Isn’t it joyful to demonstrate knowledge?
Eclipse lab
I don’t know why the launcher creator has changed. But it clearly has.
Let me know if you have questions on how to create a launcher.
Git lab
What kind of commit messages should I use?
Something short that describes what you’ve just done.
“Add my first class.”
“Squash the output bug.”
“Remove cruft.”
“Refactor code in HelloWorld.”
“Add some unit tests.”