CSC-2410 Computer Systems

Fall 2023

Instructor:

Roger Shore

Class Schedule:

Office Location:

Congdon Hall 153

MWF 7:50-9:00AM CSC-2410

Telephone:

841-9031

Th 7:50-9:30AM CSC-2410 lab

Office Hours:

TTh 10:00-11:30AM

MW 12:05-1:45PM CSC-3460

MWF 9:00-10:00AM

MW 3:25-5:05PM CSC-4310

TTh 1:35-3:15PM CSC-3940

E-Mail: rshore@highpoint.edu

Web site: linus.highpoint.edu/~rshore


Course Description: An introduction to instruction set architecture, microarchitecture, and system architecture. Topics include basic computer organization, central processor and memory, addressing techniques, data representation, fundamental programming techniques in assembly and machine language as it relates to operating systems and high level languages. The course also includes exposure to networking and communication as well as parallel and distributed computing.

Prerequisites: CSC-1720

Course time expectation/week: This is a 4 four hour course. According to SACs, our accrediting body, we are required to meet 200 minutes per week for 15 weeks. In addition, you are expected to work on projects and assignments for at least 8 hours (480 minutes) outside of class per week. A portion of the 8 hours should be spent in the computer lab each week in relation to this course.

Course Materials:

  1. Required: An on-line resource Dive into Systems , Suzanne J. Matthews, Tia Newhall, Kevin C. Webb

  2. Required: Logisim A graphical tool for designing and simulating logic circuits. Also available in the computer lab.

  3. Recommended: Plantz, Robert G., Introduction to Computer Organization with x86-64 Assembly Language & GNU/Linux. Web version found here at author's web site along with an ARM Assembly Language on a Raspberry Pi. For a small charge an ebook/pdf and paperback versions are available at lulu.com

  4. Optional: Aho, Alfred and Ullman, Jeffrey, Foundations of Computer Science - C edition, Computer Science Press. Resource found at here at author's web site. Chapters 12 and 13 will be usefull.

  5. The department will provide all software necessary to complete the course. This will require the student to have an account on the departmental server. This account will give them access to the software and space to store solutions to assignments. Access to the server will be provided through a workstation in the departmental lab as well as from any remote location on and VPN access when off campus.

Course Objectives: After successfully completing this course, the you will have

  1. Understand how characters, integers, real numbers, text, images, and sound are stored and processed digitally.

  2. Develop an understanding of the relationship between code written in C or assembler then translated into conventional machine language.

  3. To understand and analyze the costs associated with application performance.

  4. To become more proficient in the use of debugging tools such as gdb and lldb.

  5. Develop an understanding of how assembly programs implement the run-time stack in a high level language such as C/C++.

  6. Developed an understanding of the digital logic level of a computer system.

  7. Design, simplify, test, and build sequential and combinational circuits to solve a variety of problems.

  8. Develop an understanding of the network stack to the extent of implementing a socket program.

  9. Describe how the CPU control unit interprets a machine-level instruction either directly or as a microprogram.

  10. Demonstrate an understanding of how performance can be increased by utilizing multiple processors, multiple cores, threading, or with multiple GPUs.

Class Preparation: It is assumed that you will read the assigned chapters. Although the material may be summarized, lectures will be used mainly to further demonstrate other approaches to problem solving and to answer specific questions.

Lab Topics: There is a lab associated with this class. Each lab will involve some aspect of computer organization. Lab topic examples:

  1. Low level C code/Assembly Language Programming.

  2. Installing and configuring Linux on a Raspberrry Pi.

  3. Transistors, basic gate logic and Karnaugh Maps.

  4. Sequential and Combinational circuit design.

  5. Design and implement the Fetch-Decode-Execute for a simple assembly language in Logisim.

  6. Parallel distributive computing utilizing openMP and openMPI.

NOTE: Part of your grade on all labs will be documentation. If you submit a solution and the solution is lacking clear and concise documentation, your grade on the project will suffer. This includes excessive documentation.

Course Policy:

Assessment: The course objectives will be assessed through major tests, the final exam and problem set assignments. The final grade will be determined as follows:


Quizzes/Worksheets 10%

Lab Projects 30%

2-3 Major Tests: 45%

Cumulative Final Exam: 15%

Total: 100%

Range

93-100

90-93

87-90

83-87

80-83

77-80

73-77

70-73

67-70

63-67

60-63

0-60

Grade

A

A-

B+

B

B-

C+

C

C-

D+

D

D-

F

You must score at least the minimum of a category to be given the associated grade, i.e. an average of 80 is a B- not a C+.


Major tests and Final Exam: All tests and final exam will consist primarily of problem solving type questions similar to the homework assignments and quizzes. No make up test will be given unless prior arrangements have been made with excusable reasons. If you miss a test your final grade will be used in place of the missed grade. This means the percentage of the final exam will increase. If you miss the final exam, a 0 will be placed in all missing tests.

Quizzes, class worksheets and assignments: In addition to the major tests and final exam, students will participate in series of problem sets to further develop skills and understanding of the material. Each assignment will focus on a collection of problems that target each learning objective individually or a combination of learning objectives. Successful completion of the assignments will prepare the student for major tests and final exam. There will be at least 12. There is no makeup for these items. For this reason, two will be dropped to accommodate an occasional absence.

Attendance: High Point University recognizes and honors the value of the face-to-face classroom experience for enhancing student engagement and academic outcomes. Attendance will be taken daily at the beginning of class. As such, you are expected to be present in every class meeting with the exception of an illness that requires quarantine or other reasons pre-approved by the instructor. In those cases, approved online accommodations will be provided. If absent from class, you are responsible for all lectures, in-class exercises, assignments, and handouts. Caution: Being absent from class does not change the due date of assignments. Before a student is dropped for non-attendance, I will give a notification as a warning to a student that he/she is in danger of violating the attendance requirements.


Honor Code: All students are expected to follow the University Honor Code, Full details of the High Point University Honor Code are found here: https://www.highpoint.edu/community-standards/university-honor-code. All academic work should be completed with the highest level of honesty and integrity.


Professionalism: The Mission Statement of the Webb School of Engineering is: To provide an extraordinary engineering education through the delivery of a hands-on, practical education that prepares graduates for a rewarding career or admission into graduate school. The School of Engineering is committed to:

Please treat this class as if it were a company or organization for which you are working. You can exhibit professionalism by attending consistently, arriving on time, communicating your full or partial absence in a timely fashion, completing assignments on time, maintaining engagement, and respecting your peers and the professor.


Classroom etiquette:


Lab etiquette:


Students with Disabilities: High Point University is committed to ensuring all students have equal access to all services and benefits at High Point University. If you are a student with a disability and require academic accommodations due to a diagnosed disability, you must register with the Office of Accessibility Resources and Services (OARS) and submit the appropriate documentation. Requests for accommodations should be made at the beginning of a course. Accommodations are not retroactive. Contact us at oars@highpoint.edu or by telephone at 336-841-9026, for additional information. The Office of Accessibility Resource and Services is located on the 4th Floor of Smith. Library.


Face covering: Wearing a face mask reduces the risk of COVID-19 transmission and is a step we can all take to care for the members of our HPU family. This class will abide by the guidelines that are set forth by the University. Please note this may change as the semester progresses.

Course Topics:

  1. Introduction

  2. Computer Systems Organization - Chapter 0 Introduction

  3. Relevant Historical Computer Architecture/Organization.

  4. Conventional machine level and assembly language level - Chapters 4, 6, and some of 3.

  5. Digital Logic level - Chapter 5

  6. Microprogramming level - Chapter 5

  7. Performance Chapter 11 and 12.

  8. Operating System - Chapter 13-14

  9. Multiprocessing - Chapter 15