Fall 2021 Syllabus

3 Credit Hours

Gate level logic, binary number representation and arithmetic, data path and memory hierarchy with focus on code impact, parallel computing, instruction set architecture.

(RE) Prerequisite(s): COSC 102 with a grade of C or better.


Table of Contents

  1. Course Topics
  2. Learning Objectives
  3. Course Requirements
    1. Prerequisites
    2. Assignment Categories
    3. Student Expectations
    4. Grading
    5. Grading Appeals
    6. Letter Grades
  4. Code of Conduct
  5. List of Changes

Course Topics

  1. Assembly language programming
  2. Encoding and decoding CPU instructions
  3. Central processing unit (CPU) data path and pipelining
  4. Arithmetic and logic unit (ALU)
  5. Floating point unit (FPU)
  6. CPU exceptions and interrupts
  7. Random access memory and memory controllers
  8. Cache (direct-mapped, set-associative, and fully-associative)
  9. Virtual memory and paging
  10. Input and output

Learning Objectives

At the end of this course, students should be able to understand and/or perform the following.

Programming

  • Understand how high-level languages, such as C++ compile into assembly.
  • Understand how functions are called, how parameters are passed, and how values are returned.
  • Be able to write complex programs in assembly.
  • Be able to allocate memory.
  • Be able to create functions in assembly.
  • Understand how executables are sectioned (text, data, rodata, bss).

Digital Logic

  • Understand how Boolean logic gates (AND, OR, NOT, etc) can be used to perform arithmetic and other calculations.
  • Understand how decisions can be made using primitive digital logic gates.
  • Understand how numbers with decimal points are stored in binary (IEEE-754).

Computer Organization

  • Identify the components of a computer, including components in the CPU and components outside of the CPU.
  • Understand how memory is arranged and how the CPU can read or write values in memory.
  • Understand how the speed of memory reads and writes can be improved.
  • Understand how the speed of executing instructions can be improved through instruction-level parallelism (ILP).
  • Understand how the memory management unit translates virtual memory addresses.
  • Understand how hardware components are controlled by the CPU.

Course Requirements

Prerequisites

Students are assumed to have satisfactory knowledge of the following topics prior to taking this course.

  1. Programming in C / C++ / Java
  2. Reading and writing binary files
  3. Allocating memory dynamically
  4. Understand data types and sizes
  5. Be able to use bitwise operators (AND, OR, NOT, left shift, right shift)
  6. Be able to use the Canvas LMS
  7. Be able to use SSH and SCP to work on assignments remotely (on Hydra or Tesla machines)

Assignment Categories

Students will be evaluated on the following assignment categories. The weight of each category will be listed on Canvas. Information about assignments, including due dates, will be listed on Canvas.

  • Homework - used for students to be aware of all subject areas they should know for the given topic.
  • Labs - small, guided projects for students to learn concepts and apply them in a practical situation.
  • Projects - large, unguided projects for students to demonstrate understanding of concepts and demonstrate ability to produce an output given a set of inputs.
  • Exams - monitored and timed for students to demonstrate understanding of concepts.

Student Expectations

  1. Students must come to class prepared by reviewing the lecture slides, lecture notes, and/or lecture videos.
  2. Students must use the discussion system (e.g., Teams, Piazza, and so forth) to ask questions. Do not email the professor or TAs directly. Doing so could slow responses. We use a discussion system so that everyone that can help you can see your messages and the responses. This ensures you get the most accurate and timely information.
  3. Students must attend all classes and submit all assignments.
    • Students who cannot attend class are still responsible for the material they missed.
    • If a student misses an exam, it will be considered unexcused until the student submits and absence request with the Dean of Students, and it is approved. Unexcused exams are not eligible to be taken at a later time and will be graded 0.

Grading

  1. Some assignments may be submitted early for additional points. Students must check the assignment for more information.
  2. Some assignments may be submitted late for a 10% per day penalty.
  3. Students must coordinate before missing an exam.
  4. Students who score less than 65% in any assignment category (combining all assignments under the category), such as exams or homework, will have a letter grade penalty applied to their final grade.
  5. Grades are not rounded and are not curved. Extra credit may be available to help boost a student's grade.
  6. Per UT policy: students are not permitted to do extra work after the final to boost a grade.

Grading Appeals

  • Students can appeal an assignment grade provided:
    • The appeal is made within 7 days of the grade being revealed.
    • The student writes his or her intentions in the discussion system to all professors and TAs.
    • Students must document their grievances and why the grade should be changed.

Letter Grades

LetterScoreLetterScore
A95C75
A-91C-71
B+88D+68
B85D65
B-81D-61
C+78F0

Code of Conduct

Cheating and Plagiarism

Students who are accused of cheating or plagiarism on any single assignment worth 5 points or more towards their final grade will receive an F for the course. Otherwise, students will receive a 0 for the assignment and a 10 point in their final grade.

All cheating and plagiarism cases will be investigated by the Office of Student Conduct: https://studentconduct.utk.edu.

Examples of Cheating

  1. Plagiarism and cheating may result from a student copying an assignment or sections of an assignment from another student, from an online source, or from the student’s own previous assignment (from a previous attempt at the course). Students may not use a tool to produce their lab submission, including but not limited to external sources, a disassembler, or a compiler.
  2. SECTION 10.4 FROM HILLTOPICS. Plagiarism is using the intellectual property or product of someone else without giving proper credit. The undocumented use of someone else’s words or ideas in any medium of communication (unless such information is recognized as common knowledge) is a serious offense, subject to disciplinary action that may include failure in a course and/or dismissal from the University. Specific examples of plagiarism include, but are not limited to:
    1. Using without proper documentation (quotation marks and citation) written or spoken words, phrases, or sentences from any source.
    2. Summarizing without proper documentation (usually a citation) ideas from another source (unless such information is recognized as common knowledge).
    3. Borrowing facts, statistics, graphs, pictorial representations, or phrases without acknowledging the source (unless such information is recognized as common knowledge).
    4. Collaborating on a graded assignment without the instructor’s approval.
    5. Collaborating on a graded assignment without citing all collaborators.
    6. Submitting work, either in whole or partially created by a professional service or used without attribution (e.g., paper, speech, bibliography, or photograph).
  3. SECTION 10.5 FROM HILLTOPICS. Specific examples of other types of academic dishonesty include, but are not limited to:
    1. Providing or receiving unauthorized information during an examination or academic assignment, or the possession and/or use of unauthorized materials during an examination or academic assignment.
    2. Providing or receiving unauthorized assistance in connection with laboratory work, field work, scholarship, or another academic assignment.
    3. Falsifying, fabricating, or misrepresenting data, laboratory results, research results, citations, or other information in connection with an academic assignment.
    4. Serving as, or enlisting the assistance of, a substitute for a student in the taking of an examination or the performance of an academic assignment.
    5. Altering grades, answers, or marks in an effort to change the earned grade or credit.
    6. Submitting without authorization the same assignment for credit in more than one course, including if that student is repeating the same course.
    7. Forging the signature of another or allowing forgery by another on any class or University-related document such as a class roll or drop/add sheet.
    8. Gaining an objectively unfair academic advantage by failing to observe the expressed procedures or instructions relating to an exam or academic assignment.
    9. Engaging in an activity that unfairly places another student at a disadvantage, such as taking, hiding, or altering resource material, or manipulating a grading system

List of Changes

  • (5-Aug-2021) Initial release