This course is an introduction to Object Oriented programming, techniques, practices and applications. It extends what was learned in CS101 (Programming I) by enabling students to use classes, objects, encapsulation, inheritance and polymorphism. Furthermore the students learn to use recursion, searching, sorting and data structures such as array lists and linked lists. The course involves students in working on individual and group projects that can be submitted by a due date.
The purpose of this course is to develop an intermediate understanding of object-oriented programming concepts. Some sophisticated uses of object-oriented concepts (inheritance, polymorphism, encapsulation, multiple inheritance using interfaces, and Java Collection Frameworks, Generic classes and Recursion) and techniques for building systems of multiple interacting components. This course teaches students how to develop Java applications. Students will develop and test Java applications (typically) using Netbeans IDE.
Course Learning Outcomes
After the completion of this course, the students will be able to
- CLO 1: Recognize object-oriented concepts for large software development using classes and class hierarchies to promote code reuse
- CLO 2: Solve advanced software development problems using Object Oriented concepts of inheritance, abstract classes, encapsulation, polymorphism, and Interfaces
- CLO 3: Apply Java Collection Frameworks (list, arrays list, maps, sets) efficiently.
- CLO4: Develop and use generic classes to promote software reuse
- CLO 5: Develop recursive programs to solve iterative algorithms
2 hours tutorial + 2 hours labs
There will be two mid-term exams each of which is graded out of 20 points, and one comprehensive final exam graded out of 40 points. Exams will cover material from lectures, the readings, and the project. In particular, you are likely to do poorly on the exams and in the course if you do not do your share of the work on the project.
The project will be graded out of 20 points. The student must pay attention to avoid any kind of outsourcing and cheating in project work. This will be severly penelized.
A student that will miss more than 16 hours during the semester will be automatically prevented from entering the final exam. If you have a justification for being late or absent you must send this justification to the department head and to the instructor. The justification may be rejected for some reasons. It is important to note that missing any lecture will have a great negative impact on the student performance and understanding. Attending all lectures is a must unless a major handicap prevents you attending. Each hour the student is absence, 1 point will be lost from the Bonus extra grade. See grading policy for more details
It is permissible to cooperate with your colleagues and to discuss general issues about concepts, algorithms and project steps. However, it is strictly prohibited that you copy other people’s code, solutions and project deliverables, assignments, etc. It is the duty of each student to prove that his work is original and has not been done by others. Every detected cheating action will be severely punished. Outsourcing code is strictly prohibited as well.