banner

Introduction to Computer Architecture CS 331

Purpose: to help other instructors teaching the same course

Common Course ID:  Introduction to Computer Architecture CS 331
CSU Instructor Open Textbook Adoption Portrait

Abstract: This open textbook is being utilized in an introduction to computer architecture course for undergraduate or graduate students by Dr. Justin Morris at California State University San Marcos. The open textbook provides chapters on topics such as Computer Performance, MIPS Assembly Language, Computer Arithmetic, Single Cycle Processors, Multi-Cycle Processors, Pipelined Processors, and Memory. The main motivation to adopt an open textbook was to enable more students to effectively take the course by reducing cost. This is important for the demographic of most of our students. Most students access the open textbook through CSUSM Library Reserves.

About the Course

Introduction to Computer Architecture CS 331
 

Brief Description of course highlights:  The goal of this course is to develop students’ understanding of hardware and software structure of modern computer systems as well as stimulate their interest and improve their abilities to acquire independently new computer‐related information and skills. The central ideas of computer organization and design are covered with emphasis on the following topics: performance evaluation, instruction set architecture, computer arithmetic, processor design, pipelining, and memory hierarchy.
https://catalog.csusm.edu/preview_course_nopop.php?catoid=1&coid=462

Student population:   Majors: Computer Science, Computer Science and Information Systems, Software Engineering, Electrical Engineering
Prerequisites: CS 231

Learning or student outcomes: 
O1   Comprehend the trend of modern computer architectures towards multi-core and research potential applications and directions for future changes  
O2   Describe alternative formats to represent numerical data and understand the principle and implementation of computer arithmetic   
O3   Explain the organization of modern computer systems and the fundamentals of instruction set architectures  
O4   Create, analyze, and debug assembly language programs and their equivalent higher-level procedural language  
O5   Design a complete processor, including Datapath and control  
O6   Discuss instruction level parallelism using pipelining, identify major hazards that may occur and respective solutions, and assess branch prediction utility  
O7   Analyze the performance of computer systems in terms of average cycles per instruction, CPU execution time, and the speedup resulting from system optimization using Amdahl’s law   
O8   Analyze how the memory hierarchy reduces the effective memory latency and measure the impact of various cache designs and mixes of instruction and data references on performance   

Key challenges faced and how resolved:
Students asking for extensions on readings claiming they did not know there was one due.

  1. Reading and due dates are listed
    • End of lecture slides
    • Canvas Assignments

Syllabus and/or Sample assignment from the course or the adoption [optional]: Please contact me and I can add you to previous Canvas sections where you can see all the reading quizzes I have made.

About the Resource/Textbook 

Computer Organization and Design: The Hardware/ Software Interface 

Brief Description: "Computer organization and design : the hardware/software interface" ISBN: 1483221180

This is widely used as the introduction to computer architecture textbook. This is also the textbook that Zybooks translates into an interactive version.

Please provide a link to the resource
https://learning.oreilly.com/library/view/computer-organization-and/9781483221182/?sso_link=yes&sso_link_from=california-state-university-san-marcos

Authors:  David A. Patterson 

Student access:  Unlimited user ebook available through CSUSM Library Reserves.
Supplemental resources: You can get slides from the publishers if you wish to.

Provide the cost savings from that of a traditional textbook.  Approx  $70

License: The book is copyrighted

OER/Low Cost Adoption

OER/Low Cost Adoption Process

Provide an explanation or what motivated you to use this textbook or OER/Low Cost option. Mostly to save the students money. It takes more effort on my part to make assignments that emulate an interactive textbook. However, I can improve these overtime and save students money by no longer using an online interactive textbook from Zybooks.

How did you find and select the open textbook for this course? FI found this book by looking at other institutions and most are using this textbook for similar courses. Also, this is the textbook the Zybooks book is based on (previously used textbook).

Sharing Best Practices: Have most of the assignments you want to use this resource for finished before the semester. If you try to make them as you go, it will take up too much of your time.

Describe any challenges you experienced, and lessons learned. Mostly students asking for extensions on readings.

About the Instructor

Justin Morris 
I am an Assistant Professor of Computer Engineering at California State University San Marcos.  I teach CS 331, CE 100, CE 310 and EE 301

Please provide a link to your university page
https://www.csusm.edu/profiles/index.html?u=jmorris


Please describe the courses you teach
CS 331: Introduction to Computer Architecture
CE 100: Introduction to Computer Engineering
CE 310: Advanced Computer Engineering
EE 301: Introduction to Digital Logic Design


Describe your teaching philosophy and any research interests related to your discipline or teaching.  

I employ the following methodologies:

  • Peer instruction
  • Active Learning
  • Learning Goals
  • Flipped Classroom