Software Engineering (CS 308)

2024 Fall
Faculty of Engineering and Natural Sciences
Computer Sci.& Eng.(CS)
4
8/7 ECTS (for students admitted in the 2013-14 Academic Year or following years)
Cemal Yılmaz cyilmaz@sabanciuniv.edu,
Click here to view.
English
Undergraduate
CS204
Formal lecture,Laboratory
Interactive,Project based learning,Other
Click here to view.

CONTENT

This course covers the following fundamental topics in software engineering: software and software engineering, software development processes, agile development, requirements engineering, object-oriented software modeling, object-oriented software design, software design patterns, software architecture, and software quality assurance. The application of the theoretical knowledge gained in the lectures, is achieved by carrying out large-scale software engineering projects in teams.

OBJECTIVE

To introduce the basics of the software engineering process life cycle, including requirements gathering, specification, and testing.
To introduce the principles of object-oriented (OO) analysis and design, as well as software architecture, through OO principles and design/architectural patterns.
To introduce the basics of UML (Unified Modeling Language) ? a way of expressing requirements and design in software engineering.
To practice the application of object-oriented software development principles through a team project.
To develop teamwork and communication skills through a team project.

LEARNING OUTCOMES

  • Describe the basics of the software engineering process life cycle.
  • Identify, formulate, and solve basic software engineering problems, including the requirements gathering, specification, design, architecture, and testing of software systems.
  • Analyze software engineering artifacts, including the requirements, design, and architecture of software systems.
  • Design basic object-oriented software systems that meet requirements by applying OO software development principles and design/architectural patterns.
  • Evaluate the impact of potential solutions to basic software engineering problems.

PROGRAMME OUTCOMES


1. Understand the world, their country, their society, as well as themselves and have awareness of ethical problems, social rights, values and responsibility to the self and to others. 2

2. Understand different disciplines from natural and social sciences to mathematics and art, and develop interdisciplinary approaches in thinking and practice. 2

3. Think critically, follow innovations and developments in science and technology, demonstrate personal and organizational entrepreneurship and engage in life-long learning in various subjects; have the ability to continue to educate him/herself. 3

4. Communicate effectively in Turkish and English by oral, written, graphical and technological means. 3

5. Take individual and team responsibility, function effectively and respectively as an individual and a member or a leader of a team; and have the skills to work effectively in multi-disciplinary teams. 4


1. Possess sufficient knowledge of mathematics, science, fundamental engineering, computational methods and program-specific engineering topics; use theoretical and applied knowledge of these areas in complex engineering problems. 2

2. Identify, define, formulate and solve complex engineering problems while considering the UN Sustainable Development Goals; choose and apply suitable analysis, design, estimation/prediction and modeling methods for this purpose. 2

3. Develop, choose and use modern techniques and tools that are needed for analysis and solution of complex problems faced in engineering applications; use information technologies effectively. 2

4. Have the ability to design a complex system, process, instrument or a product under realistic constraints and conditions, with the goal of fulfilling creative current and future requirements. 5

5. Use research methods, including conducting literature reviews, designing experiments, performing experiments, collecting data, analyzing results, and interpreting results, to investigate complex engineering problems or discipline-specific research topics. 1

6. Possess knowledge of business practices such as project management, risk management, change management, and economic feasibility analysis; awareness on entrepreneurship and innovation. 1

7. Possess knowledge of impact of engineering solutions on society, health and safety, the economy, sustainability, and the environment within the framework of the UN Sustainable Development Goals; awareness on legal outcomes of engineering solutions; awareness of acting impartially and inclusively without any form of discrimination; act in accordance with ethical principles, possessing knowledge of professional and ethical responsibilities. 1

8. Communicate effectively, both orally and in writing, on technical subjects, considering the diverse characteristics of the target audience (such as education, language, and profession). 5

ASSESSMENT METHODS and CRITERIA

  Percentage (%)
Final 20
Midterm 20
Quiz 10
Group Project 50

RECOMENDED or REQUIRED READINGS

Optional Readings

Timothy C. Lethbridge and Robert Laganiere, Object Oriented Software Engineering: Practical Software Development using UML and Java, McGraw Hill, ISBN 0-07-710908-2
Ian Sommerville, Software Engineering, Pearson, ISBN 0-13-394303-8
Frederick P. Brooks, The Mythical Man-Month, Addison Wesley, ISBN 0-201-83585-9
Eric Gamma, Design Patterns: Elements of Reusable Object-Oriented Software, Pearson
Scrum: A Breathtakingly Brief and Agile Introduction, C. Sims and H. L. Johnson, Dymaxicon, ISBN 978-1-937965-04-4
Steve McConnell, Code Complete, Microsoft Press, ISBN 9780735619678