Java Programming Language  (2016 Spring Master Class)

Goals

(1) Understand the fundamental conceptions of Java language, including data type, control statements, functions, array, …;
(2) Understand the principles of process-based/object-oriented software design, including Attributes, Functions/Methods, Arrays/ Class, Object, Inheritance, Polymorphisim …;
(3) Have the basic ability and skill in Java basic programming;
(4) Know about the background of software programming and software engineering;
(5) Ability to analyze the application requirements and design the small software project.

 


Classroom and Laboratory

(1) Every Tuesday Morning and Thursday Morning in Week 1-12, Classroom D9-D515
(2) Project Presentation Show : [D9-D517 At 10:00 AM, Tuesday on June, 7th, 2016 in the 16th Week] (Please refer the syllabus for details)


Syllabus

No.

Type

Week

Lecuture

Code references

1

Lecture1

Week01

Topic: Introduction [slides]

1. HelloWorld.java
2. MainPara.java

2

Lecture2

Week02 Topic: Basic programming with Java [slides]
1. BasicDataTypes.java
2. BasicArithmeticOperations.java
3. CharCountSample.java
4. CalculateCircleArea.java
5. IncrementDecrementSample.java
6. IncrementDecrementSample02.java

3

Lecture3 Week03 Topic: Normal control structures [slides] 1. IfConditionSample.java
2. SwitchSample.java
3. SwitchSample02.java
4. SeasonJudge.java
5. EnumSwitch.java

4

Lecture3B Week03 Topic: Method (static) and Arrays [slides] 1. WhileDoWhile.java
2. ForStatmentSample02.java
3. BreakTest.java     ContinueTest.java
4. BreakLabelTest.java     ContinueLabelTest.java
5. MethodDeclare.java
6. ArraySample.java
Homework I I. SortingSample : SortingSample.java
1. Read the sample code and understand what functions have been proivded and their workinng flowchart.
2. Improve this program to finish the sorting methods as many as possible.
3. Provide addtional searching methods in this program.
4. Modify the program banner and test your program.
5. Follow your own way to make it better.
Homework I II. SimpleCalculator : SimpleCalculator.java
1. Read the sample code to understand its working process.
2. Extend this program to support the Math functions, like square root, absoluate value, sin, cos, etc.
3. Is it possbile to extend to support the scientific calculation, like "1+2*3+(2-3)/5" arithmetic expression.
4. Follow your own way to make it better.

5

Lecture4 Week04 Topic: Basic object-oriented concepts [slides] 1. Car.java     CarTest.java
2. Bicycle.java     BicycleDemo.java
3. Date.java     Employee.java     EmployeeTest.java

6

Practice1 Week06 Topic: Basic skills, arrays and OOP [slides] Sample codes:
1. DiceRolling.java
2. GradClass.java

7

Lecture5 Week06 Topic: Basic OOP concepts Inheritance:
Superclass and Subclass[slides]
1. Animal.java     AmimalTest.java
2. Bird.java     Fish.java    Wolf.java
3. Point.java     Circle.java     Cylinder.java
4. Package access demo

8

Lecture6 Week07 Topic: Basic OOP concepts Polymorphism [slides] 1. FinalDemoClass.java     FinalSubclass.java
2. Shape.java     TwoDemensionShape.java    Circle.java
3. Animal.java     Bird.java    Fish.java    
    Canidae.java     AnimalZoo.java

9

Practice2 Week07 Topic: Inheritance & Polymorphism [slides] Sample codes:
1. Common.java
2. Vehicle.java

10

Lecture7 Week08 Topic: Exception handling [slides] Sample codes:
1. Exception01.java
2. ExceptTest.java (from Java how to program(6th))

11

Lecture8 Week08
Week09
Topic: String and Regular Expression[slides]

Sample codes:
1. StringConstructorDemo.java 2. StringConcatenation.java
3. StringComparisonDemo.java 4. StringOperationDemo.java
5. StringIndexDemo.java 6. SubStringDemo.java
7. StringStartEndDemo.java 8. StringValueOfDemo.java
9. StudentIDCheckDemo.java

12

Project Week09 Topic: Project Proposal Defence[Requirement] Sample project proposals:
1. Project1:Intranet Mail System
2. Project check list: [details]

13

Practice3 Week10 Topic: String and Regular Expression[slides] Sample codes:
1. Sample.java
2. Sample02.java

14

Lecture9 Week10
Week11
Topic:Generic Programming and Collections [slides] Sample codes:
1. Dynamic data structures [download]
2. Dynamic data structures with generic [download]
3. ListTest.java LinkedListTest.java
4. SetTest.java TreeSetTest.java
5. TestMap.java WordTypeCount.java
6. Student System Demo with raw files [download]  

15

Lecture10 Week11 Topic:Thread in Java[slides] 1. SimpleThread.java   SimpleRunnableThread.java   SimpleThreadDemo.java
2. Producer/Consumer sample codes [download]

16

Lecture11 Week12 Topic: Access database using Java[slides] TestDB.java     JavaDatabaseDemo.java     database.properties

17

Lecture12 Week12 Topic: Basic socket programs in Java[slides] 1. DateServer.java     DateClient.java
2. EchoServer.java (from the network)
3. MultiEchoServer.java     MultiEchoServerDemo.java

18

Final Project Presentation

Important Information:
Date: Tuesday, June 7th 2016 in the 16th week.
Time: 10:00 ~ 12:00 AM.
Venue: D515 D517 in D9.

Project Requirements:
  1. Every group needs prepare a PPT for the project presentation.
  2. Every group needs prepare a 10~15 minutes presentation for the project based on the PPT.
  3. Every group must submit a hardcopy of the project report.
  4. Every group must submit all the materials including PPT, project codes, report of the project.
References:
  1. Project report template(word)[template][download sample]
  2. Project report template(latex)[template][download sample] [fonts]
  3. Latex environments: TexLive 2013 or later [Refer]

 

Reference Textbooks

[1] H.M.Deitel, P.J.Deitel, Java How to Program [digital version download], 6th ,Pearson 2004.
[2] Y.Daniel Liang, Prentice Hall, Introduction to Java Programming(brief version)[digital version download], Pearson 2011.
[3] Cay S. Horstmann, Prentice Hall, Core Java 2 (Vol.1)[download] & (Vol. 2)[download], Prentice Hall,2004.
[4] Bruce Eckel, MindView Inc, Thinking in Java[download], 3rd, President, MindView, Inc,2003.
[5] John O'Donahue, Java Database Programming Bibile[download], John Wiley & Sons, 2002.
[6] Oracle, Java Lambda Experssion: [visit] , 2014.
[7] Oracle, Java Lambda Experssion Quick Start: [visit] , 2014.

 

Resources

(1) IDE: Eclipse Sofware Homepage: https://www.eclipse.org/
(2) IDE: IntelliJ Software Hoempage: http://www.jetbrains.com/idea/
(3) Reference book for Java standard classes API (zip files) [download]
(4) Java Tutorial on Oracle website: http://docs.oracle.com/javase/tutorial/index.html

Feedback

If you have questions, welcome write e-mail to zhangcw@hust.edu.cn.
Due to the large number of spam e-mails, please add "[Java][Question]'' as the prefix in the title of your e-mail.
That will help me to identify your e-mails, thank you.

 


<Last Updated: 2016-05-10>