CS 354 Computer Organization and Systems Fall 2019 

Course Syllabus

Dr. David A. Reimann, Professor
Department of Mathematics and Computer Science
Albion College
Albion, Michigan
Office 252 Putnam
Office Hours 2:15 - 4:30 pm, Monday.
4:15 - 5:00 pm, Wednesday.
2:15 - 3:00 pm, Thursday.
I am also available by appointment at other times. Email me or talk to me before or after class to set up a meeting outside my regular office hours.
I am often in my office at many other times. Come see me if you need help - that is why I am here!
E-mail dreimann@albion.edu
Website http://zeta.albion.edu/~dreimann/
Phone 517-629-0426 (Office)
517-629-0361 (Secretary)
Course CS 354
Course Name Computer Organization and Systems
Section 1 (CRN: 7150)
Credit 1 Unit
Core/Category This course does NOT fulfill a mode nor category requirement. However, it does meet the natural sciences divisional requirement.
Topics include organization of digital computers: digital logic, arithmetic, assembly language, data paths, memory, input-output, secondary storage devices, multiprocessors, and computer performance. Programming tools and techniques are also discussed with emphasis on their application in assembly language.
Prerequisites Prerequisites: Computer Science 173 or my permission
Meeting Times
and Locations

M W F 1:00 - 2:05 pm in 221 Palenske
Website http://zeta.albion.edu/~dreimann/Fall2019/courses/cs354/
Schedule http://zeta.albion.edu/~dreimann/Fall2019/courses/cs354/schedule.php
Required Books
  • Logisim
  • MARS
  • Student Learning Outcomes

    This learning objectives for this course are aligned with learning objectives from Computer Science Curricula 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science, a product of The Joint Task Force on Computing Curricula (Association for Computing Machinery (ACM) and IEEE Computer Society).

    For this course, most learning objectives fall under the "Architecture and Organization (AR)" knowledge area. It also includes a few items from the "System Fundamentals (SF)" and the "Social Issues and Professional Practice (SP)" knowledge areas.

    Knowledge Units Student Learning Outcomes
    AR/Digital Logic and Digital Systems
    1. Describe the progression of computer technology components from vacuum tubes to VLSI, from mainframe computer architectures to the organization of warehouse-scale computers.
    2. Comprehend the trend of modern computer architectures towards multi-core and that parallelism is inherent in all hardware systems.
    3. Explain the implications of the “power wall” in terms of further processor performance improvements and the drive towards harnessing parallelism.
    4. Articulate that there are many equivalent representations of computer functionality, including logical expressions and gates, and be able to use mathematical expressions to describe the functions of simple combinational and sequential circuits.
    5. Design the basic building blocks of a computer: arithmetic-logic unit (gate-level), registers (gate-level), central processing unit (register transfer-level), memory (register transfer-level).
    6. Use CAD tools for capture, synthesis, and simulation to evaluate simple building blocks (e.g., arithmeticlogic unit, registers, movement between registers) of a simple computer design.
    7. Evaluate the functional and timing diagram behavior of a simple processor implemented at the logic circuit level.
    AR/Machine Level Representation of Data
    1. Explain why everything is data, including instructions, in computers.
    2. Explain the reasons for using alternative formats to represent numerical data.
    3. Describe how negative integers are stored in sign-magnitude and twos-complement representations.
    4. Explain how fixed-length number representations affect accuracy and precision.
    5. Describe the internal representation of non-numeric data, such as characters, strings, records, and arrays.
    6. Convert numerical data from one format to another.
    7. Write simple programs at the assembly/machine level for string processing and manipulation.
    AR/Assembly Level Machine Organization
    1. Explain the organization of the classical von Neumann machine and its major functional units.
    2. Describe how an instruction is executed in a classical von Neumann machine, with extensions for threads, multiprocessor synchronization, and SIMD execution.
    3. Describe instruction level parallelism and hazards, and how they are managed in typical processor pipelines.
    4. Summarize how instructions are represented at both the machine level and in the context of a symbolic assembler.
    5. Demonstrate how to map between high-level language patterns into assembly/machine language notations.
    6. Explain different instruction formats, such as addresses per instruction and variable length vs. fixed length formats.
    7. Explain how subroutine calls are handled at the assembly level.
    8. Explain the basic concepts of interrupts and I/O operations.
    9. Write simple assembly language program segments.
    10. Show how fundamental high-level programming constructs are implemented at the machine-language level.
    AR/Memory System Organization and Architecture
    1. Identify the main types of memory technology (e.g., SRAM, DRAM, Flash, magnetic disk) and their relative cost and performance.
    2. Explain the effect of memory latency on running time.
    3. Describe how the use of memory hierarchy (cache, virtual memory) is used to reduce the effective memory latency.
    4. Describe the principles of memory management.
    5. Explain the workings of a system with virtual memory management.
    6. Compute Average Memory Access Time under a variety of cache and memory configurations and mixes of instruction and data references.
    AR/Functional Organization
    1. Compare alternative implementation of datapaths.
    2. Discuss the concept of control points and the generation of control signals using hardwired or microprogrammed implementations.
    3. Explain basic instruction level parallelism using pipelining and the major hazards that may occur.
    4. Design and implement a complete processor, including datapath and control.
    5. Determine, for a given processor and memory system implementation, the average cycles per instruction.
    AR/Multiprocessing and Alternative Architectures
    1. Discuss the concept of parallel processing beyond the classical von Neumann model.
    2. Describe alternative parallel architectures such as SIMD and MIMD.
    3. Explain the concept of interconnection networks and characterize different approaches.
    4. Discuss the special concerns that multiprocessing systems present with respect to memory management and describe how these are addressed.
    5. Describe the differences between memory backplane, processor memory interconnect, and remote memory via networks, their implications for access latency and impact on program performance.
    AR/Performance Enhancements
    1. Describe superscalar architectures and their advantages.
    2. Explain the concept of branch prediction and its utility.
    3. Characterize the costs and benefits of prefetching.
    4. Explain speculative execution and identify the conditions that justify it.
    5. Discuss the performance advantages that multithreading offered in an architecture along with the factors that make it difficult to derive maximum benefits from this approach.
    6. Describe the relevance of scalability to performance.
    SF/Computational Paradigms
    1. Describe the basic building blocks of computers and their role in the historical development of computer architecture.
    2. Articulate the differences between single thread vs. multiple thread, single server vs. multiple server models, motivated by real world examples (e.g., cooking recipes, lines for multiple teller machines and couples shopping for food).
    3. Design a simple logic circuit using the fundamental building blocks of logic design.
    4. Use tools for capture, synthesis, and simulation to evaluate a logic design.
    1. Identify significant continuing trends in the history of the computing field.
    2. Identify the contributions of several pioneers in the computing field.
    Performance Evaluation
    Grade Element Possible Points
    Tests 300 (3 @ 100 points each)
    Final Exam 100
    Projects 200 (10 @ 20 points each)
    Homework 190 (about one per chapter)
    Term Project 100
    Computer News 110 (11 @ points each)
    Total Possible Points 1000+

    See Schedule for specific dates.
    Your Points Percentage Your Grade Interpretation
    93.0-100.0 4.0 Represents work outstanding in quality. The student not only shows unusual mastery of the required work for the course, but also has independently sought out and used additional related materials, demonstrating the ability to discover new data, to develop new insights and to bring them to bear on the work at hand.
    90.0-92.9 3.7  
    87.0-89.9 3.3  
    83.0-86.9 3.0 Represents work which is higher in quality than that of a 2.0, or more than satisfactory. The student has shown the ability and the initiative to fulfill more than the basic requirements of the course.
    80.0-82.9 2.7  
    77.0-79.9 2.3  
    73.0-76.9 2.0 Represents work which fulfills all of the basic requirements for the course. It means that the student has a grasp of the material and techniques or skills sufficient to proceed with more advanced courses in the area.
    70.0-72.9 1.7  
    67.0-69.9 1.3  
    60.0-66.9 1.0 Represents work seriously attempted but which is below the 2.0 level in quantity and quality. The student is advised not to continue advanced work in the field.
    0-59.9 0.0 Represents work unsatisfactory in either quantity or quality. It results in the student's not being able to continue with further work in the field and results in no credit, although it is recorded on the permanent record.
      I Incompletes may be given only because of illness, or other unavoidable circumstances, as approved by the Petitions Committee. An Incomplete is not to be issued to a student who simply has failed to turn in some assigned work before the end of the semester. The "I" grade should be used rarely and for legitimate reasons. A final grade of Incomplete must be removed within four weeks after the end of the semester in which it was incurred, unless the deadline is extended by the Petitions Committee. Grades of "I" count as zeros in the calculation of the end-of-semester grade point average, and, if they are not removed within the required time, become zeros automatically on the student's record.

    The following is the Albion College statement on attendance: "Regular attendance in all classes is expected. Every absence from class is inevitably a loss — usually one which can never be made up. A student has the responsibility to inform his or her faculty member, whenever possible in advance, of an absence due to serious or prolonged illness, and verification of absences due to emergency reasons, may be obtained from the Office of Residential Life."

    In this course class absences are only excusable in documented extreme cases of unforeseen hardship or official College event, as described in the Student Handbook. Please notify me in writing (email is preferred) prior to official college events (sporting, class trips, etc.) that make it impossible for you to attend class. If you miss class because of participation in an official College event you must make prior arrangements with me. In extreme cases of unforeseen hardship, please contact me as soon as possible. In either case, you are still responsible for all material and assignments.

    In cases where you have not taken personal responsibility, you will forfeit the possibillity of earning points. No credit will be given for a missed test or other scheduled in-class assignment, nor will late assignments be accepted.

    You will have an opportunity to review your grade and other unreturned assignments for four weeks after the start of the subsequent semester. After that time, I will discard all unclaimed materials.

    Academic Integrity and Expectations

    As an academic community, Albion College is firmly committed to honor and integrity in the pursuit of knowledge. Therefore, as a member of this academic community, each student acknowledges responsibility for his or her actions and commits to the highest standards of integrity. In doing so, each student makes a covenant with the college not to engage in any form of academic dishonesty, fraud, cheating, or theft.

    The goal of this course is for you to learn a rigorous academic discipline, not penmanship, typing, or other forms of plagiarism. Chapter III of the Student Handbook details instances and penalties for academic dishonesty. It also describes acceptable usage of the campus computing/networking facilities. In this class you are expected to do your own work unless explicitly stated.

    Here are some things which will be considered cheating:

    • Using or turning in another's work as you own - with or without their permission.
    • Allowing someone else to use or turn in your work as theirs - in whole or in part.
    • Joint effort on an assignment with individual submissions represented as individual work.
    • If a student cannot explain why the solution is correct or how the solution was obtained.
    Here are some things which are encouraged:
    • A submission using help from the instructor, student assistants, or the texts.
    • Discussion of the concepts related to the course material.
    • Discussion of assignments to understand what is required.

    Typically, I grade papers one problem at a time. If you turn in someone else's work as you own, it really stands out. Please do your own work! If you are having trouble on an assignment come see me as soon as possible - I'm here to help!

    We, as students and faculty, have the privilege and challenge of promoting higher standards of ourselves, the College, and society in general. Here are several expectations we should have this semester.

    What you should expect of me. What I expect from you.
    To attend class regularly and punctually and to adhere to the class schedule. To attend class regularly and punctually.
    Come to class prepared. Come to class prepared.
    Grade and return work in a reasonable amount of time. Fulfill all course assignments and requirements.
    Know course material thoroughly and prepare and present it conscientiously. Uphold academic honesty in all activities.
    Maintain scholarly, professional, and courteous demeanor in class. Maintain scholarly, professional, and courteous demeanor in class.
    Be available at reasonable times for consultation. Keep all appointments except for extreme cases.

    Communication is essential in any relationship. Our student-teacher relationship is no exception. If you have any concerns with the class material or logistics, please talk to me as soon as possible.

    Tips for Success

    There are a variety of effective teaching and learning styles. Part of the challenge of college is learning your individual particular learning style and how to learn from a variety of teaching styles. I will try and use several ways of presenting the material to help you learn the course material. Ultimately you are responsible for learning the material. Here are some things that will help you succeed in this course:

    • Come to class and be on time.
    • Be engaged in class; listen, take good notes, and ask questions as they arise.
    • Read the book, noting any important concepts and unresolved questions.
    • Review your notes.
    • Form a study group with others in the course.
    • Do the assigned problems and as many others as you can, even partially. Solve problems. Solve problems with notes. Solve problems without notes. Solve problems as a group. Solve problems individually. Solve problems!
    • Learn and understand key definitions
    • Come see me in my office if you are having trouble solving a problem.
    • Visit the Quantitative Studies Center for additional help.
    • Focus on learning the material, not just on earning a grade.
    • Keep all returned material, particularly quizes and tests.
    • I want you to succeed in the course, but the learning is your responsibility!

    Tips for Problem Solving

    One of the goals of this course is for you to improve you problem solving skills. Here are some general problem solving steps.

    • Read and understand the problem.
    • What do you need to know?
    • What do you know?
    • Devise a plan for solving the problem. Is this problem similar to others you have solved?
    • Carry out your plan.
    • Verify you solution.
    • Repeat steps as needed.
    • Note what you have learned solving the problem.
    • Can your solution be generalized?

    Academic Support

    Accommodations statement: Accommodations statement: Any student with a disability who believes the requirements of this course may require accommodations or modifications should contact the Learning Support Center (LSC) Director, Dr. Pamela Schwartz, who will work with you to develop a plan for reasonable accommodations based on your information and supporting documentation. If you have completed this process and have requested accommodations through the LSC for this semester, plan to meet with me as early as possible to discuss a plan for implementing these modifications in this class. It is best if we can talk at least one week prior to their implementation. The LSC is located in 114 Ferguson Hall (on the first floor of the administration building) and is open during regular business hours throughout the school year. The main phone is 517/629-0825, and the number for the Adaptive Technology Office is 517/629-0411.

    College-Wide Learning Support: Academic support at Albion College is provided through the Academic Skills Center and the Learning Support Center.

    • The Academic Skills Center, located in the Seeley Mudd Building of the Library supports student success at Albion College through the Quantitative Studies Center and the Writing Center. The ASC also operates Study Rooms in various academic areas. For information, visit the ASC website at http://www.albion.edu/asc.
      • The Quantitative Studies Center provides a wide range of support to students in many subject areas. Students are free to drop in for occasional help from trained student tutors or to make appointments for on-going tutorial sessions. QSC staff members are available to assist you with the use of mathematics, statistics, spreadsheets, or graphing calculators in any course. The center also offers workshops on topics such as partial derivatives in chemistry and preparing for graduate school exams. For more information, contact the QSC Director, Karla McCavit, (x0824; kmccavit@albion.edu).
      • The Writing Center provides trained peer consultants prepared to work with writers at every stage of the writing process—from getting started brainstorming to writing drafts, and from organizing ideas to revising or final editing. Writing consultants support students by responding to writing in process, not by proofreading, editing, or writing students' papers. Both drop-in tutoring and scheduled appointments are available during the Writing Center's evening hours. For more information, contact the Writing Center (x0828; writing@albion.edu) or the Director, Scott Hendrix (shendrix@albion.edu).
    • The Learning Support Center, located in 114 Ferguson Hall (the administration building), offers individualized assistance with college-level study strategy and skill development. Students frequently utilize the center to improve grades, reading speed or comprehension. As part of this mission, the LSC also provides individual peer tutoring support for most introductory courses. In addition, the LSC provides assistance and accommodations to students who have documented learning disabilities. For more information, contact the LSC Director, Pamela Schwartz (x0825; pschwartz@albion.edu).

    Copyright © 2019, David A. Reimann. All rights reserved.