Object Oriented Programming cource | Assoc.Prof. Abzetdin Adamov | Computer Engineering Department | Qafqaz University

COURSE SYLLABUS FOR: Object Oriented Programming (with Java)

COURSE ID: COMP 201
CREDITS: 4
CLASS TERM: Fall, 2016
INSTRUCTOR: Assoc.Prof. Abzetdin Adamov
CLASS SCHEDULE: see My Calendar
JOB TITLES: Java Applications Developer, Java Programmer, Java Web Developer, Java Database Developer, Project Manager

Course Description:

This course is about the fundamentals of Object-Oriented Programming (OOP) Concept and OOP-based software development methodology. Java as a class-based and pure OOP language is used to demonstrate and implement appropriate concepts and techniques. The students are exposed to the concepts, fundamental syntax, and the thought processes behind object-oriented programming. By the end of course students will acquire the basic knowledge and skills necessary to implement object-oriented programming techniques in software development in Java.

Course Objectives:

As the business environment becomes more sophisticated, the software development (software engineering is about managing complexity) is becoming increasingly complex. As of the best programming paradigm which helps to eliminate complexity of large projects, Object Oriented Programming (OOP) has become the predominant technique for writing software in the past decade. Many other important software development techniques are based upon the fundamental ideas captured by object-oriented programming. This aim of this course is to introduce to programming in Java in accordance with Object-Oriented Programming concept.

Learning Outcomes and Competences:

At the end of this course student will:
  • Understand the concept and underlying principles of Object-Oriented Programming
  • Understand how object-oriented concepts are incorporated into the Java programming language
  • Develop problem-solving and programming skills using OOP concept
  • Understand the benefits of a well structured program
  • Develop the ability to solve real-world problems through software development in high-level programming language like Java
  • Develop efficient Java applets and applications using OOP concept
  • Become familiar with the fundamentals and acquire programming skills in the Java language.

Assessment Methods and Criteria:

Midterm Exam30%
Quiz and Compulsory Project20%
Final Exam (+ Project)50%
Extra project for succeeded students10 (points max)

Prerequisite:

  • 01010306 Fundamentals of Programming -1
  • 01010406 Fundamentals of Programming -2
Since this is not a beginning programming course, it is strongly recommended that students have fundamental knowledge and skills of programming. If student doesn't already understand fundamental programming concepts including instruction sequence, flow control and loop, data types and structures, function and procedure using a modern structured programming language, it would be difficult to succeed in this course. At the same time, no prior knowledge of any particular programming language is required. Grades will be assigned based on performance in class, examinations and programming assignments.

Software Installations:

In order to be able to run example codes, perform class tasks and exercises, homework assignments and final projects students must install following software...
Compulsory Software:
Optional Software (free Integrated Development Environmentst IDE for Java):

Text Books and References:

Students also are free to benefit from another books and reference guides of their own choice for OOP concept, Java programming, and Java technologies topics.

Lab Assignments and Homework Tasks:

Each student must complete all of following Lab and Homework Assignments and and submit them to email address (use a subject as "OOP Assignment - ") before the deadline. Submission deadlines are the latest date/time for submission, so works submitted after the deadline will be awarded a zero.
 

Lab Assignments: Each student must complete all of the following three Lab Assignments and submit them to email address by deadline.

  1. Lab Assignment-1
  2. Lab Assignment-2
  3. Lab Assignment-3

ANNOUNCEMENT:  

  • Quiz/Exam date is December 20, 2016 - 09:00 and December 21, 2016 - 09:00 - Exam will be performed on computer and includes 2D Graphics and GUI topic (You are not allowed to retake a quiz or any of exams);
  • The extra (bonus) project must be submitted by December 27, 2016 - 24:00. The deadline for presenting the project in class is December 27, 2016 (using of slides is compulsory). The final version of research thesis should be sent through email with appropriate subject ("OOP - Review Project"). The cover page of thesis should be prepared in accordance with Template (.DOC) and the content in accordance with IEEE Xplore Publication Standard (.DOC) or (.PDF). Minimum size of thesis is 4 pages. Plagiarism is Strongly Discouraged!!!
  • The deadline for applying for extra (optional) project is December 08, 2016 - 24:00. I order to apply send email with subject "OOP - PROJECT APPLICATION".
  • Quiz/Exam date is November 03, 2016 - 10:50 - Exam will be performed on paper and includes Basic Algorithm and Flow Control Understanding topic (You are not allowed to retake a quiz or any of exams);
  • Midterm Exam date is October 31, 2016 - 09:45. To be successful at this exam you will be expected to demonstrate understanding of Object-Oriented Concept and be able to implement this concept in java code.
  • The first Object-Oriented Programming class will be held in September 19, 2016 - 09:00

Contents of the course (week topics):

Topic's Title Example Codes Documents
1 Introduction to Computers, Programming Languages and Programming Paradigms  
2 Introduction to Object-Oriented Concept
  • Classes and objects (instances)
  • Encapsulation of code and data
  • Abstract data types
  • Polymorphism
  • Inheritance: single and multiple
 
3 Java Syntax and Usage
  • Features of Java
  • Differences between C++ and Java
  • Compile-time vs. run-time binding
  • Flow Control and Repetition Statements
  • Programming practices
Hello World
Flow control, functions

Lab-1
4 Introduction to Object-oriented Programming with Java
  • Classes
  • Instance variables
  • Methods
  • Constructors
  • Inheritance
OOP Step by Step
Lab-2
5 Introducing Data Types
  • Numerical Data
  • Characters and Strings
  • Type conversions
  • Arrays
Data Types
Type Conversion Arrays

Lab-3
6 Math and Arithmetic operators
  • Unary Operators
  • Relational, and Conditional Operators
  • Equality and Relational Operators
  • Conditional Operators
  • Type Comparison Operator
Math / Arithmetic
7 Types of Java Applications
  • Applet
  • Standalone Console Application
  • Standalone GUI Applications
  • Web applications (Servlet and JSP)
  • Mobile applications
Applet
Standalone Apps
8 Java Graphics and Imaging Programming
  • Working with Canvas and Shapes
  • Working with Text
  • Working with Color
  • Working with Images
Shapes
Text / Color
Images
9 Introduction to Graphical User Interface (GUI) Programming
  • Java AWT and Window system
  • Java Layout Managers
  • Java Swing
  • GUI Objects and Event-Driven Programming
AWT Components use
AWT Layouts
Events and Listeners
10 Exception Handling
  • Basic Try Catch Finally
  • Exception Hierarchies
  • Throw Exceptions
  • Declaring custom Exception
Exception Handle
11 File Input and Output
  • Input/Output Streams
  • File Input/Output
  • Working with File System
File Input/Output
Advanced IO
File System
12 Network Programming
  • TCP/IP Programming
  • Socket Programming (Client/Server Communication)
  • URL Processing
  • Internet-based applications
TCP/IP
Socket
URL
13 Programming with Threads
  • Processes and Threads
  • Defining and Starting a Thread
  • Thread Management and Prioritizing
Thread Programming
14 Object-Oriented Design
  • Unified Modeling Language (UML)
  • Model-View-Controller Pattern
  • System Sequence Diagram
 
15 What's New in Java? Course Overview
 

Course Policies

General:

Respect due dates - No late projects, lab assignments, papers, or quizzes will be accepted unless you have made prior arrangements with the instructor. Quizzes will be announced at least one week before the actual date, will be no quizzes allowed after the established deadline.
Since this course is about computer programming, it is strongly recommended that you have a working computer at home connected to the Internet. Most of course matherials are located online and it's also good for your success to use recommended additional online tutorials.

Student contributions:

The Students are expected to follow to instructor's recommendations when preparing homeworks, tasks, laboratory reports, tests, theses, etc.
  • Communicate in a professional manner with instuctors and/or classmates (including online communication)
  • Participate actively in-class discussion topics
  • Complete all in-class and homework-tasks/projects in time
  • Most successful students are expected to make proposal for in-class seminar on a original topic that is not covered by course
  • Preview course materials for the topic is going to be covered that week, before class starts

Bonus Project:

Bonus is optional project and each student can offer his own unique topic within bounds of the course or request one from instructor. Each student who pretend for bonus points should prepare paper according to the announced standards and present it in class. Bonus points will be added to your final grades just in case of success for course without considering bonus points. Part of bonus points may come from participation points related with your attendance.

The Student Conduct Code:

Students are expected to follow to general rules of condact and behavior. Students have to be familiar with regulations described in the ADA University Student Handbook.
To avoid distractions late students are asked NOT to enter the class after the doors are closed. In particular, excessive and loud talking, leaving and reentering class without permision, cell phones using, or other means of disrupting the class will not be tolerated and students may be asked to leave the class. Students who constantly disrupt class may be asked to leave permanently and will fail the course. Be responsible for your own actions.
Important: All cell phones and other gadgets should be turned OFF, they may not be used in the classroom and students are NOT allowed to leave room to use their cell phones.

Attendance:

It is expected that students will attend and participate actively in all classes during semester. One of the the key factors in success in this course is to attend to all scheduled classes and be actively involved in learning process. Attendance is an indispensable element of the educational process. In compliance with Azerbaijani legislation, instructors are required to monitor attendance and inform the Registrar and the Dean of the respective School when students miss significant amounts of class time. Azerbaijani legislation mandates that students who fail to attend at least 75% of classes will fail the course.
ADA attendance policy excuses two (2) student absences, though these should reflect a serious need on the student’s part to be away from class. In case of involuntary and unpredictable serious disruption of normal life, students may appeal to a grievance procedure through Office of the Dean of the School of Education.
Student is responsible for all work missed during his absences.

Academic Dishonesty - Cheating:

All graded projects must be your own work. My strong recommendation - "If you are not able to do more, do less, but do them right and by yourself". An act of academic dishonesty or plagiarism may result in failure for a project or in a course. Plagiarism involves representing another person's ideas or outcomes, including material from the Internet, as your own. Cheating or acts of academic dishonesty also include fabricating data and results, copying, and offering or receiving unauthorized assistance or information from another person. Students involved in activities such as cheating and/or plagiarism will be subject to disciplinary action in accordence with ADA University Student Disciplinary Regulation.

Communication:

eMail is a Prefered Communication Tool. Be awared that only emails that sent from your ADA University @ADA.EDU.AZ account will be considered - CLICK to Sign In

Meeting Hours and Appointment:

  • For meeting follow to Office Hours (check my online Calendar or on-door calendar)
  • You can apply for meeting by appointment beyond the stated office hours via email
  • Only emails that has been sent from @ADA.EDU.AZ will be considered

Please let me know if you do not understand any topic, concepts or projects in bounds of this course. Feel free to clarify any questions you may have during class, or via email.