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