Introduction to System Programming Course 2015 Spring Euiseong Seo

Similar documents
COURSE OUTLINE. UNIX Programming 2014 Fall by Euiseong Seo

SWE3004: Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Course Overview CSCE 312. Instructor: Daniel A. Jiménez. Bryant and O Hallaron, Computer Systems: A Programmer s Perspective, Third Edition

: Computer Architecture

SSE3044: Operating Systems

ICE3003: Computer Architecture. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Introduction to Computer Systems

Introduction to Computer Systems

CSE3008: Operating Systems. Computer Systems Laboratory Sungkyunkwan University

ESET 349 Microcontroller Architecture, Fall 2018

Introduction to Computer Systems

Computer Organization - Overview

Introduction to Computer Systems

Introduction to Computer Systems

CSci 4211: Data Communications and Computer Networks. Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits

Introduction to Computer Systems

Introduction to Computer Systems

COURSE OVERVIEW & OPERATING SYSTEMS CONCEPT Operating Systems Design Euiseong Seo

Introduction to Computer Architecture. Meet your Colleagues. Course Theme CISC Michela Taufer September 4, 2008

Course Overview. CSCI 224 / ECE 317: Computer Architecture. Instructors: Prof. Jason Fritts. Slides adapted from Bryant & O Hallaron s slides

Introduction to Computer Systems: Semester 1 Computer Architecture

EECE 321: Computer Organization

Lecture 1: Course Overview

ABSTRACTION ISN T THE ENTIRE STORY

Introduction to Computer Systems /18 243, Spring st Lecture, Aug. 25 th. The course that gives CMU its Zip!

Introduction to Computer Systems

CSci 4211: Introduction to Computer Networks. Time: Monday and Wednesday 2:30 to 3:45 pm Location: Smith Hall 231 Fall 2018, 3 Credits

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims

Most of the slides in this lecture are either from or adapted from slides provided by the authors of the textbook Computer Systems: A Programmer s

ECE573 Introduction to Compilers & Translators

ISM 324: Information Systems Security Spring 2014

CS 0449 Intro to Systems Software Fall Term: 2181

The Hardware/Software Interface CSE351 Spring 2013 (spring has sprung!)

ESET 369 Embedded Systems Software, Spring 2018

Chris Riesbeck, Fall Introduction to Computer Systems

A: 90% - 100% B: 80% - <90% C: 70% - <80% D: 60% - <70% F: < 60% Important Dates:

Welcome to CSE 4300! Spring 2018

AE Computer Programming for Aerospace Engineers

Overview. Course Overview and Introduction

Topic 1: Introduction

CMPE012 Computer Engineering 12 (and Lab) Computing Systems and Assembly Language Programming. Summer 2009

EECE.2160: ECE Application Programming Spring 2017

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

CS 241 Data Organization using C

CSCI 4250/6250 Fall 2013 Computer and Network Security. Instructor: Prof. Roberto Perdisci

CSCI 201L Syllabus Principles of Software Development Spring 2018

COURSE OVERVIEW. Introduction to Computer Engineering 2015 Spring by Euiseong Seo

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

Course Administration

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Introduction to Information Technology ITP 101x (4 Units)

San José State University Computer Science Department CS157A: Introduction to Database Management Systems Sections 5 and 6, Fall 2015

Internet Web Technologies ITP 104 (2 Units)

CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers

VE281 Data Structures and Algorithms. Introduction and Asymptotic Algorithm Analysis

ESET 369 Embedded Systems Software, Fall 2017

CSE506: Operating Systems CSE 506: Operating Systems

CS241 Computer Organization Spring

William Paterson University of New Jersey Department of Computer Science College of Science and Health Course Outline

Welcome to CS 241 Systems Programming at Illinois

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

Course overview. Computer Organization and Assembly Languages Yung-Yu Chuang 2006/09/18. with slides by Kip Irvine

Course and Contact Information. Course Description. Course Objectives

CSE2003: System Programming (Spring 2010) Programming Assignment #1: Adding floating-point numbers. Due: April 11, 11:59PM

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 1 & 2, Fall Semester, 2017

Syllabus of ENPM 691: Secure Programming in C

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1 and 2, Spring 2016

ITT Technical Institute. ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS

The Hardware/Software Interface CSE351 Spring 2015

Computer Science Technology Department

Homework 3: Relational Database Design Theory (100 points)

CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers

CS 235AM, Mobile Application Development: Android Spring 2016

University of North Texas ACCT 4100 (3 hours) Accounting Systems. Section Time Place 001 TR 12:30 1:50 p.m. Busi R 6:30-9:20 Busi 231

CSE 504: Compiler Design

University of Asia Pacific (UAP) Department of Computer Science and Engineering (CSE)

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

University of Asia Pacific (UAP) Department of Computer Science and Engineering (CSE)

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 3 & 4, Fall Semester, 2016

CSCE 206: Structured Programming in C

CSE 141L Computer Architecture Lab Fall Lecture 3

Course and Contact Information. Catalog Description. Course Objectives

CMPE 280 Web UI Design and Development

Please Turn Your Mobile Phone Silent. August 29, 2017 CSc 242 1


Great Reality #2: You ve Got to Know Assembly Does not generate random values Arithmetic operations have important mathematical properties

About Me. Office Hours: Tu 4-5, W 1-2, or by appointment Office: 346A IST Bldg

EE282H: Computer Architecture and Organization. EE282H: Computer Architecture and Organization -- Course Overview

CSC 1052 Algorithms & Data Structures II: Introduction

EECE.2160: ECE Application Programming Spring 2019

GPU Programming and Architecture: Course Overview

CSE100 Principles of Programming with C++

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

CSC 111 Introduction to Computer Science (Section C)

Programming Languages CSCE

Introduction to Computers & Their Use

DIG 3110 Web Design & Interactive Media

Announcements. 1. Forms to return today after class:

The Linux Command Line: A Complete Introduction, 1 st ed., by William E. Shotts, Jr., No Starch Press, 2012.

Transcription:

Introduction to System Programming Course 2015 Spring Euiseong Seo (euiseong@skku.edu) 1

Overview What this course is about Who teaches this course Why you have to take this course What you will learn in this course What you will earn in this course How to succeed in this course 2

What This Course is About System Programming Information representation Assembly language Processor architecture Compilers, linkers, and loaders 3

Administrative Information Course Code SWE 2001 Class Hour Tuesday and Thursday 10:30 AM ~ 11:45 AM Lecture Room #330110 (located on 1F in Semiconductor Building) 4

Textbook Computer Systems: A Programmer s Perspective (2 nd Ed.) Randal E. Bryant and David R. O Hallaron 2011 Prentice-Hall Authors site: http://csapp.cs.cmu.edu 5

Course Components Lectures Concepts Backgrounds Projects Mostly on assembly programming Design, implementation, measurement and optimization 6

Course Web Page http://csl.skku.edu/swe2001s15 Check the web site regularly Class material, project information and other useful things will be posted 7

Grading Proportion of Activities Participation 10% Projects 30% Midterm 30% Final 30% If you miss any exam, you will fail No lateness is allowed Up to four absences will be tolerated 8

Project You will work on each project alone The submission status will be posted on the course web page Only the assignments submitted before the deadline will receive full credit 25% of the credit will be deducted for every single day delay 9

Ethical Code No academic misconduct will be tolerated Zero-tolerance policy One who is found guilty will be kicked out of my class immediately 10

Lecturer Euiseong Seo Associate professor, Software Dept. E-Mail: euiseong (at) skku.edu Office: #85564 Phone: (031) 299-4953 11

Why You Have to Take This Abstraction is Good, But Don t Forget Reality Most CSE courses emphasize abstraction Abstract data types Asymptotic analysis These abstractions have limitation In performance optimization In detection and elimination of bugs 12

Great Reality Ints are not Integers, Floats are not Reals Example 1: Is x^2 >= 0? Float s: Yes! Int s:» 40000 * 40000 = 1600000000» 50000 * 50000 =?? Example 2: Is ( x + y ) + z = x + (y + z)? Unsigned & signed Int s: Yes! Float s:» (1e20 + -1e20) + 3.14 = 3.14» 1e20 + (-1e20 + 3.14) =?? 13

Great Reality When you measure the required time to execute a part of your code, what can you do? Measuring time in clock cycle accuracy is necessary Time Stamp Counter A special 64-bit register in Intel-compatible machines Incremented every clock cycle Read with rdtsc instruction Why couldn t it be possible with a C-function? 14

What You Will Learn A little bit of computer organization A little bit of processor internals Assembly language Code optimization techniques A little bit of system software Compiler, linker, loader, OSs and so on 15

What You Will Learn Software Application Operating Systems Architecture Hardware CPU Mem I/O Devices 16

Application programs Data structures & algorithms Programming languages & compilers Operating System Architecture Microarchitecture Hardware Description Languages Digital logic VLSI layout Processing, Fabrication Chemistry, Physics 17

What You Will Earn You will become more effective programmers Able to find and eliminate bugs efficiently Able to understand and tune for program performance You will be prepared for later systems classes in CSE Compilers, Operating Systems, Computer Architecture, Embedded Systems and etc. 18

Keys to Success Think with your butt, not with your brain Invest as many hours as possible There s no royal road to become a hacker 19