ARCHIVED Spring 2023 Syllabus (OLD)
- Catalog Description
- Topics and Learning Objectives
- Prerequisites
- Textbook
- Instruction Modes
- Student Expectations
- Grading
- Tips to Succeed
- Code of Conduct
- List of Changes
Catalog Description
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.
Items or topics not covered in this syllabus are per UT policy or instructor’s discretion.
Topics and Learning Objectives
At the end of this course, students should be able to understand and/or perform the following.
Computer Organization
- Understand what components make up a computer.
- Understand how computer components fit together to perform tasks.
- Understand the physical and academic limitations to computer organization.
Binary Numbers and Arithmetic
- Be able to add, subtract, multiply, and divide binary numbers.
- Be able to convert among binary, decimal, and hexadecimal.
Digital Logic
- Be able to identify basic logic components, such as AND, OR, and NOT.
- Understand how digital logic is implemented using transistors.
- Be able to combine logic to perform a task.
- Understand how clocking sequences logic.
- Be able to build combinational logic.
- Be able to build sequential logic.
- Differentiate between level and edge triggered circuits.
Processing Elements
- Understand what the components of a central processing unit do.
- Identify certain technologies that improve general purpose processing.
- Understand how instructions are decoded to perform a task in the CPU.
- Understand how branching instructions operate.
- Be able to differentiate different addressing modes.
- Understand how the arithmetic and logic unit (ALU) performs integer arithmetic.
- Understand how CPU registers are used to read and write data in the CPU.
Computer Components
- Understand how the CPU can communicate with hardware through memory-mapped IO (MMIO) or port IO (PIO).
- Understand how data transfers can be made without CPU involvement through direct-memory access (DMA).
- Understand how dynamic RAM (DRAM) stores a single bit.
- Understand how a memory address translates into a row and column in a DRAM grid.
- Differentiate between serial and parallel I/O.
- Understand how devices can be connected through a bus, such as PCIe, SPI, I2C, or USB.
- Understand modern computer specifications and what they mean.
Processor and Memory Architecture
- Differentiate between virtual memory and physical memory.
- Understand how the memory management unit (MMU) translates virtual memory address (VMA).
- Understand how memory can be protected using an MMU.
- Understand a page fault and when this condition arises.
- Understand how the translation-lookaside buffer speeds up MMU translations.
RISC-V Instruction Set Architecture
- Be able to write an assembly program using RISC-V instructions.
- Understand how the RISC-V instruction set architecture (ISA) is built.
- Be able to encode and decode RISC-V instructions.
- Understand the components of an assembly program, including labels, directives, and instructions.
Performance Enhancing Techniques
- Understand the pipelining concept.
- Be able to identify data hazards and branch hazards.
- Understand multi-level cache systems.
- Be able to differentiate direct-mapped, set-associative, and fully-associative cache.
- Be able to differentiate write-back and write-through cache write policies.
- Understand how basic branch prediction (speculation) works.
- Understand parallel processing, multiprocessing, and multi-core processing.
Prerequisites
Students are assumed to have satisfactory knowledge of the following topics prior to taking this course.
- Program in C / C++ / Java
- Students will be graded on writing good comments and formatting code.
- Students will be graded on some aspects of good coding, such as not repeating code.
- Students will be graded on writing well-structured code, such as using functions, constants, and not using global variables.
- Read and write binary files
- Allocate memory dynamically
- Understand data types and sizes
- Be able to use bitwise operators (AND, OR, NOT, left shift, right shift)
- Be able to use the Canvas LMS
- Be able to use SSH and SCP to work on assignments remotely (on Hydra or Tesla machines)
Textbook
Modern Computer Architecture and Organization: Learn x86, ARM, and RISC-V architectures and the design of smartphones, PCs, and cloud servers 1st Edition by Jim Ledin. (REQUIRED).
https://www.packtpub.com/product/modern-computer-architecture-and-organization/9781838984397
Homework and exam questions will come from this textbook. Students may have either the physical or electronic version or both.
Instruction Modes
- Textbook – the textbook is the primary source material, and is the most in-depth material for the students.
- Lecture Pages – these online web pages are meant to boil down the textbook into more manageable sections.
- In-person Lectures – the purpose of the in-person lectures is to take your surface-level understanding and improve upon it. In-person lectures will explain a topic in much more depth than the lecture pages and lecture slides. The lecture slides will be used during lectures as a bookmark so students understand the general topic that is being discussed. Students should take notes on the side of the lecture slides with the understanding of the material in his or her own words.
Student Expectations
- Students must come to class prepared by reviewing the lecture slides, lecture notes, and/or lecture videos.
- 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.
- The discussion system being used and associated links will be on Canvas.
- Students must attend all classes in-person and submit all assignments.
- Students who cannot attend class are still responsible for the material they missed.
- Students may request a recorded version of the class. Not all classes can be recorded, so it is the responsibility of the student to coordinate with the instructor.
- 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 will not be eligible to be taken at a later time and will be graded 0.
- Students who cannot attend class are still responsible for the material they missed.
- Students who require a disability accommodation for class or for exams must be approved by the Office of Student Disability Services (SDS): https://sds.utk.edu. Without an accommodation, students will not be provided with additional services or additional time on exams.
- Every exam must be coordinated with SDS. All exams with accommodations must be taken at the SDS testing center due to time limitations in the classroom.
- Students will need a Mac or Windows PC capable of loading the appropriate software. Students may (but are not required to) purchase laptop computers at the UT Volshop for a discount price at: https://www.utvolshop.com/shop-voltech/pcs?page=1.
- Students facing financial hardships may apply for emergency funding through the Dean of Students: https://dos.utk.edu/student-emergency-fund.
- Students are expected to spend at least double the number of credit hours outside of class studying, doing homework, or other work for this course every week. For more information, please see https://catalog.utk.edu (Academic Policies and Procedures) for more information.
Coding Expectations
- Students will write several programs both in C++ and RISC-V assembly.
- Students are not expected to have a sufficient background in assembly; however, students must still be methodical about writing their solution to assembly problems.
- Students are expected to have had at least two semesters of programming. If coming from UTK, Java and C++.
- Students who take COSC230 are expected to have a sufficient background in C++ and/or Java programming.
- Students will be held responsible for writing clean, efficient code.
- Students must always write comments to include a commented header with: (1) their name, (2) date, (3) synopsis of what they’re writing, (4) any help they received, to include, but is not limited to, from a TA or professor or another student.
- Students must write comments that effectively document the logic of his or her code. Assume the graders know C++ and what it does. We are not there to inquire about your code, so your comments need to do that for us. If you find you are writing comments for every line of code, you are probably documenting what C++ does, not why you are writing the code you are writing.
- Students C++ code is always part of the grading, even if the C++ is used to solve another problem.
- Code that does not compile or assembly will be penalized significantly. The TAs have been instructed to only fix very minor errors that prevent compilation, such as a missing semicolon or a stray character. The TAs will not write the solution code for a student.
Grading
- Some assignment categories will drop the lowest score(s). The number of drops and any exceptions are on Canvas under “Assignments”.
- Some late assignments are accepted with a 15% per day penalty. Students must check Canvas for due dates as well as closing dates.
- Grades are not rounded and are not curved. The cutoffs for letter grades are absolute.
- Please do not ask for a grade “bump” to improve your GPA. This is not permitted per UT policy, and your request will be denied.
Exams
- Four exams will be given throughout the semester.
- All exams are weighted equally.
- Only three exams will count.
- The lowest exam score will drop.
- Students who are happy with their midterm exam scores must not take the final exam.
- Students must coordinate before missing an exam. Students who are absent must submit an absence request through the Dean of Students. If the absence request is approved, the student will be able to make-up the exam, or the exam may be excused depending on circumstances.
- A student who does not prior coordinate to make up an exam will need to use one of their exam drops.
Grading Appeals
- Students may appeal an assignment grade provided:
- The appeal is made within 7 days of the grade being revealed.
- The student must use the discussion system on Canvas (e.g., Piazza) and submit the appeal to all professors and TAs.
- Students must document their grievances and why the grade should be changed.
- Appeals can only be made when an error has been made in graded.
- Appeals can NOT be used for relief or an exception to policy.
- Appeals with no or invalid justification will be denied.
- An appeal will force a regrade of your work. Your old score will be deleted and NOT be considered when your work is regraded.
- It is possible to get a lower score after a regrade.
Letter Grades
Letter | Score (>=) | Letter | Score (>=) |
---|---|---|---|
A | 92 | C | 72 |
A- | 88 | C- | 68 |
B+ | 85 | D+ | 65 |
B | 82 | D | 62 |
B- | 78 | D- | 60 |
C+ | 75 | F | 0 |
Tips To Succeed
- Try different forms of instruction. If you can’t learn from the textbook, try the lecture notes, or lecture. There are several forms that present the material. It may seem repetitive to you, but it is to offer you different avenues to learning the material.
- Review and update your lecture notes. Your notes should be an evolving process. You need to write them over in your own words after you understand them. Just like learning anything else, repetition is important to the learning process!
- Get help early. The instructors and TAs will hold regular office hours. The time goes by much easier when we have students to talk to. Even if you don’t have specific questions, come over to office hours and introduce yourself. You will see where we’re coming from and we can see where you’re coming from.
- Start early. For most (I’d dare say all) cases, if you’re late submitting an assignment, it will either suffer a penalty or not be accepted at all. This is the item where most students who struggle can get ahead. You reduce access to the TAs and instructors when you wait until the last minute to start your assignments.
- Do NOT cheat. No matter how many office hour sessions, discussion boards, and so forth that we make, we still get students who think they need to go to stackoverflow or Chegg and download “their” solution. Nothing will kill your grade faster than cheating. We have sophisticated tools that help us find and prosecute cheating. Cheating will result in your permanent student record being flagged!
- Try outside help. The Student Success Center has tutoring and supplemental instruction. Their schedule changes every semester (and even sometimes during a semester). Here at EECS, the Systers group might be able to offer you help.
- Know what is required. I’ve seen several students earn a terrible score due to either not reading the assignment or not asking for clarification if a question arises. This essentially means the student is doing a different assignment. You will not be graded on what assignment you do, but instead, the assignment that is given to you.
- In many cases, this course provides a narrative, hints/tips, and a rubric. Students must read and understand all different forms. If anything seemingly contradicts, a student should ask for clarification.
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 drop to his or her final grade.
The instructor and/or TAs are not investigation units. If there is contention about a cheating case, it will be investigated by the Office of Student Conduct and Community Standards (SCCS): https://studentconduct.utk.edu. At that point, they will determine the outcome and sentence. Any communications must be in writing for both informal and formal portions of the standards review process. Students may be submitted to SCCS before receiving an informal response if the evidence is overwhelming or if the semester is close to ending, such as with a final exam.
The SCCS policy is to not assign a final grade until a determination has been made. If a student is alleged to have cheated and final grades are assigned before the matter has been resolved, a student will receive an NR (not reported) grade. This precludes students from taking any of the follow-on courses or from retaking this course.
Second Chance Program
At the instructor’s discretion, a student may be eligible for the second chance program for this class. Students do not request this program, but if the instructor finds a student is up front and takes responsibility for the violation, the instruction may allow a student to redo the assignment for credit. In these cases, a student will be assigned a negative point value. When the student resubmits the assignment, any credit gained from the assignment will be added to the negative point value. For example, if a student is given a -4 but scores 3/4 on the assignment, he or she will receive a -1/4. The highest grade a student may make with this program is a 0. If the student does not resubmit the assignment, the negative point value will remain. Any further violations after this program will result in an F for the course, regardless of the weight of the assignment(s).
Examples of Cheating
- 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.
- SECTION 11.4 (STUDENT CODE OF CONDUCT): 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:
- Using without proper documentation (quotation marks and citation) written or spoken words, phrases, or sentences from any source.
- Summarizing without proper documentation (usually a citation) ideas from another source (unless such information is recognized as common knowledge).
- Borrowing facts, statistics, graphs, pictorial representations, or phrases without acknowledging the source (unless such information is recognized as common knowledge).
- Collaborating on a graded assignment without the instructor’s approval.
- Collaborating on a graded assignment without citing all collaborators.
- Submitting work, either in whole or partially created by a professional service or used without attribution (e.g., paper, speech, bibliography, or photograph).
- SECTION 11.5 (STUDENT CODE OF CONDUCT). Specific examples of other types of academic dishonesty include, but are not limited to:
- 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.
- Providing or receiving unauthorized assistance in connection with laboratory work, field work, scholarship, or another academic assignment.
- Falsifying, fabricating, or misrepresenting data, laboratory results, research results, citations, or other information in connection with an academic assignment.
- 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.
- Altering grades, answers, or marks in an effort to change the earned grade or credit.
- Submitting without authorization the same assignment for credit in more than one course, including if that student is repeating the same course.
- 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.
- Gaining an objectively unfair academic advantage by failing to observe the expressed procedures or instructions relating to an exam or academic assignment.
- 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
Tips to Avoid Cheating
- Students are encouraged to work together provided the students cannot see each other’s code.
- Students should work where their laptop screens are back-to-back. You can talk algorithms and logic, but not code.
- Do not allow students to even peek at your code. If a student gets their hands on your code, both will be in violation of the plagiarism policy regardless of who actually wrote the code.
- Google is a great tool; however, it is the primary way students cheat. They will find code on the internet and copy it as their own. Try using the lectures, notes, and videos given in the class.
- ALWAYS cite who you worked with and where you got help, including any TA or instructor.
List of Changes
This syllabus is subject to change before, during, or after the semester. Any changes will be listed below sorted by descending date.
- (9-Feb-2022) Update student code of conduct sections for plagiarism and cheating.
- (5-Jan-2022) Initial release