Introduction to Java
Weekly Material
Staff
Larry Stead, Instructor
- email: lss2168@columbia.edu
- cell: 1-973-932-3147
- Office hours: Please email if you would like to meet
- Other times possible as well
Pooja Bepin Shah, TA
- email: pbs2124@columbia.edu
- Office Hours: Please email if you would like to meet
- Generally Available
- Friday Afternoon
- Sunday 4pm
Software Needed
Homework Polices
- Due on Monday at Noon. Since I will go over solutions in class, late
homeworks can not be accepted without a Doctor's note, or something
equally serious.
- You are free to have discussions with other people, but you should not
look at anybody else's source code, nor should you let anybody see your
source code. You must do the implementation yourself. Violation of this
policy will result in a grade of zero for the assignment, and further
steps may be taken. Please review CS
Dept Academic Honesty Polices.
- Homework should be submitted using Courseworks.
Grading
- 90% - Seven homeworks, lowest score will be dropped
- 10% - Class participation
Course Objectives
- Develop fluency in the Java Language.
- Understand some of the tradeoffs between Java and other languages.
- Examine functional programming tools introduced in JDK version 1.8
- Learn about the Java "Ecosystem"
- Java APIs
- 3rd party APIs
- Tools
Tentative Course Syllabus
- Week 1 - Intro, data types, operators, expressions, statements,
control structures, memory model, classes, Eclipse
- Week 2 - Object oriented programming, classes, interfaces, strings,
exceptions, network and file streams, java.lang.*
- Week 3 - Generic types, collection framework, java.util.*
- Week 4 - Concurrency, fork/join, synchronizers, executors, locks
- Week 5 - Functional programming, lambda expressions, streams,
concurrency
- Week 6 - Miscellaneous topics and tools. Web servers
- Week 7 - Advanced topics : Android, reflection,
J2EE/Spring
Resources