CSE 240 Introduction to Computer Architecture

Similar documents
CSE 240 Introduction to Computer Architecture

ESET 349 Microcontroller Architecture, Fall 2018

Announcements. 1. Forms to return today after class:

ECE573 Introduction to Compilers & Translators

CSE 504: Compiler Design

COLLEGE OF DUPAGE CIS 2542 Advanced C++ with Data Structure Applications Course Syllabus

CASPER COLLEGE COURSE SYLLABUS MSFT 1600 Managing Microsoft Exchange Server 2003 Semester/Year: Fall 2007

CS 0449 Intro to Systems Software Fall Term: 2181

CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus

ESET 369 Embedded Systems Software, Fall 2017

CS61C Machine Structures. Lecture 1 Introduction. 8/27/2006 John Wawrzynek (Warzneck)

Menu. Class 1: Introduction. Staff. Course Structure and Expectations. Contacting Us. Contacting You

CSE 332: Data Abstractions. Ruth Anderson Spring 2014 Lecture 1

You must pass the final exam to pass the course.

ECE Object-Oriented Programming using C++ and Java

Course Syllabus - CNT 4703 Design and Implementation of Computer Communication Networks Fall 2011

378: Machine Organization and Assembly Language

CSC 111 Introduction to Computer Science (Section C)

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Fall 2017

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

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

Syllabus of ENPM 691: Secure Programming in C

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

Welcome to CS 241 Systems Programming at Illinois

Syllabus CSCI 405 Operating Systems Fall 2018

CS 241 Data Organization using C

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

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

Programming Languages and Techniques (CIS120)

What is this class all about?

CSE 417 Practical Algorithms. (a.k.a. Algorithms & Computational Complexity)

Welcome to CS 241 Systems Programming at Illinois

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

San José State University Department of Computer Science CS049J, Programming in Java, Section 2, Fall, 2016

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

Math 2280: Introduction to Differential Equations- Syllabus

CS503 Advanced Programming I CS305 Computer Algorithms I

CSC 172 Data Structures and Algorithms. Fall 2017 TuTh 3:25 pm 4:40 pm Aug 30- Dec 22 Hoyt Auditorium

Compilers for Modern Architectures Course Syllabus, Spring 2015

:11 PM. This course will have a significant project component. Lecture time will be used primarily for:

CSCI 136 Data Structures & Advanced Programming. Fall 2018 Instructors Bill Lenhart & Bill Jannen

CSE 333 Lecture 1 - Systems programming

CS 4349 Lecture August 21st, 2017

CSE 142. Lecture 1 Course Introduction; Basic Java. Portions Copyright 2008 by Pearson Education

ISM 324: Information Systems Security Spring 2014

Course and Contact Information. Course Description. Course Objectives

Introduction to Computer Systems

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

C Programming for Engineers Introduction

What is this class all about?

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

CHEM 31A (90285): General Chemistry Fall 2013

Course Syllabus. Course Information

61A LECTURE 1 FUNCTIONS, VALUES. Steven Tang and Eric Tzeng June 24, 2013

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

COURSE MECHANICS. Welcome! CSE 332 Data Abstractions: Introduction and ADTs. Concise to-do list. Today in Class. Instructor: Kate Deibel

CSE 333 Lecture 1 - Systems programming

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

CHEM 31A (90366): General Chemistry Fall 2011

Operating Systems, Spring 2015 Course Syllabus

CS-3410 Systems Programming Spring 2013

CS120 Computer Science I. Instructor: Jia Song

FOUNDATIONS OF INFORMATION SYSTEMS MIS 2749 COURSE SYLLABUS Fall, Course Title and Description

CS 241 Data Organization. August 21, 2018

CS 4317: Human-Computer Interaction

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

CS535: Interactive Computer Graphics

CSC Operating Systems Fall Lecture - I Introduction. Tevfik Ko!ar. Louisiana State University. August 25 th, Contact Information

Introduction to Computing Systems: From Bits and Gates to C and Beyond 2 nd Edition

Syllabus -- CIS Computer Maintenance / A+ Certification

CSC 1052 Algorithms & Data Structures II: Introduction

CS 106B, Lecture 1 Introduction to C++

CS111: Intro to Computer Science

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

EECE 321: Computer Organization

EECS 482 Introduction to Operating Systems

CS 3230 Object Oriented UI Development With Java Syllabus

CSC258: Computer Organization. Memory Systems

INF 315E Introduction to Databases School of Information Fall 2015

Object-Oriented Programming for Managers

CSE506: Operating Systems CSE 506: Operating Systems

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

Introduction to Data Structures

CSc 2310 Principles of Programming (Java) Jyoti Islam

CS 3813/718 Fall Python Programming. Professor Liang Huang.

CS240: Programming in C

EE108B: Digital Systems II EE108B. Digital Systems II. Major Topics. What EE108b is About

CSCE 441 Computer Graphics Fall 2018

CPS352 Database Systems Syllabus Fall 2012

CS157a Fall 2018 Sec3 Home Page/Syllabus

PC Applications IT102 estart Fall 2014

Today. An Animated Introduction to Programming. Prerequisites. Computer programming

Computer Science 210: Data Structures

Instructor: Anna Miller

BIO 139 HUMAN ANATOMY AND PHYSIOLOGY II LABORATORY SYLLABUS

CS270 Computer Organization Fall 2017

Course and Contact Information. Course Description. Course Objectives

CNG 140 C Programming. Syllabus. Course Info Fall Semester. Catalog Description

Announcements. Course syllabus Tutorial/lab signup form (due 4pm today) Lecture 1 notes Homework 1 Initial assessment

CS 240 Fall Mike Lam, Professor. Just-for-fun survey:

Transcription:

What s All About?! Introduction to Computer Architecture The new CSE240: Not at 9am!!! New approach (bottom up) New textbook New instructor Well integrated into curriculum Cooler assignments (demo coming later) No assumption that you know C programming Third time around http://www.seas.upenn.edu/~cse240/ Autumn 2006 0-2 What s All About?! Big Picture Any sufficiently advanced technology is indistinguishable from magic. Arthur C. Clarke, "Profiles of The Future (Clarke's 3rd law) Introduction to computer architecture How is data represented? What are the pieces of a computer? How do computers work? CSE240 No magic Computers should not be magic to computer scientists! Bottom up approach Computing systems from transistors on up Not about design Programming How do I "talk" directly to the machine? How do I program in C? Computer systems and computation How do simple HW/SW elements come together to realize complex computations? 0-3 0-4

Course Components Assembly Language Programming Part 1: Hardware Representing data, transistors, gates, digital logic structures, von Neumann machine model Part 2: Assembly language Instructions, (structured) programming, input/output, relationship to hardware What is an instruction? Basic unit of (SW) computation Very primitive E.g., in LC-3:! add, branch-on-condition, load-from-memory, store-to-memory Focus: Where hardware meets software We will examine the hardware that executes instructions We will compose instructions to create software Part 3: C programming Syntax, operators, control structures, functions, pointers, recursion, data structures, relationship to assembly language Assume already familiar with programming (but not C) Really little example, initially R1 is 10, R2 is 0 LOOP ADD R2,R1,R2 ADD R1,R1,#-1 BRp LOOP 0-5 0-6 Today Why Take CSE240? Objectives Foundational Intersects all aspects of computing Summarize course implementation Background/Prerequisites Lectures/Reading/Quizzes Homework Exams Grades Preparatory/Complementary CSE 371: Digital Systems Organization and Design CSE 380: Operating Systems CSE 341: Compilers and Interpreters CSE 260: Mathematical Foundations of CS Demo Sample homework/project! Fun!!! Who wouldn t want to understand the magic? 0-7 0-8

Objectives Understand role & relationship of hardware and software Exposure to... Machine organization (CSE 371 prep) Assembly language programming (CSE 341 prep) C programming (CSE 380 prep) Understand how to build entire (slow) computing system Hardware and software You ll get a chance in CSE 371/2 and CSE 380 Why Study Hardware? Important Floaters can t build effective systems! Still drives industry Timely Multicore, hyper-threading, SSE, security,.. Opens doors Yet another option! Be distinguished from mere programmers 0-9 0-10 Why Learn Assembly Programming? Why Learn C Programming? Helps understand capabilities of machine Can be used to exploit processor-specific extensions E.g., Intel s MMX and SSE (special media instructions) What is C? High-level language (than assembly anyway) Invented in 1970s to write the Unix operating system Portable assembly language In between assembly and Java/C# Many system components written in assembly E.g., microcontrollers, device drivers, media kernels, digital signal processing (DSP) code It s in the news! E.g., stack smashing vulnerabilities Very common Operating systems and even general applications!still the right tool for many tasks Foundation for C++/C#/Java Assembly-to-C migration for embedded applications 0-11 0-12

Implementation Staff Staff Background/Prerequisites Lectures/Reading/Quizzes Exams Homework Academic Integrity Grades Instructor Prof. Milo Martin (milom@cis.upenn.edu) TAs Nick Monfort (grad TA) Netta Doron Geoffrey Hayes Andrew Lagatta Amanda Leicht 0-13 0-14 Communication Background/Prerequisites Web site http://www.seas.upenn.edu/~cse240/ Assignments, lecture notes, etc. Requirement: Strong background in programming CSE 120 CSE 121 (strongly recommended) Office hours Fact to face help See web page for times Discussion groups (via blackboard) Read by me, TAs, fellow students Why? Fast pace Assume you can program/debug E-mail Announcements via class e-mail list To reach us: cse240@seas.upenn.edu 0-15 0-16

Lecture Exams Expectation Read appropriate sections in textbook before lecture See class schedule for reading assignments Quizzes Complete easy online quiz before each class Can work ahead (do a week at once) Experimental (appears to be effective) Lectures Will not simply cover the material Will focus on the hard stuff Will not stand alone, instead build on reading Will be interactive Midterm Covers digital logic and some assembly Tentatively scheduled: Wednesday, October 18th (in class) Open book Final Comprehensive: covers assembly and C and digital logic Scheduled: Wednesday, December 20th (9am) Open book Good news: both exams are open book Bad news: it won t actually help you 0-17 0-18 Homework Academic Integrity Paper and pencil assignments Problem solving Great exam preparation The rule is simple Claiming another s work as your own will ruin your life See syllabus for details and examples Programming projects Simple exercises Challenging projects (Snake game!) Who will know? We will (inspection, similarity detectors, exams) Your friends will your parents will You will Discussion Encouraged! (TAs, discussion group, etc.) Work must be completed alone Okay: discuss meaning of problem, discuss approaches Not okay: comparing answers, solving questions together Analogies Cheating is like going 150 MPH over speed limit while drunk Analogous consequences (legal -> educational) Remember If you need to cheat now, you ve got much bigger problems 0-19 0-20

Grades Midterm: 25% Final: 30% Homework: 35% Three extensions allowed (see syllabus) Quizzes: 5% Participation, attendance, etc.: 5% Assignments Part I: Hardware (Digital Logic) Paper and pencil assignments Part II: Assembly Programming Substantial programming project in assembly Part III: C Programming Two low-level programming assignments in C See schedule for tentative due dates 0-21 0-22 Demo Schedule Homeworks 6-7 Build snake game in assembly language! See web page www.seas.upenn.edu/~cse240/schedule.html Subject to change Notable items Midterm Wed. before fall break Wed before Thanksgiving: security & stack smashing!worth sticking around for 0-23 0-24

Next Time Lecture Chapter 1: Introduction to computer systems Chapter 2-2.2: Integer data types Reading Chapter 1 Quiz As always, online; due before start of class Upcoming Homework 1 due Friday, September 15th 0-25