CNG443 INT. TO OBJECT ORIENT.PROG. LANG. & SYSTEMS

Course Code:3550443
METU Credit (Theoretical-Laboratory hours/week):3 (3.00 - 0.00)
ECTS Credit:6.0
Department:Computer Engineering
Language of Instruction:English
Level of Study:Undergraduate
Course Coordinator:Prof.Dr. YELİZ YEŞİLADA
Offered Semester:Spring Semesters.

Course Objectives

The objective of this course is to enable students use object-oriented programming concepts and constructs to represent software systems; understand the internal, architectural and usage aspects of the state-of-the-art methods and techniques to develop efficient, secure, robust, multi-threaded, networked, object-oriented applications; and comprehend how to apply them practically.


Course Content

Object-Orientated Programming Basics. Advanced Object-Orientation Programming Concepts. Exception Handling. I/O Streams and Decorator Pattern. Concurrency. GUI Development. Security Issues. Objects over Network. Database Connectivity. Serialization and Deserialization. Remote Method Calls. Introduction to Enterprise Components.


Course Learning Outcomes

Having successfully completed this course, the student will be able to:

  • Use major object-oriented technologies and tools that are covered in the course.
  • Apply major object-oriented design principles when designing software systems.
  • Point out the advantages and disadvantages of various object-oriented solutions.
  • Evaluate and compare existing system designs in terms of flexibility and modularity.
  • Identify and revise components of existing system designs for better performance.
  • Create UML class diagrams to model software systems with realistic requirements.
  • Design and implement object-oriented software solutions to realistic problems.

Relationship of Course to Student Outcomes:

 

Satisfies the following student outcomes (SOs) via the following Performance Indicators:

  • SO (k) – PI-k1.

Use a widely accepted high-level programming language, e.g. Java, C# and C++.

  • SO (e) – PI-e4.

Identify, define, describe, illustrate, explain, articulate and elaborate on the fundamental terminology, concepts, principles and methods of computational models and systems.

  • SO (c) – PI-c1.

Design computer-based systems with realistic requirements.

  • SO (k) – PI-k7.

Analyze, compare and differentiate between  computational models and systems by identifying, assessing and reasoning about their advantages and disadvantages.

  • SO (k) – PI-k2.

Use a widely accepted modeling language, such as UML.

  • SO (c) – PI-c3.

Design and implement algorithms, heuristics and supporting data structures as packaged components.

  • SO (a) – PI-a7.

Analyze the power and limitations of abstract models of computation.