CEN434 Computer Systems from The Programmer's Perspective

6 ECTS - 3-0 Duration (T+A)- 8. Semester- 3 National Credit

Information

Code CEN434
Name Computer Systems from The Programmer's Perspective
Semester 8. Semester
Duration (T+A) 3-0 (T-A) (17 Week)
ECTS 6 ECTS
National Credit 3 National Credit
Teaching Language İngilizce
Level Lisans Dersi
Type Normal
Mode of study Yüz Yüze Öğretim
Catalog Information Coordinator Dr. Öğr. Üyesi SERKAN KARTAL


Course Goal

Aim of this course is to explain the important and enduring concepts underlying all computer systems, and to show the concrete ways that these ideas affect the correctness, performance, and utility of application programs.

Course Content

This course provides a programmer's view of how computer systems execute programs, store information, and communicate.It enables students to become more effective programmers, especially in terms of performance, portability and robustness. Topics covered include: performance evaluation and optimization, computer arithmetic, memory organization and management, networking technology and protocols, and supporting concurrent computation.

Course Precondition

Have basic knowledge of computer architecture and C programming

Resources

Computer Systems: A Programmer's Perspective 3rd Edition by Randal Bryant , David O'Hallaron

Notes

Brian W. Kernighan and Dennis M. Ritchie, The C Programming Language, Second Edition, Prentice Hall, 1988


Course Learning Outcomes

Order Course Learning Outcomes
LO01 Explain common bit-level representations of numeric values (unsigned, twos complement, floating point) and the consequent mathematical properties of arithmetic and bitlevel operations on them.
LO02 Analyze the consequences of imperfect system usage, such as poor memory and CPU performance, crashes, and security vulnerabilities
LO03 Investigate the programmers interaction with the underlying system , including system support for process and thread control, virtual memory, and networking.
LO04 Explain how computer systems execute programs, store information, and communicate.


Relation with Program Learning Outcome

Order Type Program Learning Outcomes Level
PLO01 Bilgi - Kuramsal, Olgusal Has capability in the fields of mathematics, science and computer that form the foundations of engineering 4
PLO02 Bilgi - Kuramsal, Olgusal Identifies, formulates, and solves engineering problems, selects and applies appropriate analytical methods and modeling techniques, 3
PLO03 Bilgi - Kuramsal, Olgusal Analyzes a system, its component, or process and designs under realistic constraints to meet the desired requirements,gains the ability to apply the methods of modern design accordingly. 3
PLO04 Bilgi - Kuramsal, Olgusal Ability to use modern techniques and tools necessary for engineering practice and information technologies effectively. 4
PLO05 Bilgi - Kuramsal, Olgusal Ability to design and to conduct experiments, to collect data, to analyze and to interpret results 3
PLO06 Bilgi - Kuramsal, Olgusal Has ability to work effectively as an individual and in multi-disciplinary teams, take sresponsibility and builds self-confidence 1
PLO07 Beceriler - Bilişsel, Uygulamalı Can access information,gains the ability to do resource research and uses information resources 2
PLO08 Beceriler - Bilişsel, Uygulamalı Awareness of the requirement of lifelong learning, to follow developments in science and technology and continuous self-renewal ability 2
PLO09 Yetkinlikler - Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği Ability to communicate effectively orally and in writing, and to read and understand technical publications in at least one foreign language
PLO10 Yetkinlikler - Öğrenme Yetkinliği Professional and ethical responsibility,
PLO11 Yetkinlikler - Öğrenme Yetkinliği Awareness about project management, workplace practices, employee health, environmental and occupational safety, and the legal implications of engineering applications,
PLO12 Yetkinlikler - Öğrenme Yetkinliği Becomes aware of universal and social effects of engineering solutions and applications, entrepreneurship and innovation, and knowledge of contemporary issues


Week Plan

Week Topic Preparation Methods
1 Representing and Manipulating Information Reading of course notes Öğretim Yöntemleri:
Anlatım, Gösteri
2 Integer Representations and Floating Point Reading of course notes Öğretim Yöntemleri:
Anlatım, Gösteri
3 Machine-Level Representation of C Programs Reading of course notes Öğretim Yöntemleri:
Anlatım, Gösteri
4 Optimizing Program Performance Reading of course notes Öğretim Yöntemleri:
Anlatım, Gösteri
5 Understanding Modern Processors Reading of course notes Öğretim Yöntemleri:
Anlatım, Gösteri
6 The Memory Hierarchy Reading of course notes Öğretim Yöntemleri:
Anlatım, Gösteri
7 Cache Memories Reading of course notes Öğretim Yöntemleri:
Anlatım, Gösteri
8 Mid-Term Exam Reading of course notes Ölçme Yöntemleri:
Yazılı Sınav
9 Linking and Loading Reading of course notes Öğretim Yöntemleri:
Anlatım, Gösteri
10 Exceptional Control Flow Reading of course notes Öğretim Yöntemleri:
Anlatım, Gösteri
11 Measuring Program Execution Time Reading of course notes Öğretim Yöntemleri:
Anlatım, Gösteri
12 Virtual Memory Reading of course notes Öğretim Yöntemleri:
Anlatım, Gösteri
13 Concurrent Programming with Threads Reading of course notes Öğretim Yöntemleri:
Anlatım, Gösteri
14 Network Programming Reading of course notes Öğretim Yöntemleri:
Anlatım, Gösteri
15 Error handling Reading of course notes Öğretim Yöntemleri:
Anlatım, Gösteri
16 Term Exams Reading of course notes Ölçme Yöntemleri:
Yazılı Sınav
17 Term Exams Reading of course notes Ölçme Yöntemleri:
Yazılı Sınav


Student Workload - ECTS

Works Number Time (Hour) Workload (Hour)
Course Related Works
Class Time (Exam weeks are excluded) 14 3 42
Out of Class Study (Preliminary Work, Practice) 14 5 70
Assesment Related Works
Homeworks, Projects, Others 0 0 0
Mid-term Exams (Written, Oral, etc.) 1 15 15
Final Exam 1 30 30
Total Workload (Hour) 157
Total Workload / 25 (h) 6,28
ECTS 6 ECTS