H. Işıl Bozma, Professor of Electric and Electronic Engineering
This course is an introductory course to object-oriented programming and Java for EE undergraduates and
graduate students. The objective of the course is to introduce the basics of object-oriented programming and get
the students to an intermediate level of competence in Java programming. The first three weeks of the course is
devoted to explaining the principles of object-oriented programming. The rest of the course is then allocated to
Java language basics, design and development of applets and applications, GUI, event-handling, graphics, threads
and multi-threading, IO streams and networking.
What I expect the students to have learned at the end of the course are as follows:
- Fair competence in writing, compiling, debugging, and documenting Java software
- The basics of object-oriented programming
- Ability to implement intermediate level Java applets and applications to meet desired specifications
- No specific, any Java book.
- J. Jaworski, Java 1.2 Unleashed, Sams, 1998 .
- D. Bailey, Java Elements, McGraw-Hill, 2000.
- Sun's Java tutorial
- Sun's Java API Documentation
- Writing compatible programs
Prerequisites by Topic:
- The students are expected to be familiar with one programming language.
Week 1: Introduction – Java, JVM, JDK, Java Software Development
Week 2: Principles of OOP
Week 3: OOP Basics
Week 4: OOP Basics & Java
Week 5: Developing Java applications
Week 6: Java utils api
Week 7: I/0 Streams Input and output API’s.
Week 8: Developing Java applets
Week 9: Java GUI
Week 10: Event - handling
Week 11: Swing Advanced GUI components.
Week 12: Threads
Week 13: Multithreading -- Concurrent programming
Week 14: Networking – UDP and TCP
Week 15: What remains – Servlets, J2EE and EJB, RMI, Databases
The class meets for two lectures a week -- one lecture consists of a two-hour session and the
second lecture is a one-hour. The lectures are conducted in the Dað Ozay computer classroom – where each
student has a computer on his/her desk. The students are required to do 5 Java programming homeworks. There
is also term project where the students work in groups of two of their own choosing and are asked to design and
develop Java software for an engineering application.There is one open-book midterm and one final.
Students use JDK and Forte -- software installed in EE computer laboratories. If they so
desire, they may also use other development software.
- Projects %50,
- Quizzes 10%,
- Midterm % 15,
- Final %25
(a)An ability to design a system, component or process to meet the desired needs: Design Java software with
given specifications. The principles of Object Oriented Programming are presented. Java API’s (classes and their
methods) are presented for regular mathematical programming as well as GUI’s, event-handling, developing
concurrent programs, IO streams and networking.
(b)An ability to identify, formulate and solve engineering problems:Each topic is presented with the motivation
of particular programming issues – where the respective Java classes and their associated methods would need
to be applied. The projects are also given with this in perspective. This is intended to prepare the students for
future projects involving Java and possibly other OOP language-based software design and development.
(c)A knowledge of contemporary issues: The issues that come up in writing advanced software tools such as
Graphical User Interfaces, multi-processes and networking are discussed. It is hoped that the students get a feel of
the general trends in software and related technologies.
(d)Use of modern engineering tools.Students use Java and JDK such as Forte for the development and implementation of their programs.
Prepared By: H. Işıl Bozma