SEDS 504

Software Construction

This course covers the necessary background for software construction. Object-Oriented Programming, Classes and Methods, Inheritance, Polymorphism, Abstract Classes and Interfaces, Exception Handling, Collections, Generics, Object-Oriented Analysis and Design, UML Diagrams.

Reference book(s):
• Absolute Java, Global Edition, 6/E, Walter Savitch, Kenrick Mock, Pearson, 2016
• Starting Out with Java: From Control Structures through Objects, Global Edition, 6/E, Tony Gaddis, Pearson, 2016

Course Objectives: To introduce the fundamentals of software construction.

Week Topics
1 Introduction to Object-Oriented Programming
2 Flow of Control
3 Defining Classes I
4 Defining Classes II
5 Linear Data Structures in Object-Oriented Programming
6 Recursive Data Structures in Object-Oriented Programming
7 Inheritance
8 Polymorphism
9 Abstract Classes and Interfaces
10 Exception Handling
11 Collections
12 Generics
13 Object-Oriented Analysis and Design
14 UML Diagrams

Grading:

Final Exam                                                       %40

Midterm Exam                                                 %30

Project                                                               %30

Course Learning Outcomes:

CO1       To be able to formulate and solve engineering problems with software construction

CO2       To be able to use and design classes

CO3       To be able to implement object-oriented design

CO4       To be able to design object-oriented software

 

Contribution of Program Learning Outcomes:

PO1 PO2 PO3 PO4 PO5 PO6 PO7
CO1 1 1 1 1
CO2 1 1 1 1
CO3 1 1 1 1
CO4 1 1 1 1

Justification of the course:
It is a core course of the Software Engineering and Data Science Master of Science Program and it is one of the important Software Engineering core courses. It provides the necessary background for software construction to be used in software engineering.

Overlapping with or complementing topics in courses:

This course is fundamental to all Software Engineering courses. This course follows Programming and Data Structures course.