Java Programming

Location: Room 108, 德田館
Time: 1900 ~ 2200 on Tuesday and 1930 ~ 2230 on Friday


``Java is C++ without the guns, knives, and clubs.''
-- James Gosling, co-inventor of Java (1955-)

Goal

This course is designed for the students who want to learn Java without any programming experiences before. We will start with the very beginning of program design and fundamental concepts about programs and machines. You are expected to be capable to implement your idea in Java independently after 30 hours of lectures. Furthermore, I wish you could learn other programming languages without suffering from starting over.

Prerequisites

Text

References

Java (introductory level)

Java (advanced level)

Data structures and algorithms

Object-oriented analysis and design

Computer organization/architecture

Related courses

Misc

Additional reading

IDE

Overview

Procedural programming

Object-oriented programming

Applications

Data structures and algorithms

Schedule [ 247, 250, 251, 252, 253, 254, 255, 260, 261, 263, 265, 266, 268, 269, 271, 274, 275, 276, 277, 278, 280, 281, 281n ]

Date Summary
2017.4.11 programs, computational solutions, computer systems (CPUs, memory, memory hierarchy), programming languages (high-level, assembly, machine code), algorithms, JDK + Eclipse, first Java program; HW1: Lab 0 due 4/14;
2017.4.14 variables, data types (int, double, char, boolean), assignment operator (=), type conversion, arithmetic operators (+, -, *, /, %), rational operators (>, <, ==), logical operators (!, &&, ||, ^), compound operators (+=, ++), selections (if-else if-else);
2017.4.18 pseudo random, selections (switch-case-default, ?: operator), loops (while, do-while, for); HW2: Lab 2 due 4/21;
2017.4.21 jump statements (break, continue), nested loops, analysis of algorithms;
2017.4.25 arrays, for-each loops, sorting algorithms, searching algorithms, briefing data structures, higher-dimensional arrays, matrix multiplication, defining methods, call stack, scope of variable;
2017.4.28 method overloading, recursion, classes & objects, fields and methods, encapsulation, constructors, this operator, static/instance members, HAS-A relationship (aggregation and composition); HW3: Lab 5 due 5/2;
2017.5.2 memory and objects, IS-A relationship, inheritance, method overriding, bindings, (subtype) polymorphism, up/down casting, instanceof operator, abstract classes/methods, final (variable, method, class), interfaces, packages, wrapper classes, immutable objects, enum types; feedback;
2017.5.5 namespacing, packages, nested classes, anonymous classes, classpath, java archives (JAR), exception handling; HW4: Lab 6 due 5/9;
2017.5.9 strings (see regex by Oracle, or regexp, JavaRegularExpressions), file I/O, GUI design, event handling; multithreading;
2017.5.12 final exam (sol/); feedback sheet;

Sample code

Homework

Gradebook