CENG453 SPECIAL TOPICS IN COMPUTER ENGINEERING: SOFTWARE CONSTRUCTION
Course Code: | 5710453 |
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: | Assoc.Prof.Dr. HANDE ALEMDAR |
Offered Semester: | Fall Semesters. |
Course Objectives
By attending this course, the students are expected to
- Use modern development tools, including version control systems, development environments, build and test automation, debugger, and static analysis tools
- Understand common design paradigms in object-oriented languages, GUIs, and the design patterns associated with these paradigms
- Use UML for software modeling
- Design and develop medium-scale concurrent interactive software systems
- Follow a design process from a reference architecture, to object model, and to implementation
- Apply design patterns to achieve quality attributes such as performance, extensibility and reusability
- Design and develop software for reuse (libraries, components, frameworks, and product lines)
- Be able to write thread-safe concurrent programs
- Understand the importance of software testing and be able to perform unit test, module test and integration test mechanisms
Course Content
Development of a complete software system based on available reference architectures; best practices in development; contemporary development environments and tools; architectural styles; concurrency; design patterns; libraries and frameworks;development of interface mechanisms including services and APIs;GUI design and implementation;design for reusability; component implementation; unit,component and system testing
Course Learning Outcomes
Upon successful completion of the course, the students will
- be able to use the selected integrated development environment tool and git version control system proficiently
- be able to design GUI for applications in Java
- be able to develop web services with data persistance using Java
- use a UML tool for software modeling
- develop an end-to-end software system with enterprise level standards using Java
- learn at least 6 major design patterns
- learn at least 3 modern libraries, components, frameworks.
- write thread-safe concurrent programs in Java
- write test cases and conduct automated tests for software they develop
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 | ✔ |