ICS211: Introduction to Computer Science II
Spring 2013
Dr. Zach Tomaszewski
http://www2.hawaii.edu/~ztomasze/
01a: Welcome to the Course
ICS211, Spring 2013
Dr. Zach
(switch view)
Zach Tomaszewski

Icebreaker (5 min)
- For at least two people next to you:
- Learn their name
- Find one non-obvious thing you have in common
- Obvious: Both male, UH students, in ICS211, etc.
- Non-obvious: Went to same high school, play Starcraft II, don't like spam, etc.
Will then form a public graph of connections found.
My Teaching Philosophy
- Education = student learning + sufficiently broad foundation + assessment
- Learning vs Teaching scale
- My job: staircase vs escalator
- Walking analogy (and your current exciting level)
- Factors: ability, watching others, experiment with techniques, get help, practice, keep at it.
- Contract: Learn a set amount of material in 1 semester (move as a group)
- Consider your motivation (reasons for being here)
Let's Start!
"Let me not think of my work only as a stepping stone to something else, and,
if it is,
let me become fascinated with the shape of the stone."
--Ze Frank, from invocation
ICS211: Course Content
- Data stuctures / Abstract Data Types
- Algorithms and complexity (big-O)
- Software engineering practices (esp. OOP)
- Programming skills (Java)
Grading
- 50% assignments/lab (up to 55% with EC)
- 50% lecture
- lecture style (slides, blackboard, two-topic-break format)
- 5% quizzes and discussion (in Laulima, open-book)
- Weekly. Will prepare you for exams: review and examples.
- 45% exams (3 midterms, 1 final. Each 15%, drop lowest)
- No individual make-up exams. Instead, final exam acts as a makeup available to everyone.
- Final is on Monday of exam week.
- Need 70%+ to get B or better.
- Fairly standard letter grade assignment. No curve.
- ~100 points a week.
Lab
- TAs: Anthony Christe and William Wright ("we")
- Lab will cover practical/technical aspects of the course
- Including stuff not covered in lecture
- Attendance is expected
- May be required for parts of certain assignments
- EC opportunities
Assignments
- Weekly (usually). Will get larger over term, but will try to front-weight term.
- Start early!
- Usually due Wed.
- Always due by 8am on day after due date.
- Will submit through Tamarin (more on that next time)
- "No collaboration" rules. (See Syllabus for more.)
Textbook
- Why we have this one.
- Recommended, but not required
- You should have a book (handy comprehensive resource).
- (programmer resource-selecting skills)
Read the Syllabus
- Second time I've taught this course
- Some minor things may still change as we go (syllabus, schedule, some activities, etc.)
- Keep me informed.
- If you need help, ask! (Me, TAs, LAs...)
Questions now...?
Java Review
Basics I: Conditionals, etc.
Review Format
- Just a quick recap.
- Will be an online quiz to help you identify some knowledge gaps
- but can't cover every concept in a quiz
- Good review sources: Java Tutorial and Appendix A of textbook.
- One thing to know it, another to be skilled at it.
Printing
- Difference between print and println
- You can print anything, including nothing (with println):
int badgers = 6;
System.out.print(3)
System.out.println(badgers)
System.out.print("honey")
System.out.println();
System.out.print("badgers")
Literals, Datatypes, and Variables
- literals: 3, 3.0, '3', "3"
- data types (primitives vs objects)
- variables
- declaration
- assignment
- initialization
- identifier (name)
- empty string (
""
) and difference between ""
, " "
, ' '
, (and ''
)
- escape characters: \n, \t, \\, \", \'
Operators (1/2)
- Arithmetic: +, -, *, /, %
- Concatanation: + (example: "3" + 3)
- Assignment: =
- Compound (shortcut) assignment: +=, -=, *=, /=, %=
- Increment and decrement: ++, -- (and difference between num++ and ++num)
Operators (2/2)
- Relational: ==, <, >, <=, >= (and when to use == vs. .equals(...))
- Logic: !, &&, ||
- Precedence rules (for all operators)
Conditionals
if
(and its various permutations)
- if
- if-else
- if-elseif
- if-elseif-...-else
- nested ifs
- Always use curly braces! (but know the rules for leaving them off).
switch
case
, break
, and default
- fallthru (when you don't use a break for a given case)
Odds and Ends
- Terms: expression, statement, block
- Scope (of a variable)
- Three kinds of comments: //, /* ... */, /** ... */
Summary
- Welcome to the course!
- Review of Java basics
- Printing, data types, variables, operators, conditional, comments
For next time...
- Next time: Algorithms, more Java review
Space, Right Arrow or swipe left to move to next slide, click help below for more details