Programming Practice (Java) -E2

Numbering Code U-LAS30 20040 SE11 Year/Term 2021 ・ First semester
Number of Credits 4 Course Type Seminar
Target Year All students Target Student For all majors
Language English Day/Period Mon.4・5
Instructor name EVEN,Jani Juhani luc (Graduate School of Informatics Program-Specific Senior Lecturer)
Outline and Purpose of the Course Java is an object-oriented language that is designed to be robust, secure and portable while maintaining high performance. Java is a popular language used for numerous desktop applications, mobile applications and web applications. Java has a large number of libraries covering among others graphical user interface, networking, database access and scientific computing. The learning curve of Java is higher than that of simpler language like Python or Ruby but the reward is a higher maintainability.

In this course, students will learn to write programs that exploit the strengths of Java. First, the language will be presented and students will familiarize themselves with object-oriented programming while learning the basics of Java. Then, more advanced topics will be presented and illustrated with problem solving.
Course Goals In this course, the students will learn the concepts of object-oriented programming, practice object-oriented programming with Java and learn to solve real problems using programming.
After attending this course, the students should be able to write efficient object oriented Java programs that are easy to maintain.
Schedule and Contents Java is used in a wide range of applications and has a large number of libraries. Consequently, there are many things to learn in order to efficiently use Java.
This class starts from the basics but quickly tackles more advanced topics.

Part 1: Basic Java syntax
1. Basic Java syntax: types, variables, operators
2. Flow control: Branching and looping
3. Arrays

Part 2: Object-oriented programming with Java
1. Object-oriented programming and Java Classes
2. Class fields and methods
3. Class creation and instances
4. References and values
5. Access Control, scope, package
6. Interface
7. Inheritance

Part 3: Programming with Java
1. Java API
2. Exceptions
3. I/O
4. Parallel processing
5. Functional interface and lambda expressions
6. GUI using JavaFX
7. Network programming

Part 4: Program design, implementation and test
1. Problem presentation
2. Design the program
3. Implement and test the program

The schedule and contents are subject to change based on class progress.

Total:14 classes, 1 Feedback session
Evaluation Methods and Policy The evaluation will be based on the completion of the programming assignments given during the classes part 1 to 3 (70 %) and the program developed in part 4 (30 %). The notation criteria will be explained in details during the classes and a raw score grade [0-100] will be used. In addition, some classes will have self-evaluation exercises that will not contribute to the evaluation.
Course Requirements This course is designed for students with some programming experience in any other languages. The basics of programming are briefly presented so motivated students with no programming experience can apply.
The students are expected to complete the programming tasks in parts 1 to 3 during the classes. However, the programming task of part 4 and the assignments may require some homework outside of the classes. Then, it is recommended to have access to a computer outside of the classes.
Study outside of Class (preparation and review) If very unfamiliar with programming, it may be necessary to read the textbooks and practice programming in addition to the class.
Students who could not complete the assignments given during a class should complete them before the next class in order to smoothly follow the course.
Textbooks Textbooks/References No textbook, handouts.
References, etc. [1] David J. Eck “Introduction to programming using Java, eight edition” (creative commons) ISBN: 978-1441419767
[2] Hideki Tachiki and Taeko Ariga “JAVA Programming 3rd Edition for All” (Kyoritsu Shuppan) ISBN: 978-4-320-12423-3
[3] Java API (for java8: