Page 1
INF120
Basics in JAVA Programming
AUBG, Computer Science dept, Spring 2015
Assoc. Prof. Stoyan Bonev, PhD
Syllabus
Course Objectives:
This course is intended as a first year initial Java course. It provides the
fundamental principles of imperative programming (both structured and object oriented
approaches), as well as emphasizing the basic skills of efficient problem solving and
software development using the Input-Process-Output model of a computing process
and conventional concept for software development method and software life cycle.
The major topics covered include: problem-solving, various technologies to build
Java programs, object-oriented programming and GUI programming.
Examples illustrate syntax and semantics of the language constructs introduced –
primitive data types, reference variables, operators, expressions, statement level control
structures, methods, classes, objects, and programs (applications and applets) as a
collection of classes.
INF120 serves as an extra prelude to a set of COS and INF courses in the area of
data structures, algorithms, data bases, Web and Internet technologies, where more
advanced programming concepts are introduced. There are no prerequisites. Students
are recommended to have passed INF110.
Course Goals and Student Learning Outcomes:
INF120 is one of the elective introductory courses to the Information Systems
major program. The syllabus and course contents follow the goals of the program.
By the end of semester student learning outcomes are as follows:
 Students will acquire basic principles of Software Development Method /Software
Life Cycle/.
 Students will learn various technologies for building Java programs;
 Students will learn to create Java classes and write their own methods for solving
problems using programming techniques such as decision making, looping, string
manipulation, and arrays processing.
 Students will know principles of structured programming and object oriented
programming as basic methodologies for Software development.
 Students will be able to develop information systems using Java as implementation
language.
 Students will get background knowledge that permit to apply self study approach in
learning IS topics aside the curriculum.
Page 2
Course Description:
The INF120 Basics in JAVA Programming course includes lectures, exercises,
quizzes and home works.
Lectures present basic topics of programming in Java: program structure;
primitive data types – literals, named constants and variables; classes, objects and
reference variables; expressions as composite of operators and operands; statements;
methods – call, definition and parameter passing mechanisms. Source texts of various
programs oriented to concrete problem solving illustrate the topics covered.
Exercises contain discussion on Java source texts provided and tasks to be
individually solved (designed and implemented to an executable program) by the
student.
Quizzes are short 15-30 min sessions and intend to train students’ skills in
understanding specific Java syntax constructs.
Homework assignments are given usually at the end of a lecture. They are to be
delivered to the lecturer prepared as program documentation including printed listing
and output before fixed deadline.
List of Lectures, Exercises, Quizzes:
No
Sec 1
Sec 2
Sec 3
Sec 4
Sec 5
INF120 Basics in JAVA Programming. Brief Contents at a Glance
Topic
Basic Java Syntax
OOP Basics
Advanced Java Programming
Java Programs Classified
Java World
INF120 Basics in JAVA Programming. Comprehensive Contents
No
Topic
Sec 1 Basic Java Syntax
Elementary Programming. First Program in Java.
Primitive Data Types – literals, named constants, variables.
Expressions = Operands + Operators.
Executable Statements – assignment, decision, repetition.
The subroutine concept – Java methods.
Sec 2 OOP Basics
Data Encapsulation and Data Hiding. Value Types and Reference Types.
Inheritance and Polymorphism.
Abstract Classes and Interfaces.
Sec 3 Advanced Java Programming
One Dimensional Arrays and Multidimensional Arrays
Exception Handling.
GUI Components.
Event Driven Programming.
Advanced GUI Programming.
Page 3
Sec 4
Sec 5
Graphics.
File Input/Output.
Iteration and Recursion.
Input Data Validation.
Operator Overloading (short discussion – comparison to C++/C#).
Data Conversion.
Generic Programming.
Thread Programming.
Multimedia – audio and animation.
Distributed Programming.
Data Base Programming.
Java Programs Classified
Console Applications.
Dialog Box Window Applications
GUI Applications.
Applets.
Java World
JRE (JVM and API classes).
JDK (javac, java, javadoc, jar, jdb, etc).
Java IDEs.
Detailed Course Description:
Week no Lectures
Basic Topics
Week 01
Lecture 1
Lecture 2
Week 02
Lecture 3
Lecture 4
Week 03
Lecture 5
Lecture 6
Week 04
Lecture 7
Lecture 8
Week 05
Lecture 9
Lecture 10
Computers, SDM, Algorithms, Programs and Java
Introduction
Elementary Programming /First Java Classes/
Examples
Compiling and Running Java Programs
Command Line, JRE, JDK
Compiling and Running Java Programs
Java IDEs
Java Program Basics /Decision control structures/
Examples
Java Program Basics /Iterative control structures/
Examples
Java Program Basics /Methods 1/
Examples
Java Program Basics /Methods 2/
Examples
Java Program Basics /Arrays 1/
Examples
Java Program Basics /Arrays 2/
Examples
Page 4
Week 06
Lecture 11
Lecture 13
Java Program Basics /OOP, Objects and Classes/
Examples
Java Program Basics /Strings/
Examples
MidTerm Exam
Lecture 14
MidTerm Exam Comments
Lecture 15
Lecture 27
Java Program Basics /OOP, Inheritance/
Demo programs.
Java Program Basics /OOP, Polymorphism/
Demo programs
Introduction to Swing components
GUI programming
Graphics
Demo programs
Exception Handling
Demo programs
Abstract Classes and Interfaces
Demo programs
Event Driven Programming
Demo programs
Advanced GUI Programming
Demo programs
Applets
Demo programs
Multi Media
Demo programs
Recursion
Demo programs
File Input/Output
Demo programs
Home Works Presentation
Lecture 28
Final Exam Preparation
Lecture 12
Week 07
Week 08
Lecture 16
Week 09
Lecture 17
Lecture 18
Week 10
Lecture 19
Lecture 20
Week 11
Lecture 21
Lecture 22
Week 12
Lecture 23
Lecture 24
Week 13
Lecture 25
Lecture 26
Week 14
Quiz 1
Quiz 2
Quiz 3
Quiz 4
User defined methods, classes and objects
Arrays
EH, EvH
GUI /Graphic User Interface/ programming, Java Graphics & Applets
References: Recommended textbooks:
1. Y.Daniel Liang, Introduction to JAVA Programming, Brief version, 9e, IE, Pearson,
Prentice Hall, 2013.
Page 5
2. Malik D. S., JAVA Programming, From Problem Analysis to Program Design,
Course Technology, Cengage Learning, 4e, 2010.
3. Farrell J., JAVA Programming, Course Technology, Cengage Learning, 5e, 2010.
Other useful books:
4. Bruce Eckel, Thinking in JAVA, 4e, 2006.
5. Flanagan D., JAVA in a Nutshell, A Desktop Quick Reference, O’Reilly, 5e, 2005.
6. Lafore R., Data Structures & Algorithms in JAVA™, SAMS Publishing, 2e, 2003.
7. Any book on JAVA available in the AUBG library.
Grading:
Final exam: 38%
Midterm exam: 30%
Home works: 16% (4x4%)
Quizzes: 16% (4x4%)
The students will get a score in the range 0-100 for each of the components. The total
score (computed with the above coefficients) will be used to form the final grade:
A–, A (excellent) cover scores
B–, B, B+ (good) cover scores
C–, C, C+ (average) cover scores
D, D+ (poor) cover scores
90-100
80-90
70-80
60-70
90 - - - - - - - - - 96
80-83
83-86
70-73
73-76
60 - - - - - - - - - 66
96-100
86-90
76-80
66-70
Scores below 60 mean failure. + and – will be used for distinguishing the results in a
given level. Activity in a class will be treated as a bonus.
Attendance:
-
Students are expected to attend all classes.
An attendance register will be taken at each class.
Students who miss three classes will be dropped from the course.
Mobile phones ringing in class disturb the whole class. Please switch off your
mobile phone before each class.
Academic honesty: Students are expected to demonstrate academic behavior in full
capacity of the term.
Lectures/Exercises Hours:
Lectures/Exercises Room:
W 14:15 – 15:30,
COS lab
MB120
Office Hours: see list on office door or by appointment
Lecturer: Assoc. Prof. Stoyan Bonev, PhD
Office: 243
Tel: (ext.): 419
F 12:30 – 13:45
e-mail: sbonev@aubg.bg
Page 6
INF120
Basics in JAVA Programming
Spring 2015
Course Outline – Sequence of Classes
Remark: This syllabus is subject to modification. The instructor will communicate with
students on any changes such as in the schedule or the assignments.
Week No
1
2
3
4
5
6
Break week
7
8
9
10
11
12
13
14
Wednesday 14:15 – 15:30
Lec1
Introduction
Lec3
Running Java, JRE, JDK
Lec5
Decision stmts
Lec7
Methods1
Lec9
Quiz1
Arrays1
Lec11
Quiz2
Objects/Classes Hw3
Friday 12:30 – 13:45
Lec2
Elementary Java
Lec4
Running Java IDEs Hw1
Lec6
Loop stmts
Lec8
Methods2
Hw2
Lec10
Arrays2
Lec12
Strings
Break week
Lec23
Polymorphism
Lec14
Lec24
Midterm Comments
GUI1
Lec26
EH
Lec28
EvH
Lec22
Inheritance
MidTerm
Exam
Lec25
Graphics
Lec27
AbstractClass/Interface
Lec29
Qfuiz3
GUI2
Hw4
Lec33
Applets
Quiz4
Lec39
Recursion
Home Works Presentation
Final Exam Preparation
Lec35
MultiMedia
Lec31,32
FilesIO