Introduction to Computer Systems

Slides:



Advertisements
Similar presentations
Intro to CIT 594
Advertisements

John Hurley Cal State LA
CSc 2310 Principles of Programming (Java)
ITCS 3181 Logic and Computer Systems
C Programming for engineers Teaching assistant: Ben Sandbank Home page:
CSC 2400 Computer Systems I Lecture 3 Big Ideas. 2 Big Idea: Universal Computing Device All computers, given enough time and memory, are capable of computing.
ECEN 301Discussion #1 – Syllabus1 uSection MWF 1:00 – 1:50 PM 381 CB uInstructor: Nathan Rollins Office: CB ?,
ITCS 3181 Logic and Computer Systems
CS150 Introduction to Computer Science 1 Professor: Chadd Williams.
Fall 2004 WWW IS112 Prof. Dwyer Intro1: Overview and Syllabus Professor Catherine Dwyer.
Welcome to IIT and cs105!. CS Secs Jon Hanrath SB Office Hours: –MW 8:00 A.M. – 9:45 A.M. –W 5:00 P.M. – 6:00 P.M
1 Welcome to CS 105 Intro Comp Pgm’g I Welcome to IIT too?
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Introduction to Computing Systems: From Bits and Gates.
COMP 110 Introduction to Programming Jingdan Zhang June 20, 2007 MTWRF 9:45-11:15 am Sitterson Hall 014.
PROBABILITY AND STATISTICS FOR ENGINEERS Session 1 Dr Abdelaziz Berrado MTH3301 —Fall 09.
Introduction to Computer Engineering ECE/CS 252, Fall 2010 Prof. Mikko Lipasti Department of Electrical and Computer Engineering University of Wisconsin.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Introduction to Computing Systems: From Bits and Gates.
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
Welcome Aboard – Chapter 1 COMP 2610 Dr. James Money COMP
Introduction CSE 1310 – Introduction to Computers and Programming
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
CS451 Computer Graphics JYH-MING LIEN DEPARTMENT OF COMPUTER SCIENCE GEORGE MASON UNIVERSITY.
CS 1 •This is Computer Science 1. •Who is Professor Adams?
Welcome to CS 3260 Dennis A. Fairclough. Overview Course Canvas Web Site Course Materials Lab Assignments Homework Grading Exams Withdrawing from Class.
CSE 501N Fall ‘09 00: Introduction 27 August 2009 Nick Leidenfrost.
COMP Introduction to Programming Yi Hong May 13, 2015.
BYU CS/ECEn 124Chapter 01 - Abstraction1 CS/ECEn 124 – Computer Systems Winter 2010 Section 001, MWF 1:00 – 1:50 pm Section 002, MWF 2:00 – 2:50 pm Help.
CSc 2310 Principles of Programming (Java) Dr. Xiaolin Hu.
Welcome to IIT and cs115!.
ECEN 301Discussion #1 – Syllabus1 All Sections MWF 1:00 – 1:50 PM 256 CB Lecture: MW Recitation: F Labs: M or Th Instructor: Prof. David Long Office: CB.
CSCE 1040 Computer Science 2 First Day. Course Dr. Ryan Garlick Office: Research Park F201 B –Inside the Computer Science department.
CS355 Advanced Computer Architecture Fatima Khan Prince Sultan University, College for Women.
CSC 110 – Intro. to Computing Prof. Matthew Hertz WTC 207D /
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Introduction to Computer Engineering ELEC S100F (Fall.
1 8/29/05CS150 Introduction to Computer Science 1 Professor: Shereen Khoja
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
مبانی کامپیوتر و برنامه سازی محمودرضا هاشمی دانشکده برق و کامپيوتر دانشگاه تهران پاییز 84.
CS 140 Computer Programming (I) Second semester (3 credits) Imam Mohammad bin Saud Islamic University College of Computer Science and Information.
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
Econ 3320 Managerial Economics (Fall 2015)
CS 303 Logic & Digital System Design - An Overview
Syllabus Highlights CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
PART 1 Introduction 1. Layers of Abstraction 2. Turing Machine 3. Layer Transformation 4. Descriptions of Layers.
CSCE 1030 Computer Science 1 First Day. Course Dr. Ryan Garlick Office: Research Park F201 B –Inside the Computer Science department.
1 CS 101 Today’s class will begin about 5 minutes late We will discuss the lab scheduling problems once class starts.
BIT 143: Programming – Data Structures It is assumed that you will also be present for the slideshow for the first day of class. Between that slideshow.
Syllabus Highlights CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
James Tam Introduction To CPSC 233 James Tam Java Object-Orientation Graphical-user interfaces.
COP4020 INTRODUCTION FALL COURSE DESCRIPTION Programming Languages introduces the fundamentals of the design and implementation of programming languages.
Introduction Computer Organization Spring 1436/37H (2015/16G) Dr. Mohammed Sinky Computer Architecture
IST 210: ORGANIZATION OF DATA Introduction IST210 1.
CS Computer Architecture Fall 2010 Dr. Angela Guercio ( Course Web Page
Spring 2008 Mark Fontenot CSE 1341 – Honors Principles of Computer Science I Note Set 1 1.
CS150: Computer Organization and Architecture Michael D. Wilder, Ph.D.
Computer Systems Architecture Edited by Original lecture by Ian Sunley Areas: Computer users Basic topics What is a computer?
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
Chapter 1 Welcome Aboard. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-2 Introduction to the World of.
Yale N. Patt Sanjay J. Patel
Introduction to Computer Systems
Introduction to Computer Engineering
Instructor:Po-Yu Kuo 教師:郭柏佑
Introduction to Computer Engineering
Computer Architecture Syllabus
Computer Science 102 Data Structures CSCI-UA
Welcome Aboard 1.
T Computer Architecture, Autumn 2005
Instructor:Po-Yu Kuo 教師:郭柏佑
Introduction to Computer Engineering
Professor: Shereen Khoja
Introduction to Computer Engineering
Presentation transcript:

Introduction to Computer Systems CS 224 – Computer Systems Winter 2015 Section 001, 2:00 – 2:50 pm MWF (3104 JKB) Section 002, 3:00 – 3:50 pm MWF (3104 JKB) Instructor: Paul Roper Office: TMCB 3370, 422-8149 Office Hours: 9-10 am MWF Email: proper@cs.byu.edu BYU CS 224 Introduction to Computer Systems

Introduction to Computer Systems Syllabus Course Information Class website (http://students.cs.byu.edu/~cs224ta) Syllabus / Schedule / Info Labs / Homework Slides / Reading assignments / Reference material Web submission / Help queue Required Class Materials LaunchPad Development Tool (~$10) Available from Texas Instruments on-line (www.ti.com) ORDER NOW! RBX430-1 Development Board ($80) Available in Computer Science Office – 3361 TMCB (Need Student Signature Card) Programmable Microcontrollers with Applications: MSP430 LaunchPad with CCS and Grace by Cem Unsalan and H. Deniz Gurhan. Available in BYU Bookstore or online from a book dealer like Amazon.com (~$50) Code: The Hidden Language of Computer Hardware and Software by Charles Petzold. Recommended Class Materials C Programming Language (2nd Edition, Prentice Hall) by Brian W. Kernighan and Dennis M. Ritchie BYU CS 224 Introduction to Computer Systems

Introduction to Computer Systems Syllabus Grading Lab assignments (50%) Lab 1: Data Types (3%) Lab 2: Digital FSM (4%) Lab 3: Blinky (4%) Lab 4: Microarchitecture (6%) Lab 5b: Traffic Light (5%) Lab 6a: Morse Code I (6%) Lab 7b: Morse Code II (6%) Lab 8a: Life (8%) Lab 9b: Snake (8%) Homework (15%) Quizzes (5%) Exam I (8%) Exam II (8%) Final Exam (14%) A = 93% C = 73% A- = 90% C- = 70% B+ = 87% D+ = 67% B = 83% D = 63% B- = 80% D- = 60% C+ = 77% E = below 60% BYU CS 224 Introduction to Computer Systems

Introduction to Computer Systems Syllabus Labs (50%) Each student is to complete his own labs. All submitted lab source code must contain header comments that include student’s name and a declaration that the completed assignment is their own work (accept for group labs) in order to be accepted. Lab assignments must be completed and passed off with a “Date Modified” timestamp on or before the due date to receive full credit. NOTE: Timestamps cannot be used for bonus credit points. Any lab assignment submitted after the due date will lose 10% per school day (up to a maximum of 50%). All completed labs will receive a minimum 50% credit - no lab less than 50% completed will be accepted. Labs passed off at least one day before the due date (no timestamps) receive an additional 10% bonus credit. (Labs completed in previous semesters DO NOT qualify for early pass-off bonus credit.) Bonus credit on any lab is only awarded after all regular requirements have been completed (including bonus labs). BYU CS 224 Introduction to Computer Systems

Introduction to Computer Systems Syllabus Homework (15%) Homework is due in class on the last lecture day of each section. Most homework consists of 5 to 10 questions and covers the material from the previous 2-4 class discussions, but may cover additional material not discussed directly in class. Homework must have your name and section (clearly legible) at the top of the homework and to be accepted for grading. Homework will be graded by each student in class, submitted at the end of class for recording of the score, and returned the following class period. (Subject to available time.) NO LATE HOMEWORK WILL BE ACCEPTED. You are welcome and encouraged to discuss the homework with your classmates and others outside of class. However, you are to do and submit your own work. Submitting someone else’s work or checking answers with each other is considered cheating for which you will receive an E grade for the class and be reported to the Honor Code Office. BYU CS 224 Introduction to Computer Systems

Introduction to Computer Systems Syllabus In-class Quizzes (5%) In-class quizzes are to encourage class attendance and participation. The quizzes are formulated from class lecture and emphasize application of specific learning objectives. In-class quizzes will be handed out and collected in class. No late quizzes will be accepted. Quizzes will be graded on a pass/fail basis. BYU CS 224 Introduction to Computer Systems

Introduction to Computer Systems Syllabus Miscellaneous All exams are administered in the Testing Center. To receive an A or A- grade for the class, a student must complete all required labs and pass the final exam (70% or better). Anyone who completes all the required labs and passes the final exam (non-normalized 70% or higher), will receive no lower than a C-. Any grade points earned on labs above the allotted lab percentage will apply towards your overall grade. It is the student’s responsibility to present their lab work to a TA on a personal computer or in a Tallmadge Computer Science computer lab for pass off during regular TA hours. BYU Grades will be used to record scores (and approximate grade). Laptops may be used during class ONLY for class slides and note taking. Questions… BYU CS 224 Introduction to Computer Systems

Introduction to Computer Systems Syllabus And Finally... If you find yourself struggling with the material, falling behind on assignments, facing personal problems, lacking motivation, or any experiencing any difficulty that effects your school work… Resolving problems sooner is always better than later. Talk with the professor at the first sign of problems. Attend all lectures and help sessions. Work with the TAs – especially in morning hours. Maximize deadlines met. Run to completion – avoid context switching (distractions). There is little that can be done to improve your grade if you wait until reading day. BYU CS 224 Introduction to Computer Systems

Introduction to Computer Systems Student comments… Didn't get much out of class but the labs were wonderful. I learned a ton from the labs. They are very well done. The main thing that was frustrating about this course was how fast it moved. It covered so much material in such a short period of time that I felt like I didn't learn anything. Looking back, I did learn things but and I think this course is very valuable. The course taken as a junior is not too difficult and subjects could be covered a little faster than they are now. The class is very well organized, very useful, and very enlightening. It's a very hard class because of time requirements, though. Each week required about four hours in the lab during fairly inconvenient times. BYU CS 224 Introduction to Computer Systems

Introduction to Computer Systems Student comments… This course ended up being very useful, informative, and enlightening, even though I really didn't want to take it. The class was very difficult and many just dropped because they didn't think they could learn all the material in the given time. This course is very time consuming. This class and other Computer Science classes make it challenging to take multiple CS classes at the same time. This class took the mystery out of computing. I very much enjoyed it, especially at the beginning. The class was very well organized. I feel like the amount of learning you achieved in the class was mostly up to you. BYU CS 224 Introduction to Computer Systems

Computers – Magic Boxes? What’s inside this thing??? Paul Roper

Analog to Digital Transformation Computers Analog to Digital Transformation  HDTV Wristwatches Books Film LP’s Rotary phone NTSC Slide rule 737’s  LCDs  Nooks  Flash  MP3  Smart phone Analog:  Caller leaves a voice mail Digital:  Google synthesizes and translates the analog signal to text Analog:  I read or listen to the voice mail Real life is analog, not Digital. We all love digital.  It makes our lives easier and faster.  But I’m not sure we all have an appropriate understanding of what digital and analog really mean.  The fact of the matter is that we don’t live in a digital world.  Our world is purely analog.  We just have digital processes that happen in some mysterious box in technology-land.  787’s  Calculator BYU CS 224 Introduction to Computer Systems Paul Roper

Introduction to Computer Systems No Magic to Computing… A computer does not have a mind of its own. follows instructions exactly and repeatedly. is built from many fast, simple parts. has a set of instructions – program. knows how to execute instructions – control. executes instructions on data – data path. Computers are ubiquitous (meaning everywhere!) In theory, any computer can compute anything that’s possible to compute given enough memory and time. In practice, solving a problem is constrained by speed, cost, and power – the difference is in scale not substance. BYU CS 224 Introduction to Computer Systems

Price/Performance Pyramid Computers Price/Performance Pyramid Cost Power Speed Differences in scale, not in substance BYU CS 224 Introduction to Computer Systems

The World of Abstraction We abstract naturally– Avoid getting bogged down in unnecessary details by focusing on the essential aspects of an entity. More efficient to think about something at the highest possible level of abstraction (when everything is working fine). Without abstraction, one would certainly be overwhelmed by the complexity of a computer. But, when something doesn’t work, then abstraction fails and you have to look at the details. BYU CS 224 Introduction to Computer Systems

Problem Solving w/Computers Solving Problems Problem Solving w/Computers Wordprocessing… Games… Surfing the web… Problem Algorithm Software Design: choose algorithms and data structures Program Programming: use language to express design Instruction Set Architecture Compiling/Interpreting: convert language to machine instructions Micro- architecture Instruction Set Design: Design ISA that enables efficient problem solving Circuits Processor Design: choose structures to implement ISA Devices Process Engineering & Fabrication: develop and manufacture lowest-level components Logic/Circuit Design: gates and low-level circuits to implement components 101011011… BYU CS 224 Introduction to Computer Systems Paul Roper

Introduction to Computer Systems Solving Problems Problems Why not use natural languages to program computers? Incomplete Missing words and/or word structures for computer procedures. Imprecise Words that mean the same thing are difficult to translate into computer instructions. Ambiguous – the most unacceptable attribute! To infer the meaning of a sentence, a listener is often helped by the tone of the speaker or the context of the sentence. Recommend my product on Facebook. “Like me on Facebook.” Hey dude, I’m on Facebook! Problems Algorithms “Like Me” Now playing on Facebook, “Like Me”. Programs Machine (ISA) Microarchitecture Circuits BYU CS 224 Introduction to Computer Systems Devices

Introduction to Computer Systems Solving Problems Algorithms An algorithm is a step-by-step procedure that: guarantees to terminate (finiteness) each step is precisely stated (definiteness) each step can be carried out (effective computability) Examples Starting a car Computing the average of n integers How much money do I owe the IRS? For any given problem, there are usually multiple algorithms that will work. Problems Algorithms Programs Machine (ISA) Microarchitecture Circuits BYU CS 224 Introduction to Computer Systems Devices

Introduction to Computer Systems Solving Problems Programs An algorithm is tranformed into a computer program using a computer language. communicate with the computer defined by a grammar mechanical rather than natural not ambiguous More than 1,000 programming languages different languages for different purposes financial processing/report generation manipulating lists of symbolic data natural language processing often, just a personal preference Problems Algorithms Programs Machine (ISA) Microarchitecture Circuits BYU CS 224 Introduction to Computer Systems Devices

Instruction Set Architecture (ISA) Solving Problems Instruction Set Architecture (ISA) The computer program (language) is translated into the instruction set of a particular computer Specific to a CPU Data types - what are the different representations of operands Operations on data - what functions can be done Addressable memory - where are operands stored Addressing modes - how to find operands in memory Problems Algorithms Programs Machine (ISA) Microarchitecture Circuits BYU CS 224 Introduction to Computer Systems Devices

faster and more complex Solving Problems Microarchitecture The microarchitecture transforms the ISA into an implementation. 8051 IA-32 386 486 Pentium Pentium-II, III, IV Xeon MSP430 How the operations in the ISA are implemented how do you add two binary numbers? or, how do you access memory? faster and more complex Problems Algorithms Programs Machine (ISA) Microarchitecture Circuits BYU CS 224 Introduction to Computer Systems Devices

Introduction to Computer Systems Solving Problems Circuits The next step is to implement each element of the microarchitecture with simple logic circuits. Gates, adders, multiplexers Flip flops, memory cells Adders, subtracters, multipliers Circuits are used to make the computer do useful things like multiply or store a result. Problems Algorithms Programs Machine (ISA) Microarchitecture Circuits BYU CS 224 Introduction to Computer Systems Devices

Solving Problems Devices Finally, each basic logic circuit is implemented by a particular device technology. Wires and traces Voltages Types of circuits (transistors) CMOS NMOS Gallium arsenide Devices are the building blocks for more complex circuits. Problems Algorithms Programs Machine (ISA) Microarchitecture Circuits BYU CS 224 Introduction to Computer Systems Devices

Introduction to Computer Systems Questions… Define abstraction. What is an algorithm? What is the difference between a computer Instruction Set Architecture (ISA) and a computer micro-architecture? At which level of transformation are solutions ambiguous? Which level is concerned with voltages and electrons? BYU CS 224 Introduction to Computer Systems

Introduction to Computer Systems BYU Computer Courses CS 142 CS 235 CS 236 CS 240 CS 312 CS 340 CS 345 CS 360 Problems Algorithms High Level – C, Java, C++ Language (Program) Low Level – Assembly CS 224 IT 252 Machine (ISA) Architecture High Level – Behavioral RTL, High Level Block Diagrams Microarchitecture ECEn 451 ECEn 424 Low Level Block Diagrams ECEn 330 Circuits Devices BYU CS 224 Introduction to Computer Systems

Introduction to Computer Systems BYU CS 224 Introduction to Computer Systems Paul Roper