SE 307 | Course Introduction and Application Information

Course Name
Concepts of Object-Oriented Programming
Code
Semester
Theory
(hour/week)
Application/Lab
(hour/week)
Local Credits
ECTS
SE 307
Fall/Spring
2
2
3
7

Prerequisites
None
Course Language
English
Course Type
Elective
Course Level
First Cycle
Course Coordinator -
Course Lecturer(s)
Assistant(s) -
Course Objectives This course provides a conceptual and practical introduction to object oriented programming; through the widely used C# programming language. The fundamental concepts associated with objectoriented programming (for instance, object, class, protocol, hierarchy, inheritance, encapsulation, polymorphism, reuse of code, interfaces, collaboration, etc) will be introducedand demonstrated through the C# Programming language.
Course Description The students who succeeded in this course;
  • be able to explain principles of abstraction in program design
  • be able to explain the key concepts of object oriented process
  • be able to implement object oriented programs using C# programming language
  • be able to apply inheritance concepts to object oriented design
  • be able to implement polymorphism and abstract classes as part of object oriented programming
Course Content This course introduces the students to the fundamental concepts of object oriented programming using the C# programming language.

 



Course Category

Core Courses
Major Area Courses
X
Supportive Courses
Media and Management Skills Courses
Transferable Skill Courses

 

WEEKLY SUBJECTS AND RELATED PREPARATION STUDIES

Week Subjects Related Preparation
1 Introduction to object oriented concepts Weisfeld Ch. 1
2 How to think in terms of objects Weisfeld Ch. 2
3 Advanced object oriented concepts Weisfeld Ch. 3
4 The anatomy of a class Weisfeld Ch. 4
5 Class design guidelines Weisfeld Ch. 5
6 Designing with objects Weisfeld Ch. 6
7 Midterm exam
8 Mastering inheritence and composition Weisfeld Ch. 7
9 Frameworks and reuse: designing with interfaces and abstract classes Weisfeld Ch. 8
10 Building objects Weisfeld Ch. 9
11 Building objects Weisfeld Ch. 9
12 Creating object models with UML Weisfeld Ch. 10
13 Creating object models with UML Weisfeld Ch. 10
14 Project presentations
15 Project presentations
16 Review of the Semester  

 

Course Notes/Textbooks Weisfeld, M., The ObjectOriented Thought, 3rd ed., AddisonWesley, 2009.
Suggested Readings/Materials Sharp J., Microsoft Visual C# 2013 Step by Step, Microsoft Press

 

EVALUATION SYSTEM

Semester Activities Number Weigthing
Participation
-
-
Laboratory / Application
Field Work
Quizzes / Studio Critiques
Homework / Assignments
Presentation / Jury
Project
1
50
Seminar / Workshop
Portfolios
Midterms / Oral Exams
1
50
Final / Oral Exam
Total

Weighting of Semester Activities on the Final Grade
1
50
Weighting of End-of-Semester Activities on the Final Grade
1
50
Total

ECTS / WORKLOAD TABLE

Semester Activities Number Duration (Hours) Workload
Course Hours
Including exam week: 16 x total hours
16
2
32
Laboratory / Application Hours
Including exam week: 16 x total hours
16
2
Study Hours Out of Class
16
4
Field Work
Quizzes / Studio Critiques
Homework / Assignments
Presentation / Jury
Project
1
52
Seminar / Workshop
Portfolios
Midterms / Oral Exams
1
20
Final / Oral Exam
    Total
200

 

COURSE LEARNING OUTCOMES AND PROGRAM QUALIFICATIONS RELATIONSHIP

#
Program Competencies/Outcomes
* Contribution Level
1
2
3
4
5
1 Adequate knowledge in Mathematics, Science and Software Engineering; ability to use theoretical and applied information in these areas to model and solve Software Engineering problems X
2 Ability to identify, define, formulate, and solve complex Software Engineering problems; ability to select and apply proper analysis and modeling methods for this purpose X
3 Ability to design, implement, verify, validate, measure and maintain a complex software system, process or product under realistic constraints and conditions, in such a way as to meet the desired result; ability to apply modern methods for this purpose X
4 Ability to devise, select, and use modern techniques and tools needed for Software Engineering practice X
5 Ability to design and conduct experiments, gather data, analyze and interpret results for investigating Software Engineering problems X
6 Ability to work efficiently in Software Engineering disciplinary and multi-disciplinary teams; ability to work individually X
7 Ability to communicate effectively in Turkish, both orally and in writing; knowledge of a minimum of two foreign languages
8 Recognition of the need for lifelong learning; ability to access information, to follow developments in science and technology, and to continue to educate him/herself
9 Awareness of professional and ethical responsibility
10 Information about business life practices such as project management, risk management, and change management; awareness of entrepreneurship, innovation, and sustainable development
11 Knowledge about contemporary issues and the global and societal effects of engineering practices on health, environment, and safety; awareness of the legal consequences of Software Engineering solutions

*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest