Monday, August 28, 2017

Size: px
Start display at page:

Download "Monday, August 28, 2017"

Transcription

1 Monday, August 28, 2017 Topics for today Course in context. Course outline, requirements, grading. Administrivia: Tutoring: Department, PLTL, LRC Knowledge Survey The concept of a multi-level machine Motivations for knowing how to program at assembly level COMP 162 in context You can see the position of COMP 162 in both the Computer Science and the Information Technology degree programs in the on-line charts In each degree program it is the first hardware-oriented course. In the BSCS it leads into COMP262 and COMP 362. In the BSIT, it provides some foundation for COMP 221 though it is not a prerequisite for that course. Comp 162 is also a required course in the minor in Computer Science and the minor in Robotics Engineering. Comp 162 is an introduction to computer systems, low-level programming, and a brief introduction to topics covered in more depth in later courses. The official pre-requisite is Comp 150 or IT 151 or COMP 121 or IT 152 In practice, the pre-requisite is some knowledge of programming in a high-level language so that when we discuss loops and if statements, you know what we are talking about. Textbook Computer Systems (5th Edition), J. Stanley Warford, Jones and Bartlett (2016) An online copy of the book is accessible through the CS Safari Books page. Course outline The first third of the course is a general introduction to computer architecture, data representation, the von Neumann model The second third looks specifically at the Pep/8 system, low-level programming techniques and how high-level language features map onto assembly language. The final third is some language theory (relevant to compilers) and introductions to systems topics covered in later courses. Comp 162 Notes Page 1 of 9 August 28, 2017

2 Lab The lab sessions (3 hours each week) will introduce the C language and then the Pep/9 programming environment and give you supervised time to work on the programming assignments (first two in C, remaining 4 in Pep/9). Administrivia The course uses both CI Learn (Blackboard/Canvas) and the web. CI is transitioning to Canvas; this is the last semester for Blackboard. Key information such as grades will be posted to both systems this semester. Most information will be posted on the course web page to avoid duplication. My home page is: A link to the Comp 162 course page is about halfway down the page. Contact information (phone, , office, office hours etc) is at the top of the page. Course requirements (probable) Three homeworks, six programs (C/Pep), three mid-term exams and one final exam. Note that all the exams are open book, open notes. Grading In figuring the final course grade this semester, components are weighted approximately as follows Final 16% Homeworks 8% each Mid-terms 8% each Programs 6% each Plus-minus grading will be used in the course grade. Tutoring In SIE 1119, in El Dorado Hall and in the Learning Resource Center (Broome Library) PLTL Peer-led team learning - available for Comp 162 in Fall Recommended, but space is limited. Knowledge Survey An anonymous before-and-after survey of course-related knowledge Comp 162 Notes Page 2 of 9 August 28, 2017

3 Overview: The concept of a multi-level machine The course textbook is organized round the idea of a computer system being a multi-level machine. This way of approaching a system (think of an onion) does not originate with Warford but it is a good way to break up the course topics. In Warford s view, a system has 7 levels with the application layer (the outermost) being level 7 and the logic circuit layer (the innermost) being level 1. Somewhat simplified, we have: Level 7: Level 6: Applications, e.g., Word, Safari, computer games written in high-level language. High-level language, e.g., C, Java which a compiler translates to assembly language Typical statement: vector[j]=45; Level 5: Level 4: Level 3: Level 2: Level 1: Assembly language (symbolic) translated by assembler into numeric form Typical statements: ldwa 45,i ldwx J,d stwa vector,x Operating system. Some instructions in the output from the assembler are processed directly by level 3, others (e.g. input/output) require action by the operating system. The Operating System itself is held in the form of machine code instructions. Machine Code binary instructions. A program of very simple microinstructions interprets the machine code program. Circuits are activated according to the current microinstruction. This is where, finally, computation actually happens. Different courses in the degree programs cover different parts of this model. In Comp 162 the topics we look at include Level 6 programming in C How an assembler works (the mapping of level 5 onto levels 4 and 3) The relationship between elements of High-Level language programs (level 6) and their counterparts at level 5. Some aspects of Operating Systems (Level 4) The operations possible in Level 3. Comp 162 Notes Page 3 of 9 August 28, 2017

4 1: Circuit level 2: Microinstruction level 7: Application layer 6 High-level language level 5: Assembly language level 4: Operating System Level 3: Instruction Set Architecture level Comp 162 Notes Page 4 of 9 August 28, 2017

5 Implementing a multi-level machine How can we implement one level on the one below it? To see some possibilities, think about the problem of implementing a very high-level language on a system that can run a high-level language (for example C). Here are two examples of very highlevel languages. Example 1: APL. (a real language) The following APL program computes the mean of the numbers in an array {(+/ω) ρω} The following APL program (from Wikipedia) sorts a list of word in array X by word length Example 2: VECMAT (a made-up language) VECMAT is a high-level language for vector and matrix manipulation. vector A,B; matrix C,D; input A, C; B = C * A; output B; Two options for implementing a level (level N) on the level beneath (level N-1) are: translation and interpretation. Consider the problem of implementing VECMAT on a machine that can run C. (a) translation. Write a translator in C that translates a VECMAT program into an equivalent C program. We can run this translator on any system that has C then subsequently run the C program that the translator outputs. (b) interpretation. Write a program in C that interprets the VECMAT program. The interpreter does much the same actions that you would do when tracing a program keep track of contents of variables, remember which instruction you are tracing, take appropriate action for each instruction. These implementation methods (translation, interpretation) are found at various points in the multilevel machine when we implement level N on level N-1. Comp 162 Notes Page 5 of 9 August 28, 2017

6 Motivation for studying low-level programming Most users of computer systems are at the application level, they don t care how the system actually works as long as it runs their applications (Safari, PeopleSoft, Microsoft Office, etc.) correctly. So why study computer architecture and low-level (assembly language programming)? 1. Knowing how computers work lets you compare different systems. For example, what is RISC architecture and why might it be superior to non-risc? How are Intel and AMD processors similar and how are they different? 2. Assembly languages are very similar and once you have studied one, another is relatively easy to pick up. 3. If you are involved in writing compilers or operating systems or other types of system software or you are programming embedded systems there may be circumstances where a high-level language gets in the way of what you want to do. For example, it might not be possible to access some of the hardware from within a high-level language program. Then you may need to resort to embedding assembly code in your program. 4. The output from a compiler may be too big or run too slowly for your particular circumstance, e.g., writing code for a system with limited memory. Being able to tweak the assembly code output from a compiler is a valuable skill as is being able to tweak the highlevel language so that the compiler produces the program with the characteristics you want. Here are four example scenarios. Example 1 You are developing a control program in C for an embedded system, for example an MP6 player (it s only a matter of time). The output from the compiler currently occupies 4130 bytes. By knowing how the compiler translates various data and control structures, you make appropriate changes to the C source code, recompile and the new object program is only 4020 bytes. Now the code fits in a 4K memory (4096 bytes) rather than requiring an 8K memory (assuming memories are multiples of 4K bytes). You have reduced the cost by perhaps $1 per unit significant if you are producing millions of units. Example 2 Here is an example of how knowledge of assembly language lets us improve on compiler output. The source code in this example initializes, to zero, the first 100 elements of an array. for (i=0; i<100; i++) A[i] = 0; Comp 162 Notes Page 6 of 9 August 28, 2017

7 (a) Compiler output. Without any kind of optimizations, a compiler might produce the following code (somewhat generic assembly language) MOVL #0,I MOVL #0,R3 LAB: MOVL #0,A[R3] ADDL #1,R3 ADDL #1,I COMPL R3,#100 BLSS LAB (b) If we were to translate the loop by hand, we might come up with the following that uses more sophisticated programming techniques MOVL #A+100,R3 LAB: CLRL (R3)- COMPL R3,#A BGTR LAB (c) An expert assembly language programmer, with knowledge of the complete instruction set available, might be able to use instructions in a truly innovative way, leading to the following program CLRL A MOVC3 #396,A,A+4 We can compare these three assembly code programs (very approximately) under two headings: space and time: How many bytes of memory does each occupy? How long does each take to run? For the former, we approximate space requirements by simply counting the number of symbols in the program; for the latter we count the number of instruction executions as the program runs. This leads to the following table. Program Space Time A (Compiler) B (Hand-compile) C (Hand-compile: expert) 6 2 The time comparison is a little unfair because the MOVC3 instruction in the last program will take a lot longer to run than the average instruction. Nevertheless, we can see that substantial improvements are possible over the code output by the compiler. (We will look at optimization techniques later.) Comp 162 Notes Page 7 of 9 August 28, 2017

8 Example 3 In a certain program, 1% of the code accounts for 50% of the execution time. This is not unrealistic, a 600-line program might have a 6-line inner loop where the program spends most of its time. Assuming: It takes 100 person-months (pm) to write the entire program in C Assembly code takes 10 times longer to write than C Assembly code runs 4 times faster than C. Compare the following strategies with respect to programming time and execution time. (1) Write the entire program in C (2) Write the entire program in assembler (3) Write the entire program in C then rewrite the critical 1% in assembly code Strategy Programming Time Execution Time pm X pm 0.25X = 110pm 0.5X X = 0.625X So for a small (one-time?) extra investment in programming time, we have reduced execution time by 37%. Example 4 In most cases, one high-level language instruction is translated into a sequence of many assembly language instructions. However, consider the following fragment of a high-level language program F = 0 For ( I = N; I > = 0; I --) F = F * X + C[ I ] Did you recognize this as the evaluation of a polynomial user Horner s Method 1? If you did not recognize it, what are the chances of a compiler recognizing it and being able to translate it into the following single assembly code instruction (DEC VAX)? POLYD X,N,C A programmer on the other hand, knowing the problem to be solved (polynomial evaluation) and the tools available (POLYD) can put the two together. 1 See, for example, Comp 162 Notes Page 8 of 9 August 28, 2017

9 Why Pep/9? We use the Pep/9 virtual machine developed at Pepperdine University. It is an integrated environment that lets you create, edit, assemble and run assembly code or machine code programs. Pep/9 is the latest version of a long-running project that you can find at Click on the Fifth Edition link in the Editions tab. We use Pep/9 rather than a real system (e.g., Intel, AMD) because (a) versions are readily available for Mac and Windows and (coming soon?) Linux (b) It is just the right size (about 40 instructions) for a one-semester course. Unfortunately, there is only one textbook that describes the system but it is relatively straightforward Reading. Read the Preface and Chapter 1 (only 1.2 is really needed). Chapter 2 is relevant to the first few labs. We will begin covering Chapter 3 material in the next lecture. Comp 162 Notes Page 9 of 9 August 28, 2017

Wednesday, September 27, 2017

Wednesday, September 27, 2017 Wednesday, September 27, 2017 Topics for today Chapter 6: Mapping High-level to assembly-level The Pep/9 run-time stack (6.1) Stack-relative addressing (,s) SP manipulation Stack as scratch space Global

More information

Wednesday, September 20, 2017

Wednesday, September 20, 2017 Wednesday, September 20, 2017 Topics for today More high-level to Pep/9 translations Compilers and Assemblers How assemblers work Symbol tables ILC Pass 1 algorithm, Error checking Pass 2 Immediate mode

More information

COMP Data Structures

COMP Data Structures COMP 2140 - Data Structures Shahin Kamali Topic 1 - Introductions University of Manitoba Based on notes by S. Durocher. COMP 2140 - Data Structures 1 / 35 Introduction COMP 2140 - Data Structures 1 / 35

More information

CS 3030 Scripting Languages Syllabus

CS 3030 Scripting Languages Syllabus General Information CS 3030 Scripting Languages Semester: Fall 2017 Textbook: Location: Instructor Info: None. We will use freely available resources from the Internet. Online Ted Cowan tedcowan@weber.edu

More information

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

In this course, you need to use Pearson etext. Go to Pearson etext and Video Notes. **Disclaimer** This syllabus is to be used as a guideline only. The information provided is a summary of topics to be covered in the class. Information contained in this document such as assignments, grading

More information

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

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015 Course and Contact Information San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015 Instructor: Aikaterini Potika Office Location: MacQuarrie Hall 215

More information

COMP Data Structures

COMP Data Structures Shahin Kamali Topic 1 - Introductions University of Manitoba Based on notes by S. Durocher. 1 / 35 Introduction Introduction 1 / 35 Introduction In a Glance... Data structures are building blocks for designing

More information

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

CS 240 Fall Mike Lam, Professor. Just-for-fun survey: CS 240 Fall 2014 Mike Lam, Professor Just-for-fun survey: http://strawpoll.me/2421207 Today Course overview Course policies Python Motivation Computers are digital Data is stored in binary format (1's

More information

CS120 Computer Science I. Instructor: Jia Song

CS120 Computer Science I. Instructor: Jia Song CS120 Computer Science I Instructor: Jia Song Instructor Contact Information Instructor: Dr. Jia Song Email: jsong@uidaho.edu (Preferred) Phone: (208) 885-1710 Office: JEB 240 (CSDS Security Lab) JEB 340

More information

Introduction to Data Structures

Introduction to Data Structures 15-121 Introduction to Data Structures Lecture #1 Introduction 28 August 2019 Margaret Reid-Miller Today Course Administration Overview of Course A (very basic) Java introduction Course website: www.cs.cmu.edu/~mrmiller/15-121

More information

Introduction to Computer Systems

Introduction to Computer Systems Introduction to Computer Systems Web Page http://pdinda.org/ics Syllabus See the web page for more information. Class discussions are on Piazza We will make only minimal use of Canvas (grade reports, perhaps

More information

Monday, February 16, 2015

Monday, February 16, 2015 Monday, February 16, 2015 Topics for today How assemblers work Symbol tables ILC Pass 1 algorithm, Error checking Pass 2 Immediate mode and equate Assembler variants: Disassembler, Cross assembler Macros

More information

COMP3221: Microprocessors and. Embedded Systems

COMP3221: Microprocessors and. Embedded Systems Embedded Systems Lecture 1: Introduction http://www.cse.unsw.edu.au/~cs3221 Lecturer: Hui Wu Session 1, 2005 1 COMP 3221 Administration (1/2) Lecturer: Hui Wu: huiw@cse.unsw.edu.au Office: K17-501D Consultation:

More information

COMP 250. Lecture 36 MISC. - beyond COMP final exam comments

COMP 250. Lecture 36 MISC. - beyond COMP final exam comments COMP 250 Lecture 36 MISC - beyond COMP 250 - final exam comments Dec 5, 2016 1 202 Intro Program MATH (prereqs for many upper level COMP courses) 206 Software Systems 273 Computer Systems 250 Intro Comp

More information

Wednesday, March 14, 2018

Wednesday, March 14, 2018 Wednesday, March 14, 2018 Topics for today Arrays and Indexed Addressing Arrays as parameters of functions Multi-dimensional arrays Option A: Space-minimal solution Option B: Iliffe vectors Array bound

More information

Preface A Brief History Pilot Test Results

Preface A Brief History Pilot Test Results Preface A Brief History In Fall, 2005, Wanda Dann and Steve Cooper, originators of the Alice approach for introductory programming (in collaboration with Randy Pausch), met with Barb Ericson and Mark Guzdial,

More information

CSC 111 Introduction to Computer Science (Section C)

CSC 111 Introduction to Computer Science (Section C) CSC 111 Introduction to Computer Science (Section C) Course Description: (4h) Lecture and laboratory. Rigorous introduction to the process of algorithmic problem solving and programming in a modern programming

More information

CSC 015: FUNDAMENTALS OF COMPUTER SCIENCE I

CSC 015: FUNDAMENTALS OF COMPUTER SCIENCE I CSC 015: FUNDAMENTALS OF COMPUTER SCIENCE I Lecture 1: Class Introduction DR. BO TANG ASSISTANT PROFESSOR HOFSTRA UNIVERSITY 1 9/7/16 CSC15 - Python OUTLINE What is Computer Science? What is this Class

More information

Computer Science 210: Data Structures

Computer Science 210: Data Structures Computer Science 210: Data Structures Welcome to Data Structures! Data structures are fundamental building blocks of algorithms and programs Csci 210 is a study of data structures design efficiency implementation

More information

administrivia final hour exam next Wednesday covers assembly language like hw and worksheets

administrivia final hour exam next Wednesday covers assembly language like hw and worksheets administrivia final hour exam next Wednesday covers assembly language like hw and worksheets today last worksheet start looking at more details on hardware not covered on ANY exam probably won t finish

More information

CS 3270 Mobile Development for Android Syllabus

CS 3270 Mobile Development for Android Syllabus General Information Semester: Fall 2016 Textbook: Required: Android 6 for Programmers An App-Driven Approach, 3e, Deitel, Deitel and Wald, Prentice Hall, 978-0-13-428936-6. This book is also available

More information

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

In this course, you need to use Pearson etext. Go to Pearson etext and Video Notes. **Disclaimer** This syllabus is to be used as a guideline only. The information provided is a summary of topics to be covered in the class. Information contained in this document such as assignments, grading

More information

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

61A LECTURE 1 FUNCTIONS, VALUES. Steven Tang and Eric Tzeng June 24, 2013 61A LECTURE 1 FUNCTIONS, VALUES Steven Tang and Eric Tzeng June 24, 2013 Welcome to CS61A! The Course Staff - Lecturers Steven Tang Graduated L&S CS from Cal Back for a PhD in Education Eric Tzeng Graduated

More information

INF 315E Introduction to Databases School of Information Fall 2015

INF 315E Introduction to Databases School of Information Fall 2015 INF 315E Introduction to Databases School of Information Fall 2015 Class Hours: Tuesday & Thursday10:30 am-12:00 pm Instructor: Eunyoung Moon Email: eymoon@utexas.edu Course Description Almost every website

More information

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

CS 240 Fall 2015 Section 004. Alvin Chao, Professor CS 240 Fall 2015 Section 004 Alvin Chao, Professor Today Course overview Data Structures / Algorithms Course policies The C language Motivation Computers are digital Data is stored in binary format (1's

More information

Computer Organization & Assembly Language Programming (CSE 2312)

Computer Organization & Assembly Language Programming (CSE 2312) Computer Organization & Assembly Language Programming (CSE 2312) Lecture 1 Taylor Johnson Outline Administration Course Objectives Computer Organization Overview August 21, 2014 CSE2312, Fall 2014 2 Administration

More information

College of San Mateo Course Outline

College of San Mateo Course Outline College of San Mateo Course Outline New Course Update/No change Course Revision (Minor) Course Revision (Major) Date: 1/26/12 Department: CIS Number: 420 Course Title: Project Management Professional Certificate

More information

CISC 124: Introduction To Computing Science II

CISC 124: Introduction To Computing Science II CISC 124: Introduction To Computing Science II instructor: Margaret Lamb instructor's home page: www.cs.queensu.ca/home/malamb office: Goodwin 527 current office hours are always on my home page 1 Moodle

More information

Kris Gaj Research and teaching interests: ECE 646 Cryptography and Computer Network Security. Course web page: Contact: ECE 646

Kris Gaj Research and teaching interests: ECE 646 Cryptography and Computer Network Security. Course web page: Contact: ECE 646 646 and Computer Network Security Course web page: web page Courses 646 Kris Gaj Research and teaching interests: cryptography network security computer arithmetic FPGA & ASIC design and testing Contact:

More information

CS 241 Data Organization using C

CS 241 Data Organization using C CS 241 Data Organization using C Fall 2018 Instructor Name: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Farris 2120 Office Hours: Tuesday 2-4pm and Thursday 9:30-11am

More information

Monday, March 27, 2017

Monday, March 27, 2017 Monday, March 27, 2017 Topics for today Indexed branching Implementation of switch statement Reusable subroutines Indexed branching It turns out that arrays are useful in translating other language constructs,

More information

CS232: Computer Architecture II

CS232: Computer Architecture II CS232: Computer Architecture II Spring 23 January 22, 23 21-23 Howard Huang 1 What is computer architecture about? Computer architecture is the study of building entire computer systems. Processor Memory

More information

Monday, January 27, 2014

Monday, January 27, 2014 Monday, January 27, 2014 Topics for today History of Computing (brief) Encoding data in binary Unsigned integers Signed integers Arithmetic operations and status bits Number conversion: binary to/from

More information

CSE 240 Introduction to Computer Architecture

CSE 240 Introduction to Computer Architecture 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

More information

(0) introduction to the course. how to learn a programming language. (0) course structure

(0) introduction to the course. how to learn a programming language. (0) course structure topics: (0) introduction to the course (1) what is a computer? instructor: cis1.5 introduction to computing using c++ (robotics applications) spring 2008 lecture # I.1 introduction Prof Azhar, mqazhar@sci.brooklyn.cuny.edu

More information

Dr. Chuck Cartledge. 7 Nov. 2017

Dr. Chuck Cartledge. 7 Nov. 2017 5.2 5.3 5.4 Chap. 5 review Conclusion References CSC-205 Computer Organization Lecture #012 Sections 5.2 through 5.4, Machine instructions and assemblers Dr. Chuck Cartledge 7 Nov. 2017 1/17 Table of contents

More information

Grande Prairie Regional College

Grande Prairie Regional College Grande Prairie Regional College Department of Office Administration COURSE OUTLINE OA 2280 M2, Microsoft Word 2007 Expert Level (3) (0-0-4) 60 hours Monday Friday 10 11:30 am. A313 Instructor Sharron Barr

More information

CS150 Introduction to Computer Science 1. What is CS150? Who Are We? CS150 is a programming course You will learn

CS150 Introduction to Computer Science 1. What is CS150? Who Are We? CS150 is a programming course You will learn CS 150 Introduction to Computer Science 1 Professor: Shereen Khoja shereen@pacificu.edu 1 What is CS150? CS150 is a programming course You will learn o The mechanics of writing programs in C++ o How to

More information

School of Computer Science

School of Computer Science School of Computer Science Computer Science (CS) modules CS1002 Object-Oriented Programming Computer Science - 1000 & 2000 Level - 2016/7 - December 2016 SCOTCAT Credits: 20 SCQF Level 7 Semester: 1 3.00

More information

Syllabus of ENPM 691: Secure Programming in C

Syllabus of ENPM 691: Secure Programming in C Syllabus of ENPM 691: Secure Programming in C Spring Semester 2018 Instructor: Dharmalingam Ganesan, PhD Contact: dganesan@umd.edu Class hours: Thursday 7:00 PM to 9:40 PM Class location: TBA Course Description:

More information

Campus Networking Workshop CIS 399. Dale Smith University of Oregon & NSRC

Campus Networking Workshop CIS 399. Dale Smith University of Oregon & NSRC Campus Networking Workshop CIS 399 Dale Smith University of Oregon & NSRC dsmith@uoregon.edu Course Participants: Course Notes US Computer Science Students Undergraduate students from China Network and

More information

CS1 Lecture 2 Jan. 16, 2019

CS1 Lecture 2 Jan. 16, 2019 CS1 Lecture 2 Jan. 16, 2019 Contacting me/tas by email You may send questions/comments to me/tas by email. For discussion section issues, sent to TA and me For homework or other issues send to me (your

More information

CS 200: Computer Organization

CS 200: Computer Organization CS 200: Computer Organization Spring 2017 Course Syllabus Northern Arizona University College of Engineering, Forestry, and Natural Sciences School of Informatics, Computing, and Cyber Systems Course Information

More information

PhD Candidacy Exam Overview

PhD Candidacy Exam Overview EDIC - Doctoral Program in Computer & Communication Sciences PhD Candidacy Exam Overview https://phd.epfl.ch/edic/candidacyexams Candidacy exam background The philosophy After your 1 st year of PhD you

More information

COURSE SYLLABUS AND INSTRUCTOR PLAN

COURSE SYLLABUS AND INSTRUCTOR PLAN WACO, TEXAS COURSE SYLLABUS AND INSTRUCTOR PLAN INTRODUCTION TO COMPUTING LAB COSCL 1301.11 Jaylene Pipkin SPRING 2012 Course Description: Provides a survey of microcomputer usages and applications. Includes

More information

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

William Paterson University of New Jersey Department of Computer Science College of Science and Health Course Outline William Paterson University of New Jersey Department of Computer Science College of Science and Health Course Outline I. Course Title: CS 280 Computer and Assembler Language 3 credits II. III. IV. Course

More information

Course Syllabus. Course Information

Course Syllabus. Course Information Course Syllabus Course Information Course: MIS 6V99 Special Topics Programming for Data Science Section: 5U1 Term: Summer 2017 Meets: Friday, 6:00 pm to 10:00 pm, JSOM 2.106 Note: Beginning Fall 2017,

More information

Computer Organization & Assembly Language Programming (CSE 2312)

Computer Organization & Assembly Language Programming (CSE 2312) Computer Organization & Assembly Language Programming (CSE 2312) Lecture 2 Taylor Johnson Summary from Last Time This course aims to answer the question: how do computers compute? Complex and fundamental

More information

CS 241 Data Organization. August 21, 2018

CS 241 Data Organization. August 21, 2018 CS 241 Data Organization August 21, 2018 Contact Info Instructor: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Room 2120 of Farris Web site: www.cs.unm.edu/~vasek/cs241/

More information

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

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus 1. Course Objectives Welcome to MET CS342 Data Structures with Java. The intent of this

More information

ECE 646 Cryptography and Computer Network Security. Course web page: Kris Gaj Research and teaching interests: Contact: ECE web page Courses ECE 646

ECE 646 Cryptography and Computer Network Security. Course web page: Kris Gaj Research and teaching interests: Contact: ECE web page Courses ECE 646 646 Cryptography and Computer Network Security Course web page: web page Courses 646 Kris Gaj Research and teaching interests: cryptography network security computer arithmetic FPGA & ASIC design and testing

More information

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

CS61C Machine Structures. Lecture 1 Introduction. 8/27/2006 John Wawrzynek (Warzneck) CS61C Machine Structures Lecture 1 Introduction 8/27/2006 John Wawrzynek (Warzneck) (http://www.cs.berkeley.edu/~johnw/) http://www-inst.eecs.berkeley.edu/~cs61c/ CS 61C L01 Introduction (1) What are Machine

More information

Review: Performance Latency vs. Throughput. Time (seconds/program) is performance measure Instructions Clock cycles Seconds.

Review: Performance Latency vs. Throughput. Time (seconds/program) is performance measure Instructions Clock cycles Seconds. Performance 980 98 982 983 984 985 986 987 988 989 990 99 992 993 994 995 996 997 998 999 2000 7/4/20 CS 6C: Great Ideas in Computer Architecture (Machine Structures) Caches Instructor: Michael Greenbaum

More information

Wednesday, September 21, 2016

Wednesday, September 21, 2016 Wednesday, September 21, 2016 Topics for today More high-level to translations Compilers and Assemblers How assemblers work Symbol tables ILC Pass 1 algorithm, Error checking Pass 2 Immediate mode and

More information

E40M. An Introduction to Making: What is EE?

E40M. An Introduction to Making: What is EE? E40M An Introduction to Making: What is EE? Jim Plummer Stanford University plummer@stanford.edu Chuan-Zheng Lee Stanford University czlee@stanford.edu Roger Howe Stanford University rthowe@stanford.edu

More information

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques 1 CPSC2620 Advanced Programming Spring 2003 Instructor: Dr. Shahadat Hossain 2 Today s Agenda Administrative Matters Course Information Introduction to Programming Techniques 3 Course Assessment Lectures:

More information

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

San José State University Department of Computer Science CS049J, Programming in Java, Section 2, Fall, 2016 Course and Contact Information San José State University Department of Computer Science CS049J, Programming in Java, Section 2, Fall, 2016 Instructor: Office Location: Fabio Di Troia DH282 Telephone: Email:

More information

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

Menu. Class 1: Introduction. Staff. Course Structure and Expectations. Contacting Us. Contacting You Fall 2006 Class 1: Introduction CS333: Computer University of Virginia Computer Science Michele Co Menu Course Structure Course Goals First Assignment Course Admin (add class/change section) 2 Course Structure

More information

Wednesday, September 13, Chapter 4

Wednesday, September 13, Chapter 4 Wednesday, September 13, 2017 Topics for today Introduction to Computer Systems Static overview Operation Cycle Introduction to Pep/9 Features of the system Operational cycle Program trace Categories of

More information

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

IT 252 Computer Organization and Architecture. Introduction. Chia-Chi Teng IT 252 Computer Organization and Architecture Introduction Chia-Chi Teng What is computer architecture about? Computer architecture is the study of building computer systems. IT 252 is roughly split into

More information

Compulsory course in Computer Science

Compulsory course in Computer Science Compulsory course in Computer Science University of Macau Faculty of Science and Technology Department of Computer and Information Science SFTW241 Programming Languages Architecture I Syllabus 2 nd Semester

More information

378: Machine Organization and Assembly Language

378: Machine Organization and Assembly Language 378: Machine Organization and Assembly Language Spring 2010 Luis Ceze Slides adapted from: UIUC, Luis Ceze, Larry Snyder, Hal Perkins 1 What is computer architecture about? Computer architecture is the

More information

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

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018 San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018 Course and Contact Information Instructor: Suneuy Kim Office

More information

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

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics Zarqa University Faculty: Information Technology Department: Computer Science Course title: Programming LAB 1 (1501111) Instructor: Lecture s time: Semester: Office Hours: Course description: This introductory

More information

Computing and compilers

Computing and compilers Computing and compilers Comp Sci 1570 to Outline 1 2 3 4 5 Evaluate the difference between hardware and software Find out about the various types of software Get a high level understanding of how program

More information

COMP Analysis of Algorithms & Data Structures

COMP Analysis of Algorithms & Data Structures COMP 3170 - Analysis of Algorithms & Data Structures Shahin Kamali Topic 1 - Introductions University of Manitoba Picture is from the cover of the textbook CLRS. COMP 3170 - Analysis of Algorithms & Data

More information

COMP 117: Internet-scale Distributed Systems Lessons from the World Wide Web

COMP 117: Internet-scale Distributed Systems Lessons from the World Wide Web COMP 117: Internet Scale Distributed Systems (Spring 2018) COMP 117: Internet-scale Distributed Systems Lessons from the World Wide Web Noah Mendelsohn Tufts University Email: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah

More information

CIS 3308 Web Application Programming Syllabus

CIS 3308 Web Application Programming Syllabus CIS 3308 Web Application Programming Syllabus (Upper Level CS Elective) Course Description This course explores techniques that are used to design and implement web applications both server side and client

More information

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

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor CSE 114, Computer Science 1 Course Information Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor http://www.cs.stonybrook.edu/~cse114 Course Description Procedural and object-oriented programming

More information

ITE 115 Introduction to Computer Applications

ITE 115 Introduction to Computer Applications Revised: Fall 2014 ITE 115 Introduction to Computer Applications COURSE OUTLINE Prerequisites: These are basic computer skills that are necessary to facilitate your successful completion in this course.

More information

ESET 369 Embedded Systems Software, Fall 2017

ESET 369 Embedded Systems Software, Fall 2017 ESET 369 Embedded Systems Software, Fall 2017 Syllabus Contact Information: Professor: Dr. Byul Hur Office: Fermier 008A Telephone: (979) 845-5195 FAX: E-mail: byulmail@tamu.edu Web: rftestgroup.tamu.edu

More information

Team 1. Common Questions to all Teams. Team 2. Team 3. CO200-Computer Organization and Architecture - Assignment One

Team 1. Common Questions to all Teams. Team 2. Team 3. CO200-Computer Organization and Architecture - Assignment One CO200-Computer Organization and Architecture - Assignment One Note: A team may contain not more than 2 members. Format the assignment solutions in a L A TEX document. E-mail the assignment solutions PDF

More information

CS4621/5621 Fall Computer Graphics Practicum Final Projects. Professor: Kavita Bala Instructor: Nicolas Savva

CS4621/5621 Fall Computer Graphics Practicum Final Projects. Professor: Kavita Bala Instructor: Nicolas Savva CS4621/5621 Fall 2015 Computer Graphics Practicum Final Projects Professor: Kavita Bala Instructor: Nicolas Savva Final Project Groups of 2 students Duration 1.5 months (~7 weeks) TA mentoring sessions

More information

Monday, April 9, 2018

Monday, April 9, 2018 Monday, April 9, 208 Topics for today Grammars and Languages (Chapter 7) Finite State Machines Semantic actions Code generation Overview Finite State Machines (see 7.2) If a language is regular (Type 3)

More information

CS 61C: Great Ideas in Computer Architecture RISC-V Instruction Formats

CS 61C: Great Ideas in Computer Architecture RISC-V Instruction Formats CS 61C: Great Ideas in Computer Architecture RISC-V Instruction Formats Instructors: Krste Asanović and Randy H. Katz http://inst.eecs.berkeley.edu/~cs61c/fa17 9/14/17 Fall 2017 - Lecture #7 1 Levels of

More information

9/14/17. Levels of Representation/Interpretation. Big Idea: Stored-Program Computer

9/14/17. Levels of Representation/Interpretation. Big Idea: Stored-Program Computer CS 61C: Great Ideas in Computer Architecture RISC-V Instruction Formats Instructors: Krste Asanović and Randy H. Katz http://inst.eecs.berkeley.edu/~cs61c/fa17 Fall 2017 - Lecture #7 1 Levels of Representation/Interpretation

More information

CS535: Interactive Computer Graphics

CS535: Interactive Computer Graphics CS535: Interactive Computer Graphics Instructor: Daniel G. Aliaga (aliaga@cs.purdue.edu, www.cs.purdue.edu/homes/aliaga) Classroom: LWSN B134 Time: MWF @ 1:30-2:20pm Office hours: by appointment (LWSN

More information

CS 152 Computer Architecture and Engineering Lecture 1 Single Cycle Design

CS 152 Computer Architecture and Engineering Lecture 1 Single Cycle Design CS 152 Computer Architecture and Engineering Lecture 1 Single Cycle Design 2014-1-21 John Lazzaro (not a prof - John is always OK) TA: Eric Love www-inst.eecs.berkeley.edu/~cs152/ Play: 1 Today s lecture

More information

Inf2C - Computer Systems Lecture 1 Course overview & the big picture

Inf2C - Computer Systems Lecture 1 Course overview & the big picture Inf2C - Computer Systems Lecture 1 Course overview & the big picture Boris Grot School of Informatics University of Edinburgh Practicalities Lectures: Tue 15:10 16:00 @ Appleton Tower, LT 2 Fri 15:10 16:00

More information

CS 3030 Scripting Languages Syllabus

CS 3030 Scripting Languages Syllabus General Information CS 3030 Scripting Languages Semester: Summer 2013 Textbook: Location: Instructor Info: Website: None. We will use freely available resources from the Internet. Online Ted Cowan tedcowan@weber.edu

More information

CSE 167: Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016

CSE 167: Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016 CSE 167: Introduction to Computer Graphics Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016 Today Course organization Course overview 2 Course Staff Instructor Jürgen Schulze,

More information

EECE 321: Computer Organization

EECE 321: Computer Organization EECE 321: Computer Organization Mohammad M. Mansour Dept. of Electrical and Compute Engineering American University of Beirut Lecture 1: Introduction Administrative Instructor Dr. Mohammad M. Mansour,

More information

Many ways to build logic out of MOSFETs

Many ways to build logic out of MOSFETs Many ways to build logic out of MOSFETs pass transistor logic (most similar to the first switch logic we saw) static CMOS logic (what we saw last time) dynamic CMOS logic Clock=0 precharges X through the

More information

SADDLEBACK COLLEGE BUSINESS SCIENCE DIVISION

SADDLEBACK COLLEGE BUSINESS SCIENCE DIVISION Instructor: Carolyn Z. Gillay email: cgillay@saddleback.edu. SADDLEBACK COLLEGE BUSINESS SCIENCE DIVISION COURSE SYLLABUS CIMW 100B WEB DEVELOPMENT: HTML - ADVANCED Semester: Summer 2017 7/17/2017 to 8/12/2017

More information

Course Outline. TERM EFFECTIVE: Spring 2016 CURRICULUM APPROVAL DATE: 10/12/2015

Course Outline. TERM EFFECTIVE: Spring 2016 CURRICULUM APPROVAL DATE: 10/12/2015 5055 Santa Teresa Blvd Gilroy, CA 95023 Course Outline COURSE: CSIS 28 DIVISION: 50 ALSO LISTED AS: TERM EFFECTIVE: Spring 2016 CURRICULUM APPROVAL DATE: 10/12/2015 SHORT TITLE: COMPUTER ARCHITECTURE LONG

More information

ECE2049 E17 Lecture 4 MSP430 Architecture & Intro to Digital I/O

ECE2049 E17 Lecture 4 MSP430 Architecture & Intro to Digital I/O ECE2049-E17 Lecture 4 1 ECE2049 E17 Lecture 4 MSP430 Architecture & Intro to Digital I/O Administrivia Homework 1: Due today by 7pm o Either place in box in ECE office or give to me o Office hours tonight!

More information

SADDLEBACK COLLEGE BUSINESS SCIENCE DIVISION

SADDLEBACK COLLEGE BUSINESS SCIENCE DIVISION Instructor: Carolyn Z. Gillay email: cgillay@saddleback.edu. SADDLEBACK COLLEGE BUSINESS SCIENCE DIVISION COURSE SYLLABUS CIMW 100B WEB DEVELOPMENT: HTML - ADVANCED Semester: Fall 2016 10/17/2016 to 12/18/2016

More information

Monday, March 6, We have seen how to translate void functions. What about functions that return a value such as

Monday, March 6, We have seen how to translate void functions. What about functions that return a value such as Monday, March 6, 2017 Topics for today C functions and Pep/9 subroutines Translating functions (c) Non-void functions (d) Recursive functions Reverse Engineering: Pep/9 to C C Functions and Pep/9 Subroutines

More information

Comp 104: Operating Systems Concepts

Comp 104: Operating Systems Concepts Comp 104: Operating Systems Concepts Prof. Paul E. Dunne. Department of Computer Science, University of Liverpool. Comp 104: Operating Systems Concepts Introduction 1 2 Today Admin and module info Introduction

More information

Computers and programming languages introduction

Computers and programming languages introduction Computers and programming languages introduction Eugeniy E. Mikhailov The College of William & Mary Lecture 01 Eugeniy Mikhailov (W&M) Practical Computing Lecture 01 1 / 19 Class goals and structure Primary

More information

Software Reliability and Reusability CS614

Software Reliability and Reusability CS614 Software Reliability and Reusability CS614 Assiut University Faculty of Computers & Information Quality Assurance Unit Software Reliability and Reusability Course Specifications2011-2012 Relevant program

More information

CHEM 31A (90285): General Chemistry Fall 2013

CHEM 31A (90285): General Chemistry Fall 2013 CHEM 31A (90285): General Chemistry Fall 2013 I. Lecture Lecturer: Office: A237 Cook Email: Erik.Ruggles@uvm.edu Office Hours: M W F: 10:30 11:30 am W F: 1:00 3:30 pm T Th: 9:30 11:30 am or by appointment

More information

CS 378 (Spring 2003) Linux Kernel Programming. Yongguang Zhang. Copyright 2003, Yongguang Zhang

CS 378 (Spring 2003) Linux Kernel Programming. Yongguang Zhang. Copyright 2003, Yongguang Zhang Department of Computer Sciences THE UNIVERSITY OF TEXAS AT AUSTIN CS 378 (Spring 2003) Linux Kernel Programming Yongguang Zhang (ygz@cs.utexas.edu) Copyright 2003, Yongguang Zhang Read Me First Everything

More information

ECE 156A - Syllabus. Description

ECE 156A - Syllabus. Description ECE 156A - Syllabus Lecture 0 ECE 156A 1 Description Introduction to HDL (Hardware Description Language) basic elements, HDL simulation concepts, HDL concurrent statements with examples and applications,

More information

Computer Science 210 Data Structures Siena College Fall Topic Notes: Complexity and Asymptotic Analysis

Computer Science 210 Data Structures Siena College Fall Topic Notes: Complexity and Asymptotic Analysis Computer Science 210 Data Structures Siena College Fall 2017 Topic Notes: Complexity and Asymptotic Analysis Consider the abstract data type, the Vector or ArrayList. This structure affords us the opportunity

More information

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

CSE 417 Practical Algorithms. (a.k.a. Algorithms & Computational Complexity) CSE 417 Practical Algorithms (a.k.a. Algorithms & Computational Complexity) Outline for Today > Course Goals & Overview > Administrivia > Greedy Algorithms Why study algorithms? > Learn the history of

More information

Chris Riesbeck, Fall Introduction to Computer Systems

Chris Riesbeck, Fall Introduction to Computer Systems Chris Riesbeck, Fall 2011 Introduction to Computer Systems Welcome to Intro. to Computer Systems Everything you need to know http://www.cs.northwestern.edu/academics/courses/213/ Instructor: Chris Riesbeck

More information

Introduction to Programming System Design CSCI 455x (4 Units)

Introduction to Programming System Design CSCI 455x (4 Units) Introduction to Programming System Design CSCI 455x (4 Units) Description This course covers programming in Java and C++. Topics include review of basic programming concepts such as control structures,

More information

Processor. Lecture #2 Number Rep & Intro to C classic components of all computers Control Datapath Memory Input Output

Processor. Lecture #2 Number Rep & Intro to C classic components of all computers Control Datapath Memory Input Output CS61C L2 Number Representation & Introduction to C (1) insteecsberkeleyedu/~cs61c CS61C : Machine Structures Lecture #2 Number Rep & Intro to C Scott Beamer Instructor 2007-06-26 Review Continued rapid

More information

CSE 504: Compiler Design

CSE 504: Compiler Design http://xkcd.com/303/ Compiler Design Course Organization CSE 504 1 / 20 CSE 504: Compiler Design http://www.cs.stonybrook.edu/~cse504/ Mon., Wed. 2:30pm 3:50pm Harriman Hall 116 C. R. Ramakrishnan e-mail:

More information