CENG443 INTRODUCTION TO OBJECT-ORIENTED PROG. LANG. AND SYSTEMS

Course Code:5710443
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:Lecturer Dr. CEVAT ŞENER
Offered Semester:Fall Semesters.

Course Objectives

At the end of this course, students 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.

Course Content

Object-Oriented Programming Concepts. Exception handling. I/O Streams and Decorator Pattern. Concurrency. GUI Development. Security Issues. Objects over Networks. Database Connectivity. Serialization and Deserialization. Remote Method Calls. Introduction to Enterprise Components.


Course Learning Outcomes

Student that pass the course satisfactorily will be able to:

  • Use a widely accepted high-level programming language, e.g. Java, C# and C++.
  • Identify, define, describe, illustrate, explain, articulate and elaborate on the fundamental terminology, concepts, principles and meth­ods of computational models and systems.
  • Design computer-based systems with realistic requirements.
  • Analyze, compare and differentiate between computational models and systems by identifying, assessing and reasoning about their advantages and disadvantages.
  • Use a widely accepted modeling language, such as UML.
  • Create computer-based system architectures with moderate complexity.
  • Design and implement algorithms, heuristics and supporting data structures as packaged components.
  • Analyze the power and limitations of abstract models of computation. 

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

  • SO (8) – PI-k1: Use a widely accepted high-level programming language, e.g. Java, C# and C++.

  • SO (1) – PI-e2: Derive system properties from models.

  • SO (2) – PI-c1: Design computer-based systems with realistic requirements.

  • SO (8) – PI-l2: Evaluate the quality attributes (such as reliability, availability, efficiency, usability, safety, and security) of computer-based systems.

  • SO (8) – PI-k2: Use a widely accepted modeling language, such as UML.

  • SO (2) – PI-c3: Design and implement algorithms, heuristics and supporting data structures as packaged components.

  • SO (1) – PI-a7: Analyze the power and limitations of abstract models of computation. 


Program Outcomes Matrix

Contribution
#Program OutcomesNoYes
1An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics
2An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors
3An ability to communicate effectively with a range of audiences
4An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts
5An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives
6An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions
7An ability to acquire and apply new knowledge as needed, using appropriate learning strategies