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 methods 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 Outcomes | No | Yes | ||
1 | An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics | ✔ | |||
2 | An 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 | ✔ | |||
3 | An ability to communicate effectively with a range of audiences | ✔ | |||
4 | An 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 | ✔ | |||
5 | An 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 | ✔ | |||
6 | An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions | ✔ | |||
7 | An ability to acquire and apply new knowledge as needed, using appropriate learning strategies | ✔ |