Java Programming

Location: Room 223B, 德田館
Time: 0910 ~ 1230


``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

Design patterns

Related courses

Wifi

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 ]

Date Summary
2017.1.16 programs, computational solutions, computer systems (CPU, memory, memory hierarchy), programming languages (high-level, assembly, machine code), algorithms, JDK + Eclipse, variables, data types (int, double, char, boolean);
2017.1.17 assignment operator, type conversion, arithmetic/rational/logical operators, selections (if-else if-else);
2017.1.18 selections (switch-case, ?: operator), loops (while, do-while, for), nested loops;
2017.1.19 analysis of algorithms, arrays, for-each loops, sorting algorithms, searching algorithms, briefing data structures;
2017.1.20 higher-dimensional arrays, matrix multiplication, defining methods, call stack, scope of variable, method overloading; HW01: Lab 2 and Caesar Cipher (due 1/23);
2017.1.23 recursion, classes & objects, fields and methods, encapsulation, constructors, this operator, static members, memory and objects; feedback sheet;
2017.1.24 HAS-A relationship (aggregation and composition), IS-A relationship, inheritance, method overriding, (subtype) polymorphism, up/down casting, binding, final, abstract classes, abstract methods;
2017.1.25 interfaces, packages, wrapper classes, immutable objects, enum types, nested classes, anonymous classes, READ: Difference between Procedure Oriented Programming and Object Oriented Programming;
2017.1.26 classpath, JAR, exception handling, GUI design, event handling, multithreading (FYR: Java Threads), file I/O, generics; feedback sheet; final exam; lecture.zip;

Sample code

Homework

Gradebook