CS 200: Computer Organization

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

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

Rochester Institute of Technology Golisano College of Computing and Information Sciences Department of Information Sciences and Technologies

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS LINUX SYSTEM ADMINISTRATION CSIT 2411

CS 241 Data Organization using C

EECE 321: Computer Organization

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

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

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

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

School of Computer Science

KING FAHD UNIVERSITY OF PETROLEUM & MINERALS COMPUTER ENGINEERING DEPARTMENT

SIR C.R.REDDY COLLEGE OF ENGINEERING, ELURU DEPARTMENT OF INFORMATION TECHNOLOGY LESSON PLAN

CMPE 152 Compiler Design

ESET 349 Microcontroller Architecture, Fall 2018

Introduction to Computers & Their Use

JOHNSON COUNTY COMMUNITY COLLEGE COURSE SYLLABUS WEB CRN Web Scripting: JavaScript I

EECE.2160: ECE Application Programming Spring 2017

CSCI 201L Syllabus Principles of Software Development Spring 2018

HARFORD COMMUNITY COLLEGE 401 Thomas Run Road Bel Air, MD Course Outline Routing and Switching Essentials [CISCO 2] ISS 112

CSE 504: Compiler Design

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

INFS 2150 (Section A) Fall 2018

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

PELLISSIPPI STATE TECHNICAL COMMUNITY COLLEGE MASTER SYLLABUS HPC INTERNETWORKING & GRID TECHNOLOGY HPC 1020

Philadelphia University Student Name: Student Number:

Compilers. Computer Science 431

BEMIDJI STATE UNIVERSITY COLLEGE OF BUSINESS, TECHNOLOGY AND COMMUNICATION Course syllabus Fall 2011

THE UNIVERSITY OF TEXAS AT AUSTIN MIS373 e-discovery and Digital Forensics SPRING 2015 Unique#: (03883) VERSION: 1/23/2015

COURSE NUMBER: ISS 214 COURSE NAME: Connecting Networks - Cisco 4 SEMESTER CREDIT HOURS: 4.

Arab Open University. Computer Organization and Architecture - T103

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

CMPE 152 Compiler Design

INST Database Design and Modeling - Section 0101 Spring Tentative Syllabus

BEMIDJI STATE UNIVERSITY COLLEGE OF BUSINESS, TECHNOLOGY AND COMMUNICATION Course syllabus Fall 2012

378: Machine Organization and Assembly Language

CS/SE 153 Concepts of Compiler Design

CMPE/SE 135 Object-Oriented Analysis and Design

Introduction to C. Why C? Difference between Python and C C compiler stages Basic syntax in C

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

X

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS ROUTING/SWITCH CONFIGURATION CSIT 2750

ESET 369 Embedded Systems Software, Spring 2018

GET 433 Course Syllabus Spring 2017

LOGIC DESIGN. Dr. Mahmoud Abo_elfetouh

PUNJAB COLLEGE OF TECHNICAL EDUCATION

EECE.2160: ECE Application Programming Spring 2019

Advisory: Students should have already taken MICROCOMPUTER APPLICATIONS II - 431

BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani Pilani Campus Instruction Division. SECOND SEMESTER Course Handout Part II

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

ELEC 2520 Embedded Systems Engineering II

CMPE 152 Compiler Design

Marshall University MTH 100 Syllabus

CPS352 - DATABASE SYSTEMS. Professor: Russell C. Bjork Spring semester, Office: KOSC 242 x4377

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

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS ADVANCED DATABASE MANAGEMENT SYSTEMS CSIT 2550

CISN 340 Data Communication and Networking Fundamentals Fall 2012 (Hybrid)

CS/SE 153 Concepts of Compiler Design

CS120 Computer Science I. Instructor: Jia Song

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS LINUX ADVANCED SYSTEM & NETWORK ADMINISTRATION CSIT 2475

IS Spring 2018 Database Design, Management and Applications

CMSC 132: Object-Oriented Programming II. Administrivia

ISM 324: Information Systems Security Spring 2014

Computer Science Department

Problem solving using standard programming techniques and Turbo C compiler.

Updated: 2/14/2017 Page 1 of 6

ECE573 Introduction to Compilers & Translators

Modesto Junior College Course Outline of Record CMPSC 241

CISC 3130 Data Structures Spring 2018

EE178 Spring 2018 Lecture Module 1. Eric Crabill

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

PELLISSIPPI STATE TECHNICAL COMMUNITY COLLEGE MASTER SYLLABUS HPC INTERNETWORKING & GRID TECHNOLOGY HPC 1020

Del Mar College Master Course Syllabus. UNIX System Administration Course Number: ITSC1358

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS 3D MODELING & ANIMATION CGT 2160

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

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

Cleveland State University

ECE 156A - Syllabus. Description

CS/ECE 252 Introduction to Computer Engineering

CASPER COLLEGE COURSE SYLLABUS ELTR 2920, Section 01 Small Computer Repair Techniques. Lecture Hours: 2 Lab Hours: 2 Credit Hours: 3

IS 331-Fall 2017 Database Design, Management and Applications

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

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

CS 3030 Scripting Languages Syllabus

Advanced Relational Database Management MISM Course S A3 Spring 2019 Carnegie Mellon University

ITP489 In-Memory DBMS for Real Time Analytics

BCS Higher Education Qualifications. Level 4 Certificate in IT. Computer Network Technology Syllabus

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

HUDSON VALLEY COMMUNITY COLLEGE TROY, NEW YORK COURSE OUTLINE

MGMT 4336 Networks & Data Communication Section D10

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

MWF 9:00-9:50AM & 12:00-12:50PM (ET)

Web Client Side Programming

San Jose State University - Department of Computer Science

THE UNIVERSITY OF TEXAS AT AUSTIN MIS373 e-discovery and Digital Forensics SPRING 2015 Unique#: (03665) VERSION: 2_011718

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

Syllabus -- CIS Computer Maintenance / A+ Certification

Geography 3300: Transportation Security

CSCI 6312 Advanced Internet Programming

Dr. Angela Guercio Dr. Natalia Dragan. Spring 2011

Transcription:

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 Catalog Description: Broad Topics: Binary representation of information in digital computers. An introduction to digital logic design, computer architectures, microprocessor architectures and assembly language programming. Bitwise Operators, Digital Logic, Assembly Language, Computer Architecture, and C++. Prerequisites: CS 126 Co-requisites: None Skill Level: Introductory Credit Hours: 3 Class Number: LEC 3139 Meeting Times: MWF 11:30-12:20, Engineering Building 69, Room 101 Final Exam Time: Wednesday, May 10, 2017, 10:00am - 12:00pm Required Texts: Web Page: Null & Lobur, "The Essentials of Computer Organization and Architecture", 4th Ed. Jones and Bartlett, 2014. ISBN 9781284045611. Britton, "MIPS Assembly Language Programming", 1st Ed. Prentice Hall, 2004. ISBN 013602212X. -OR- The MIPS supplement for the Null & Lobur book, available at http://www.jblearning.com/catalog/details.aspx?isbn13=9781284074482 (Select the Student Resources tab to order the supplement.) BbLearn (bblearn.nau.edu)

Instructor Information Instructor: Office Hours: Email: Phone: NAU Address: Patrick Kelley, BSCS Engineering Bldg. Rm 243 M, W, F 8:00-10:00 Tu,Th 8:00-12:00 Tu,Th 1:00-3:00 Patrick.Kelley (at) nau.edu or webmaster (at) flion.com 699-7455 (email preferred) Box 15600 Flagstaff, AZ 86011 Course Description In this class we will take a look under the hood at the low-level languages and hardware that power the high-level languages we're used to working with. Course Objectives By the end of the semester you should be able to: Relate the history and evolution of hardware. Translate between the various data representations used by computers. Use high-level languages to manipulate binary values. Express hardware functionality using boolean algebra. Utilize the fundamentals of hardware design. Write programs in assembly language. Identify the design characteristics of different machine languages. Recognize the issues and constraints involved in memory management and I/O. Specific learning outcomes are detailed at the end of this syllabus.

Schedule Week 1 Intro, Boolean algebra (Null chapter 3) Week 2 Gates & circuits (Null chapter 3) Week 3 C/C++ Programming (not in book) Week 4 Bitwise ops (not in book) Week 5 Bitwise ops, masks Test 1 (February 17) Week 6 Data representation (Null chapter 1-2) Week 7 Binary arithmetic (Null chapter 1-2) Week 8 ISA's & memory (Null chapter 5 & 6) Week 9 Assembly basics (Britton chapter 1 & 4) Test 2 (March 10) Week 10 Assembly ops (Britton appendix A) Week 11 Assembly ops Week 12 Loops and jumps (Britton chapter 2) Test 3 (April 14) Week 13 Functions (Britton chapter 5) Week 14 Functions and stack (Britton chapter 6) Week 15 I/O & system software (Null chapter 7 & 8) Week 16 Final Exam (5/10/2017 10:00 to 12:00)

Coursework The coursework includes the following assignments and tests: 10 Homework Assignments at 10 pts each (17% of total grade) Homework assignments involve research using book and online resources to answer specific questions. They help to fully prepare you for and familiarize you with the current lecture topics. Points are awarded for correct answers. 10 Programming Projects at 20 pts each (33% of total grade) Programming projects are where you put the knowledge you've gained into practice, transitioning from the theoretical to the practical with hands-on experience. Points are awarded based on the completeness and quality of your work and the thoroughness of your project report. 3 Tests: 60 pts each (30% of total grade) 1 Final Exam: 120 pts (20% of total grade) The tests and the final are an incentive for you to ensure you fully understand the topics being covered - as well as demonstrating that fact to the instructor. Points are awarded for correct answers. Total: 600 pts (100%) Your class grade is based on the standard scale of points earned: 90%=A, 80%=B, 70%=C, 60%=D, below 60%=F. No grades are curved or dropped, though there are opportunities for extra credit. Projects are individual effort. Assignments are due according to the posted schedule in Bb Learn. Extra Credit There will be a number of extra credit possibilities that involve doing extra work on assignments. Besides that, you can also get +2 points on any project by turning it in at least two days early (ex. If it is due midnight Friday, then it must be in by midnight Wednesday to qualify for extra credit). Note that your project must fully work to receive the extra credit. Late Policy Project assignments are accepted up to a week late at a pro-rated 40% point penalty. Homework assignments are not accepted after the due date. The reason for this is that homework solutions are posted online after the due date. If you miss a test or know you will miss an assignment or test, discuss the matter with me as soon as possible. Preferably beforehand so we can make other arrangements.

Attendance Regular attendance is expected. Don't be late, and don't leave until class is dismissed. Roll isn't taken, but each lecture you miss seriously jeopardizes your overall comprehension of the material and your chances to do well. Final Exam Policies If you score less than 50% on the final exam, your final class grade (which includes the final exam grade) will be reduced by one letter grade. This means that doing very poor on the final can severely hurt your class grade. If you had 480/480 points ("A") before the final and made 50/120 points on the final, your final class average would be 530/600 (88%) and your final grade would be "C". On the other hand if you do well in the class you get to take the Easy Final Exam, where all you have to do is sign your name on the day of the final. To qualify for the Easy Final you must meet ALL these conditions: o Have an "A" average at the end of the semester (90% or 432/480 points before the final). o o o Have scored 54/60 points or better on EACH of the first three tests. Have completed all 10 projects with a grade of 16/20 or better. Have turned in all 10 homework assignments with a grade of 8/10 or better. Lectures and the Book The lecture topics follow the same general outline as the books. However, the lecture complements the book rather than being a mirror of it. If you only read the book or only pay attention to the lecture you're likely to end up missing some key concepts. To get the most from the class, read each chapter before we discuss the corresponding topic in the lecture, then use the lecture as an opportunity to reconsider the key points of the material and ask questions on anything you're confused on. Plagiarism and Cheating Grades are a way to motivate students and to evaluate students' mastery of a subject and their ability to get work done. The grades you get are not themselves truly important, but instead are representative of your knowledge, capabilities, and work ethic, and those are the things that matter. If you plagiarize source code, fabricate results, make fraudulent claims, or attempt to cheat in any way, you are misrepresenting yourself, your level of understanding, your capabilities, and your ability to accomplish things. It is dishonest and unethical. Anyone who plagiarizes, copies, fabricates, or cheats will at the least receive a zero on that assignment or test. Consulting with others and using their advice on projects is fine. However, the programs you submit should be your own work that you thoroughly understand and are entirely responsible for. Don t share code, just ideas.

Bb Learn Most assignments and handouts will only be available on Bb Learn - they will not be handed out in class. In general, assignments will be posted by Monday and due the following week. Projects will be posted farther in advance but count on spending only a week on any project. Any clarifications, corrections, and announcements will be posted on Bb Learn. I expect every student to follow the class progress in Bb Learn. Assignments and projects will be handed in via Bb Learn and your grades will be posted there. Read the assignment policies at http://www.cefns.nau.edu/~pek7/common/assignment.pdf to see how I expect work to be submitted. Failure to follow the guidelines will affect your grade. University Policies There are a number of university policies that govern your education and safety that all students should be aware of. These are: Safe Working and Learning Environment Students With Disabilities Accommodation of Religious Observance And Practice Institutional Review Board (And Use Of Human Subjects) Academic Dishonesty Medical Insurance Coverage For Students Classroom Management Evacuation Policies You will find a complete description of each policy here: http://www.cefns.nau.edu/~pek7/common/policies.pdf

EXTENDED COURSE DESCRIPTION 1. Explanation of Prerequisites CS 126 An ability to program alone and with a team. An ability to solve small to medium sized problems with structured programming. An ability to employ the software design process and software design tools to solve problems with computation. 2. Core Topics History of Computing Hardware o Organization vs. Architecture o Principle of Equivalence of Hardware and Software o Generations of Hardware Analog (Gen 0) Digital (Gen 1 5) o Computer Level Hierarchy o Von Neumann Model o Components of a computer system Boolean Algebra o Boolean functions and operators o Truth Tables o Boolean Identities and Simplification o Canonical Forms o Karnaugh Maps Digital Logic o Gates o Combinational Circuits Adders Multiplexers Decoders o Sequential Circuits Clocks Flip-flops Finite State Machines Registers and Memory Counters C/C++ o Basic Language Syntax/Structure o Pointers and Memory o Bitwise Data Operators o Organization methods

Data Representation o Unsigned data and Operations o Signed data and Operations Sign-Magnitude One s Complement Two s Complement o Floating Point Representation o Character Sets BCD/EBCDIC ASCII Unicode Instruction Set Architecture (ISA) o Opcodes and Operands o Instruction Formats Logical Memory Organization o Address Size o Code and Data Storage o Arrays and Strings o Endianness Assembly Language (MIPS) o Basic Language Syntax/Structure o HLL Construct Implementation Conditional Statements Status Register CASE Short-circuit evaluation Loops (WHILE, DO WHILE, FOR) o Simple Procedures (register preserved parameters) o Stack-based Procedures System Architecture o Storage Cache Virtual Memory RAID o I/O Interrupts Memory-mapped devices o System Software Micro-kernel vs. Monolithic Multi-tasking Virtual Machines Programming tools (Linking and Dynamic Linking)

3. Tools Tools used in this class include: Logisim (a simple logic circuit editor/emulator) A virtual Ubuntu development environment at CodeAnywhere.com MARS or SPIM (free MIPS emulators) Any text editor for creating assembly files 4. Learning Outcomes L1. An ability to recognize the basic principles of computer organization and architecture. a. Describe the difference between organization and architecture. b. Describe and apply the principle of equivalence of hardware and software. c. Recognize the generations of computer hardware. d. Recognize the levels of hierarchy in a modern computing system. e. Understand von Neumann architecture and be able to trace the steps in processing. This outcome supports BSCS ABET Student Outcomes A, E and K. This outcome supports BSACS ABET Student Outcomes A, E and K. L2. An ability to generate reports reflecting progress on assigned projects. a. Write and organize a report in a clear and engaging manner. b. Describe in writing the project outcomes. This outcome supports BSCS ABET Student Outcome G. This outcome supports BSACS ABET Student Outcome G. L3. An ability to work with Boolean algebra a. Generate truth tables for Boolean functions. b. Simplify Boolean functions using the rules of Boolean algebra. c. Simplify Boolean functions using Karnaugh Maps. d. Expand Boolean functions into canonical forms. This outcome supports BSACS ABET Student Outcomes A, E and K. L4. An ability to create digital logic circuits a. Express a Boolean function in combinational digital logic. b. Design multiplexers, decoders, and adders. c. Express sequential circuits with a truth table and a logic diagram.

d. Express a sequential circuit as a finite state machine. e. Use flip-flops with combinational digital logic to create counters, registers, and simple memory. L5. An ability to use C/C++ for programming with an emphasis in bitwise operations. a. Write simple C/C++ programs. b. Use appropriate data types and C-style type conversions. c. Use C-style pointer reference and dereference syntax. d. Use and interpret the results of the bitwise operators in C/C++. L6. An ability to interpret and use binary data representation. a. Convert between binary, octal, decimal and hexadecimal. b. Convert signed numbers between binary and decimal using sign-magnitude, 1s complement, and 2s complement. c. Do binary addition, multiplication, subtraction, and division. d. Convert rational numbers between bases. e. Convert binary representation of rational numbers to decimal format. f. Do addition, multiplication, subtraction, and division of rational numbers in binary representation. g. Convert binary character data to BCD/EBCDIC, ASCII, and Unicode. L7. An ability to create and interpret instruction set architectures a. Decipher machine language instruction formats. b. Organize opcodes and instruction formats to create an ISA. L8. An ability to understand and use different memory architectures. a. Relate memory space to address size. b. Interpret data stored in memory, including arrays.

c. Interpret large data affected by Endianness. L9. An ability to use assembly language a. Write and execute programs in assembly language. b. Trace program execution and memory usage. c. Write conditional statements for efficient processing. d. Write compound conditionals and take advantage of short-circuit evaluation. e. Identify and write assembly constructs equivalent to high-level language constructs, such as loops and case statements. f. Write simple called procedures using register parameter passing. g. Write advanced procedures using stack frames. L10. An ability to work with advanced architectural features. a. Analyze hit/miss ratios and speedup ratios for cache memory. b. Interpret addressing and page tables in virtual memory. c. Describe various I/O strategies and how they are used. d. Describe the steps in interrupt handling. e. Identify the various RAID levels and describe their advantages. f. Describe the differences between micro-kernel and monolithic systems and the advantages of each. g. Describe various task-switching strategies for multi-tasking. h. Describe virtual systems and their advantages. i. Describe the steps of language compilation and linking. j. Identify the generations of computer languages and their characteristics.