syllabus rollins college...pep/8 instruction set; binary mapping to assembly warford 5.1; study...

8
CMS 230 Computer Systems – Dr. Jennifer Seitzer – MW 7pm – 164 Bush Center Page 1 SYLLABUS ROLLINS COLLEGE CMS 230: Introduction to Computer Systems Fall Semester 2014 4 credits Meets: M/W 7-8:15pm 164 Bush Science Center Instructor: Jennifer Seitzer, Ph.D. Office: 114-B Bush Science Center Email: [email protected] Course Web Page: Blackboard Learning Mgmt Phone: 407-646-2303 *Office Hours: Mon/Wed: 1:00-2:30pm; Wednesday: 5:30-6:30pm Thurs: 4-5:30pm; BY APPOINTMENT – arrange with instructor *These are tentative and will possibly change due to departmental meetings and other college events as they arise. Mailing Address: Dr. Jennifer Seitzer, Associate Professor Math/Computer Science Department 114-B Bush Science Center Rollins College 1000 Holt Ave. Winter Park, FL 32789 COURSE DESCRIPTION Rollins College Catalog Description: CMS 230 Introduction to Computer Systems Introduction to the study of how software controls the critical hardware components of a computer's architecture – the CPU and RAM. Topics include development of C language programs, comparison of high- order procedural languages to machine language programs, CPU organization and functionality at the register/bus level, instruction formats, and development of machine language and assembly level programs using multiple addressing modes, flow-of-control branching and subroutine calls. Prerequisites: CMS 170 Computer Science Principles I, and MAT 140 Discrete Mathematics or CMS 150 Introduction to Computer Science Mathematics. Motivation: This course lets us look inside the computer! Computer Systems is the area of computer science that probes inside the computing machine at many levels of abstraction. Ultimately, every program, every image, every digitized movie or CD is represented in binary, as ones and zeros. The architecture of the machine is designed to interpret, react to, and function corresponding to these ones and zeros. In this class, we will learn how to best navigate the many layers, pieces, and parts of a computing system using computer languages that are particularly adroit at binary manipulations. As we explore various levels and aspects of the computer architecture, we will learn the respective programming languages. This semester, we will study the languages of C and C++ to grasp high level language binary operations. We will dabble with some UNIX shell scripting to understand the operating system and its imperative part of the system architecture. Lastly, we will learn assembly and machine language to examine the computer at its cellular level and help unravel the mystery of “what is going on in there?”

Upload: others

Post on 19-Jan-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SYLLABUS ROLLINS COLLEGE...PEP/8 Instruction Set; Binary Mapping to Assembly Warford 5.1; Study Figure 5.2 16- Wed - 10/22/2014 Programming in Assembly Language; Addressing Schemes:

CMS 230 Computer Systems – Dr. Jennifer Seitzer – MW 7pm – 164 Bush Center Page 1

SYLLABUS ROLLINS COLLEGE

CMS 230: Introduction to Computer Systems

Fall Semester 2014 4 credits Meets: M/W 7-8:15pm 164 Bush Science Center

Instructor: Jennifer Seitzer, Ph.D. Office: 114-B Bush Science Center Email: [email protected] Course Web Page: Blackboard Learning Mgmt Phone: 407-646-2303 *Office Hours:

• Mon/Wed: 1:00-2:30pm; • Wednesday: 5:30-6:30pm • Thurs: 4-5:30pm; • BY APPOINTMENT – arrange with instructor

*These are tentative and will possibly change due to departmental meetings and other college events as they arise.

Mailing Address: Dr. Jennifer Seitzer, Associate Professor Math/Computer Science Department 114-B Bush Science Center Rollins College 1000 Holt Ave. Winter Park, FL 32789

COURSE DESCRIPTION Rollins College Catalog Description: CMS 230 Introduction to Computer Systems Introduction to the study of how software controls the critical hardware components of a computer's architecture – the CPU and RAM. Topics include development of C language programs, comparison of high-order procedural languages to machine language programs, CPU organization and functionality at the register/bus level, instruction formats, and development of machine language and assembly level programs using multiple addressing modes, flow-of-control branching and subroutine calls. Prerequisites: CMS 170 Computer Science Principles I, and MAT 140 Discrete Mathematics or CMS 150 Introduction to Computer Science Mathematics. Motivation: This course lets us look inside the computer! Computer Systems is the area of computer science that probes inside the computing machine at many levels of abstraction. Ultimately, every program, every image, every digitized movie or CD is represented in binary, as ones and zeros. The architecture of the machine is designed to interpret, react to, and function corresponding to these ones and zeros. In this class, we will learn how to best navigate the many layers, pieces, and parts of a computing system using computer languages that are particularly adroit at binary manipulations. As we explore various levels and aspects of the computer architecture, we will learn the respective programming languages. This semester, we will study the languages of C and C++ to grasp high level language binary operations. We will dabble with some UNIX shell scripting to understand the operating system and its imperative part of the system architecture. Lastly, we will learn assembly and machine language to examine the computer at its cellular level and help unravel the mystery of “what is going on in there?”

Page 2: SYLLABUS ROLLINS COLLEGE...PEP/8 Instruction Set; Binary Mapping to Assembly Warford 5.1; Study Figure 5.2 16- Wed - 10/22/2014 Programming in Assembly Language; Addressing Schemes:

CMS 230 Computer Systems – Dr. Jennifer Seitzer – MW 7pm – 164 Bush Center Page 2

Invitation: The  computer  has  changed  the  way  we  think,  speak,  and  act.    Every  cell  phone,  new  car,   laptop,  desktop,   flash  drive,   IPAD,  printer,  TV,  etc.,  etc.,  etc.,  contains  a  CPU   that,  millions   of   times   every   second,   perpetrates   the   cycle   of   fetch-­‐decode-­‐execute.  Welcome  to  Systems  Class!    Jennifer  Seitzer,  Ph.D.      Conceptual Map Expressing Our Path of Study:

Course Goals (These state the purpose of the COURSE):

1. To present and apply the fundamental cycle of the Central Processing Unit (CPU) 2. To convey and illustrate the architecture of the PEP/8 CPU emulator 3. To provide the direction to implement programs in C++, assembly language, and machine language 4. To facilitate the use of binary representation in data, CPU instruction sets, and flag mapping

Course Objectives (These indicate the new capabilities of the STUDENT after completing the course):

1. To understand the internal structure of the central processing unit (CPU) 2. To define the salient characteristics of the von Neumann architecture (and the von Neumann bottleneck) 3. To be able to explain the operation and purpose of the fetch-decode-execute cycle of the CPU 4. To express, interpret, and use data in binary and hexadecimal 5. To solve computing problems using C and C++ running under Unix 6. To solve computing problems using assembly language and machine language programs 7. To implement and debug assembly language and machine language programs using the PEP/8 emulator

Introductory  Internals  CPU  and  OS  basics  

Weeks  1,    revisit  weeks  5,  10  

HIGH  LEVEL  LANGUAGES    C  and  C++  Weeks  2-­‐6  

MACHINE  LANGUAGE  The  PEP/8  Architecture  Weeks  7-­‐9  

ASSEMBLY  LANGUAGE  Weeks  10-­‐15  

BINARY  INTERNALS  Numbers  and  InstrucTons  Weeks  2-­‐14  

 

Page 3: SYLLABUS ROLLINS COLLEGE...PEP/8 Instruction Set; Binary Mapping to Assembly Warford 5.1; Study Figure 5.2 16- Wed - 10/22/2014 Programming in Assembly Language; Addressing Schemes:

CMS 230 Computer Systems – Dr. Jennifer Seitzer – MW 7pm – 164 Bush Center Page 3

COURSE CALENDAR (Tentative List and Schedule of Coverage):

Week Date Topics Assigned Reading

1 1- Mon - 08/25/2014 Introduction; Abstraction; Building a System; Counting to 15 in Binary

Warford (W): Preface, Ch 1.0-1.3, and Chapter 1 Summary on p 27

2- Wed - 08/27/2014 Amazing I/O and storage: Barcodes, Rapid Codes, 3-D Printers, Memory Sticks; Bits, Bytes, and Exabytes

Warford (W): Preface, Ch 1.0-1.3, and Chapter 1 Summary on p 27

2 J Mon - 09/01/2014 No Class – Happy Labor Day! A good novel J 3- Wed - 09/03/2014 High Level (“Imperative”) Languages;

Comparing C, C++, and Java; Hello World! Variables, I/O, Simple Flow

Warford: 2.0-2.2

3 4- Mon - 09/08/2014 Using a High Level Language Programming Environment: compiling, debugging, instructing the OS with shell commands

Warford: 2.0-2.2

5- Wed - 09/10/2014 It’s All Binary! Bit models of numbers, letters, pictures, and movies; Bitwise Operations, Memory Maps

Warford: 2.0-2.2; special readings on bit-wise operations

4 6- Mon - 09/15/2014

More Binary; Changing bits in code Warford 3.1-3.4

7- Wed - 09/17/2014 Pointers in C and C++; Memory maps of pointers; linked data structures

Warford 2.5

5 8- Mon - 09/22/2014

Functions; Parameters; The Run-time Stack; the Program Stack;

Warford: 2.3

9 - Wed- 09/24/2014 More runtime stack study; functions calling other functions

Re-read Warford 2.3

6 10 - Mon - 09/29/2014 Review for Midterm Review all reading material 11 - Wed - 10/01/2014 MIDTERM 1 Review all reading material

7 12 - Mon - 10/06/2014 CPU Innards; PEP8 Hardware Simulator; Instruction Decoding; Direct Addressing

Warford 4.1 and 4.2

13 - Wed - 10/08/2014 Machine Language Programming; Direct Addressing; Historical icon: Von Neumann

Warford 4.3

8 J - Mon - 10/13/2014 FALL BREAK - NO CLASS A funny book. 14 - Wed - 10/15/2014 Memory Model of the PEP/8 architecture;

writing and running programs on the PEP/8 Warford 4.4

9 15- Mon - 10/20/2014 Introduction to Assembly Language; The PEP/8 Instruction Set; Binary Mapping to Assembly

Warford 5.1; Study Figure 5.2

16- Wed - 10/22/2014 Programming in Assembly Language; Addressing Schemes: Immediate, Direct, Indirect

Re-read Warford 5.1, Figure 5.2

10 17 - Mon - 10/27/2014 Implementing Loops and Subroutines… branching; trap instructions; DECI/DECO/STRO

Warford 5.2

18 - Wed - 10/29/2014 Programming tricks, symbols, variables, constants, and circular shifts

Warford 5.3, 5.4, and Summary

11 19 - Mon - 11/03/2014 Review for Midterm Re-read covered sections of text 20 - Wed - 11/05/2014 Midterm 2

12 21 - Mon - 11/10/2014 Compiling down to the Assembly Level; runtime stack operation, local variables, more branching and flow of control

Warford 6.1 and 6.2

22 - Wed - 11/12/2014 More loops; hand simulations and coding Re-read Warford 6.2 13 23 - Mon - 11/17/2014 Global variables and function parameters; Warford 6.3

Page 4: SYLLABUS ROLLINS COLLEGE...PEP/8 Instruction Set; Binary Mapping to Assembly Warford 5.1; Study Figure 5.2 16- Wed - 10/22/2014 Programming in Assembly Language; Addressing Schemes:

CMS 230 Computer Systems – Dr. Jennifer Seitzer – MW 7pm – 164 Bush Center Page 4

CALL and RET; function void calls 24 - Wed - 11/19/2014 Call by value parameters, call by reference

parameters Re-read Warford 6.3

14 25 - Mon - 11/24/2014 What is an array? How do we implement these at the Assembly level?

Warford 6.4

J - Wed - 11/26/2014 Thanksgiving Break Happy Thanksgiving!

A good novel J

15

26 - Mon - 12/01/2014

FIELD TRIP!!! Class excursion to the I/ITSEC International Computing Conference in Orlando, FL

27 - Wed - 12/03/2014 Review and Remember 16

28 – FINAL EXAM 12/10/2014

Final Examination: Wednesday, Dec 10, 2014 7pm

Types of Learning Experiences and Assessment Procedures: Several different learning experience methods and assessment techniques will be employed in this course:

1. Class Sessions: used to discuss and reflect on concepts identified from your pre-reading to ensure your understanding. Frequent discussion questions, problem solving, and design analyses will allow you to apply and work with systems architecture concepts and algorithms. I use Power Point slides and handouts to help guide our discussions. The slides will be available on Blackboard for you to print out if you wish.

2. In-Class and Homework Activities: used to ensure you comprehend the new concepts and are making adequate progress by solving problems. These may or may not be graded. Solutions will be provided for items not graded.

3. Quizzes: used to ensure your comprehension of the current concepts. Quizzes will be scheduled for every Monday. You may use your handwritten, paper materials and textbooks. No laptops, smartphones, IPADs or other electronic devices area are allowed during quizzes and tests.

4. Lab/Programming Activities: used to assist you in gaining experience to understand, design and create spreadsheet and high level language simulations. These problems will develop your programming skills as well as continue to improve your overall software development skills.

5. Exams: used to assess your ability to integrate and apply your new knowledge of computer simulation principles, problems, and algorithms. There will be two mid-terms and a final – open book/notes (no use of electronic devices).

Suggestions for being successful:

1. Stay open. Be willing to do the work to learn. Your future success in the information technology fields will increasingly depend on your openness and willingness to learn new things: new languages, new architectures, new algorithms, etc.

2. Do the reading before class. As you read/study, flag those concepts that aren’t clear to you – this way you come to class with a set of questions for us to discuss and resolve. It has been thoroughly proven that successful students have questions – and actively seek the answer.

3. Attend every class; refer to Blackboard frequently. You can contact me by e-mail or by phone here at Rollins. Finally, you should use each other as resources; you can use BlackBoard to send email to your classmates.

Page 5: SYLLABUS ROLLINS COLLEGE...PEP/8 Instruction Set; Binary Mapping to Assembly Warford 5.1; Study Figure 5.2 16- Wed - 10/22/2014 Programming in Assembly Language; Addressing Schemes:

CMS 230 Computer Systems – Dr. Jennifer Seitzer – MW 7pm – 164 Bush Center Page 5

Course Resources Required Textbooks: Computer Systems – Fourth Edition By, J. Stanley Warford Copy right 2010; Published by Jones and Bartlett Publishing ISBN: 978-0-7637-7144-7; Retail Price $199.95

Programming Environments

We will have programming assignments in C, C++, PEP/8 machine language, and PEP/8 Assembly language. Interpreters/compilers will be made available on our Blackboard site for download. Moreover, documentation and reading materials will also be made available.

COURSE MECHANICS Using BlackBoard for your Preparation The CMS 380 BlackBoard Web Site has a Weekly Lessons Section containing each week's lecture slides, points of emphasis, miscellaneous materials, and homework/programming assignments. It is your responsibility to review each week’s content folder often (sometimes the activities are revised to better reflect our progress). I highly recommend you set a "bookmark" on the BlackBoard login page.

Page 6: SYLLABUS ROLLINS COLLEGE...PEP/8 Instruction Set; Binary Mapping to Assembly Warford 5.1; Study Figure 5.2 16- Wed - 10/22/2014 Programming in Assembly Language; Addressing Schemes:

CMS 230 Computer Systems – Dr. Jennifer Seitzer – MW 7pm – 164 Bush Center Page 6

Grading (Approximate distribution of credit):

I T E M P E R C E N T A G E Midterm 1 15% Midterm 2 15% Final Exam 15%

Quizzes 25% Assignments and Programs 20%

In-Class Grade 10% All questions on Homework, Quizzes, and Exams will require you to provide well-written responses expressing your understanding of the concepts. I expect well-written, grammatically correct sentences that express superior and complete understanding of the concepts in order to earn an A.

Grading Scale: 93-100 A 90-92 A- 87-89 B+ 83-86 B 80-82 B- 77-79 C+ 73-76 C 70-72 C- 67-69 D+ 63-66 D 60-62 D- < 60 F Final Grades and Academic Warnings Your final average will determine your course grade from the above scale. Your final course grade is strongly influenced by your class participation and attendance. Grades on all activities will be posted in BlackBoard’s Grade Book, so you will always be able to determine your class standing. An academic warning will be dispensed whenever a student’s grade falls below a C. Please understand that this is not meant to be punitive, but rather, is meant to help start the process of restoring the student’s success in this field of study. Academic Honor Code • Membership in the student body of Rollins College carries with it an obligation, and requires a commitment,

to act with honor in all things. Because academic integrity is fundamental to the pursuit of knowledge and truth and is the heart of the academic life of Rollins College, it is the responsibility of all members of the College community to practice it and to report apparent violations.

• The following pledge is a binding commitment by the students of Rollins College: The development of the virtues of Honor and Integrity are integral to a Rollins College education and to membership in the Rollins College community. Therefore, I, a student of Rollins College, pledge to show my commitment to these virtues by abstaining from any lying, cheating, or plagiarism in my academic endeavors and by behaving responsibly, respectfully and honorably in my social life and in my relationships with others.

Page 7: SYLLABUS ROLLINS COLLEGE...PEP/8 Instruction Set; Binary Mapping to Assembly Warford 5.1; Study Figure 5.2 16- Wed - 10/22/2014 Programming in Assembly Language; Addressing Schemes:

CMS 230 Computer Systems – Dr. Jennifer Seitzer – MW 7pm – 164 Bush Center Page 7

• This pledge is reinforced every time a student submits work for academic credit as his/her own. Students

shall add to all papers, quizzes, tests, lab reports, etc., the following handwritten abbreviated pledge followed by their signature:

“On my honor, I have not given, nor received, nor witnessed

any unauthorized assistance on this work.” • Material submitted electronically should contain the pledge; submission implies signing the pledge.

Absence and Tardiness Policies: You are expected to attend all classes and hand in all assignments on time. I regard this behavior as the sign of a serious student. If you are absent, it is your responsibility to get with a classmate and go over what happened in class. Since we are solving new problems during each class, it is critical that you get this information. If the Dean of Students or Athletic Director approved your absence in advance, assignments due must be completed prior to the absence. If you are tardy, please try to slip into class as unobtrusively as possible. The exams are noted on the class calendar. If you must be absent on an exam day, it is your responsibility to arrange with me to take the exam early.

Late Submissions: I expect assignments to be turned in when due. If you must be absent on an activity's scheduled due date/time, it is your responsibility to still get the material to me by its scheduled time or earlier. Using the BlackBoard Assignment feature to submit your work will facilitate your timeliness. Homework Problems due on a date when you have an approved absence (see Absence/Tardy Policy) must be turned in prior to the posted due date. Again, homework will be turned in using BlackBoard unless otherwise specified. Academic Accommodation: Rollins College is committed to equal access and does not discriminate unlawfully against persons with disabilities in its policies, procedures, programs or employment processes. The College recognizes its obligations under the Rehabilitation Act of 1973 and the Americans with Disabilities Act of 1990 to provide an environment that does not discriminate against persons with disabilities. If you are a person with a disability on this campus and anticipate needing any type of academic accommodations in order to participate in this course, please make timely arrangements by disclosing this disability in writing to the Disability Services Office at (Box 2613) - Thomas P. Johnson Student Resource Center. Appointments can be scheduled by calling 407-646-2354 or email: [email protected] Communications: We will be using email and the Internet (BlackBoard Web Site) as our primary communication modalities. I will respond to your emails as soon as I can – usually 24-hour turnaround or less. Learn how to use the Rollins network to both communicate with me and your classmates as well as to store your programs on the 'R' drive (r-share). I will use your BlackBoard email address. Be sure and set up your Personal Information on BlackBoard to use the email address you check regularly – even if it is your Rollins account. BlackBoard may not automatically capture your Rollins email address. "I never got your email" is not an acceptable excuse - except for the rare times when the Rollins server is down.

Page 8: SYLLABUS ROLLINS COLLEGE...PEP/8 Instruction Set; Binary Mapping to Assembly Warford 5.1; Study Figure 5.2 16- Wed - 10/22/2014 Programming in Assembly Language; Addressing Schemes:

CMS 230 Computer Systems – Dr. Jennifer Seitzer – MW 7pm – 164 Bush Center Page 8

Last Day to Withdraw Without Notation (“W” Deadline): Friday, September 5, 2014 Last Day to Withdraw Without Academic Penalty (“WF” Deadline): Friday, October 31, 2014 Laptops and Cell Phones in Class: Learning is exciting and good work. I view our classroom as a place where we are heavily engaged in the business of learning a difficult subject. Interruptions from cell phones are a sign of disrespect toward your classmates and me. No texting—ever. No reading texts: No writing texts. Turn your cell phones off completely before we start to work. Laptops may be used for our classwork only. Surfing the web or working on assignments for other classes is not allowed. To learn the material necessary to succeed in this class, you need to be focused on the class activity.