CSE 240 Introduction to Computer Architecture

Similar documents
CSE 240 Introduction to Computer Architecture

ESET 349 Microcontroller Architecture, Fall 2018

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

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

Programming Languages and Techniques (CIS120)

ECE573 Introduction to Compilers & Translators

Announcements. 1. Forms to return today after class:

You must pass the final exam to pass the course.

CSE 333 Lecture 1 - Systems programming

Lecture 1: Introduction to Digital Logic Design

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

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

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

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

CSE 333 Lecture 1 - Systems programming

CSE 504: Compiler Design

Welcome to CS 241 Systems Programming at Illinois

ESET 369 Embedded Systems Software, Fall 2017

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

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

Syllabus of ENPM 691: Secure Programming in C

378: Machine Organization and Assembly Language

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

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

Welcome to CS 241 Systems Programming at Illinois

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

CS 3230 Object Oriented UI Development With Java Syllabus

CMPSCI 250: Introduction to Computation. Lecture #1: Things, Sets and Strings David Mix Barrington 22 January 2014

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

CS-3410 Systems Programming Spring 2013

CS 4349 Lecture August 21st, 2017

CS 241 Data Organization. August 21, 2018

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

CSC 111 Introduction to Computer Science (Section C)

CS503 Advanced Programming I CS305 Computer Algorithms I

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

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

EECE 321: Computer Organization

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

CS 241 Data Organization using C

Computer Science 210: Data Structures

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

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

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

ECE 467 Section 201 Network Implementation Laboratory

CS270 Computer Organization Fall 2017

Instructors. ECE 152 Introduction to Computer Architecture. Undergrad Teaching Assistants. Course Website. Textbook.

CSc 2310 Principles of Programming (Java) Jyoti Islam

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

ISM 324: Information Systems Security Spring 2014

CS 0449 Intro to Systems Software Fall Term: 2181

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

CSC258: Computer Organization. Memory Systems

Object-Oriented Programming for Managers

Introduction to Computer Systems

What is this class all about?

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

What is this class all about?

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

CS 210 Algorithms and Data Structures College of Information Technology and Engineering Weisberg Division of Engineering and Computer Science

ECE 15B COMPUTER ORGANIZATION

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

Course Syllabus. Course Information

CSCE 441 Computer Graphics Fall 2018

INFS 2150 (Section A) Fall 2018

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

THE TEN COMANDMENTS OF ALGEBRA

CS Computer Science I

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

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

Instructor: Anna Miller

QUIZ How do we implement run-time constants and. compile-time constants inside classes?

CS 3270 Mobile Development for Android Syllabus

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

CS240: Programming in C

San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018

CS1 Lecture 2 Jan. 16, 2019

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

Introduction to Information Technology ITP 101x (4 Units)

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

: Dimension. Lecturer: Barwick. Wednesday 03 February 2016

Textbook(s) and other required material: Raghu Ramakrishnan & Johannes Gehrke, Database Management Systems, Third edition, McGraw Hill, 2003.

Compilers for Modern Architectures Course Syllabus, Spring 2015

CHEM 31A (90285): General Chemistry Fall 2013

IT 252 Computer Organization and Architecture. Introduction. Chia-Chi Teng

ENVIRONMENT MODEL: FUNCTIONS, DATA 18

ECE Introduction to Compilers and Translation Engineering

ECE Object-Oriented Programming using C++ and Java

CS157a Fall 2018 Sec3 Home Page/Syllabus

CS120 Computer Science I. Instructor: Jia Song

San José State University Department of Computer Science CS-174, Server-side Web Programming, Section 2, Spring 2018

Advanced Programming Concepts. CIS 15 : Spring 2007

CSC 220: Computer Organization Unit 12 CPU programming

CISC 3130 Data Structures Fall 2018

Introduction to Data Structures

Course Syllabus of Microprocessor I (Fall 2006)

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

Introduction to Computer Systems

CS535: Interactive Computer Graphics

Course and Contact Information. Course Description. Course Objectives

Transcription:

Admin Instructor E Lewis (lewis@cis.upenn.edu) Introduction to Computer Architecture http://www.seas.upenn.edu/~cse240/ Autumn 2005 TAs Colin Blundell (blundell@cis.upenn.edu) Chao Cai (ccai@seas.upenn.edu) Joe Devietti (devietti@seas.upenn.edu) Ari Gilder (agilder@seas.upenn.edu) Matt Jacobs (mrjacobs@seas.upenn.edu) Resources http://www.seas.upenn.edu/~cse240/ Blackboard Discussion groups cse240@seas.upenn.edu 0-2 What s All About?! What s All About?! This is not your father s Not at 9am!!! New approach (bottom up) New textbook New instructor Well integrated into curriculum Introduction to computer architecture How is data represented? What are the pieces of a computer? How do computers work? Programming How do I "talk" directly to the machine? Cooler assignments (demo coming later) How do I program in C? No assumption that you know C programming Second time around Computer Systems and Computation How do simple HW/SW elements come together to realize complex computations? 0-3 0-4 1

Big Picture Assembly Language Programming Hardware Representing data, transistors, gates, digital logic structures, von Neumann machine model 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: addition, logical-and, logical-not, branch, load-frommemory, store-to-memory Focus: Where hardware meets software We will examine the hardware that executes instructions We will compose instructions to create software C programming Syntax, operators, control structures, functions, pointers, recursion, data structures, relationship to assembly language Really little example LOOP JSR TIMER_TICK 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 Preparatory/Complementary Lectures/Reading/Quizzes Homework CSE 371: Digital Systems Organization and Design CSE 380: Operating Systems Exams Grades CSE 341: Compilers and Interpreters CSE 260: Mathematical Foundations of CS Demo Sample homework/project! Fun!!! Who wouldn t want to know the magician s tricks? 0-7 0-8 2

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) Able to actually build entire (slow) computing system Hardware and software You ll get a chance in CSE 371/380 Be distinguished from mere programmers Why Study Hardware? Important Floaters can t build effective systems! Still drives industry Timely IA-64, SSE, hyper-threading, security,.. Opens doors Yet another option! Impress E! 0-9 0-10 Why Learn Assembly Programming? Why Learn C Programming? Helps understand capabilities of machine What is C? High-level language (than assembly anyway) Can be used to exploit processor-specific extensions E.g., Pentium with MMX or SSE Portable assembly language In between assembly and Java/VB/C# Many system components written in assembly E.g., microcontrollers, device drivers, DSP code Very common Operating systems and even general applications Foundation for C++/C#/Java It s in the news! E.g., stack smashing Assembly-to-C migration for embedded applications 0-11 0-12 3

Implementation Background/Prerequisites Background/Prerequisites Lectures/Reading/Quizzes Exams Homework Academic Integrity Grades Requirement: Strong background in programming CSE 120 CSE 110 (A- or better strongly recommended) 5 on AP CS exam Pass U Penn CIS placement exam Why? Fast pace Assume you can program/debug 0-13 0-14 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 (approx. 1st third) Tentatively scheduled: Friday 21 October in class Open book Final Covers assembly and C (last 2 thirds) and digital logic Tentatively scheduled: Wednesday 14 December Open book 0-15 0-16 4

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 (Breakout!) Discussion Encouraged! (TAs, discussion group, etc.) Work must be completed alone Important: Gilligan s Island Rule Okay: discuss meaning of problem, discuss approaches Not Okay: comparing answers, solving questions together Who will know? We will (inspection, similarity detectors, exams) Your friends will Your parents will You will Analogies Cheating is like going 150 MPH over speed limit while drunk Similar consequences (legal and educational) Remember If you need to cheat now, you ve got much bigger problems 0-17 0-18 Grades Demo Final: 30% Midterm: 25% Homework: 35% Three extensions allowed (see syllabus) Quizzes: 5% Participation, attendance, etc.: 5% Homeworks 6-7 Build Breakout in assembly language! 0-19 0-20 5

Schedule Next Time See web page www.seas.upenn.edu/~cse240 Subject to change Lecture Chapter 1: Introduction to computer systems Chapter 2-2.2: Integer data types Part I: Hardware (Digital Logic) Paper and pencil assignments Reading Chapter 1 Part II: Assembly Programming Substantial programming project Quiz As always, online; due before start of class Part III: C Programming Assume already familiar with HLL programming (but not C) Upcoming Homework 1 due Friday 16 September 0-21 0-22 6