Java Programming

Location: Room 108, 德田館
Time: 0930 ~ 1230, Saturday and Sunday


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

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 ]

Date Key points and memo Sample code
2016.11.19 programs, computational solutions, computer systems (CPU, memory, memory hierarchy), algorithms, programming languages (high-level, assembly, machine code), JDK + Eclipse, variables, data types (int, double);
2016.11.20 data types (char, boolean), type conversion, assignment operator, arithmetic/rational/logical operators, selections (if-else if-else); HW1: Lab 0 due 11/26;
2016.11.26 selections (switch-case, ?: operator), loops (while, do-while, for); CashierProblemDemo.java, CompoundingDemo.java , FindMaxDemo.java, MonteCarloDemo.java, PrimeDemo.java;
2016.11.27 nested loops, analysis of algorithms, arrays; HW2: Lab 2 due 12/3; BisectionDemo.java, MultiplicationTableDemo.java, PrintStarDemo.java, FindMax2Demo.java;
2016.12.3 for-each loops, sorting algorithms, searching algorithms, briefing data structures, higher-dimensional arrays, matrix multiplication; GuessNumberDemo.java;
2016.12.4 defining methods, call stack, scope of variable, method overloading, recursion; HW3: Lab 5 due 12/10; feedback; MethodsDemo.java, SelectionSortDemo.java;
2016.12.10 classes & objects, fields and methods, encapsulation, constructors, this operator, static members, HAS-A relationship (aggregation and composition); PointDemo.java, RPGDemo.java;
2016.12.11 IS-A relationship, inheritance, method overriding, (subtype) polymorphism, up/down casting, binding, abstract classes, abstract methods, final; HW4: Lab 6 due 12/17; StudentDemo.java;
2016.12.17 interfaces, packages, classpath, JAR, exception handling, Difference between Procedure Oriented Programming and Object Oriented Programming, memory and objects; InterfaceDemo.java, EnumDemo.java, ExceptionDemo.java, Test.java, PackageDemo.java;
2016.12.18 GUI design, event handling, multithreading (FYR: Java Threads), Kelly's formula, Martingale, file I/O, design patterns; CircleDemo.java, FirstGUI.java, NumberGuessingDemo.java, NumberGuessingDemo2.java;

Homework

Gradebook