Software Engineering | |||||
Bachelor | TR-NQF-HE: Level 6 | QF-EHEA: First Cycle | EQF-LLL: Level 6 |
Course Code: | YAZ212 | ||||
Course Name: | Computing Systems | ||||
Semester: | Spring | ||||
Course Credits: |
|
||||
Language of instruction: | Turkish | ||||
Course Condition: | |||||
Does the Course Require Work Experience?: | No | ||||
Type of course: | Compulsory Courses | ||||
Course Level: |
|
||||
Mode of Delivery: | Face to face | ||||
Course Coordinator: | Doç. Dr. ALİ GHAFFARİ | ||||
Course Lecturer(s): | Dr. Öğr. Üyesi Ali HAMİTOĞLU | ||||
Course Assistants: |
Course Objectives: | Analyze and explain the intricate workings of computing systems, including the interactions between hardware and software components. Understand the components and architecture of computer systems, ranging from basic building blocks like processors, memory, and storage devices, to complex topics such as input/output systems, networks, and operating systems. Utilize critical thinking skills to analyze and solve problems related to computing systems, considering factors such as performance, efficiency, and compatibility. Design and optimize computing systems based on specific requirements and performance goals. Apply the basics of logic design and integrated circuits to understand the underlying mechanisms of computer systems. |
Course Content: | This course provides a comprehensive exploration of the fundamental principles and concepts underlying modern computer systems. This course delves into the intricate workings of computing systems, including hard+A2ware, software, and their interactions. Students will gain a deep understanding of the components and architecture of computer systems, starting from the basic building blocks such as processors, memory, and storage devices, and extending to complex topics such as input/output systems, networks, and operating systems. |
The students who have succeeded in this course;
1) Assess the cache performance of a system given its memory/cache specifications and a specific address trace. 2) Identify various software vulnerabilities and how they may be exploited. 3) Manually simulate address translation as a means of understanding hardware and software components that do likewise. 4) Experiment to determine efficient storage (specifically heap memory) allocation strategies. 5) Organize code and use compiler settings to achieve enhanced performance on specific processor architectures. |
Week | Subject | Related Preparation |
1) | Tour of systems | |
2) | Data representation | |
3) | Machine language | |
4) | Processor architecture | |
5) | Code optimization | |
6) | Memory hierarchy | |
7) | Linking | |
8) | Midterm | |
9) | Exceptional control flow | |
10) | Virtual memory | |
11) | System-level I/O | |
12) | Network programming | |
13) | Concurrent programming | |
14) | Final exam |
Course Notes / Textbooks: | Randal E. Bryant and David R. O'Hallaron, Computer Systems: A Programmer's Perspective, Third Edition, Pearson, 2016 |
References: | Brian W. Kernighan and Dennis M. Ritchie, The C Programming Language, Second Edition, Prentice Hall, 1988 |
Course Learning Outcomes | 1 |
2 |
3 |
4 |
5 |
||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Program Outcomes | |||||||||||
1) Adequate knowledge in mathematics, science and software engineering; the ability to use theoretical and practical knowledge in these areas in complex engineering problems. | |||||||||||
2) Ability to identify, formulate, and solve complex software engineering problems; ability to select and apply appropriate analysis and modeling methods for this purpose. | |||||||||||
3) Ability to design, implement, verify, validate, measure and maintain a complex software system, process, device or product to meet specific requirements under realistic constraints and conditions; ability to apply modern design methods for this purpose. | |||||||||||
4) Ability to develop, select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in software engineering applications; ability to use information technologies effectively. | |||||||||||
5) Ability to design, conduct experiments, collect data, analyze and interpret results for the study of complex engineering problems or software engineering research topics. | |||||||||||
6) Ability to work effectively within and multidisciplinary teams; individual study skills. | |||||||||||
7) Ability to communicate effectively orally and in writing; knowledge of at least one foreign language; ability to write effective reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions. | |||||||||||
8) Awareness of the necessity of lifelong learning; the ability to access information, to follow developments in science and technology and to renew continuously. | |||||||||||
9) To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications. | |||||||||||
10) Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development. | |||||||||||
11) Knowledge of the effects of software engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in software engineering; awareness of the legal consequences of software engineering solutions. |
No Effect | 1 Lowest | 2 Average | 3 Highest |
Program Outcomes | Level of Contribution | |
1) | Adequate knowledge in mathematics, science and software engineering; the ability to use theoretical and practical knowledge in these areas in complex engineering problems. | |
2) | Ability to identify, formulate, and solve complex software engineering problems; ability to select and apply appropriate analysis and modeling methods for this purpose. | |
3) | Ability to design, implement, verify, validate, measure and maintain a complex software system, process, device or product to meet specific requirements under realistic constraints and conditions; ability to apply modern design methods for this purpose. | |
4) | Ability to develop, select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in software engineering applications; ability to use information technologies effectively. | |
5) | Ability to design, conduct experiments, collect data, analyze and interpret results for the study of complex engineering problems or software engineering research topics. | |
6) | Ability to work effectively within and multidisciplinary teams; individual study skills. | |
7) | Ability to communicate effectively orally and in writing; knowledge of at least one foreign language; ability to write effective reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions. | |
8) | Awareness of the necessity of lifelong learning; the ability to access information, to follow developments in science and technology and to renew continuously. | |
9) | To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications. | |
10) | Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development. | |
11) | Knowledge of the effects of software engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in software engineering; awareness of the legal consequences of software engineering solutions. |
Semester Requirements | Number of Activities | Level of Contribution |
Quizzes | 5 | % 30 |
Midterms | 1 | % 30 |
Final | 1 | % 40 |
total | % 100 | |
PERCENTAGE OF SEMESTER WORK | % 60 | |
PERCENTAGE OF FINAL WORK | % 40 | |
total | % 100 |