SYLLABUS

Effective: 20-Jan-2021 through 10-May-2021 (Spring 2021).

For COVID-19 procedures starting in the spring, please see the COVID-19 Addendum for spring 2021 below.

Contents

  1. Course Description
  2. General Information
  3. Prerequisites
  4. Office Hours
  5. Course Work
  6. Code of Conduct
  7. Grades
  8. Learning Objectives
  9. List of Topics
  10. Summary of Changes

I. Course Description

Number systems, Boolean algebra, combinational and sequential circuits, registers, processor functional units and control, pipelining, memory and caching, stored program computing, memory management, computer system organization, and assembly language programming.

Contact Hour Distribution: 3 hours lecture and 1 lab. (4 credit hours total).
Grading Restriction: A-F
(RE) Prerequisite(s): COSC102.

COVID-19 Addendum for Spring 2021

  1. The modality for this course in the spring will be rotating face-to-face for sections 001 and 002.
  2. Students will be required to attend their Tuesday or Thursday course in the classroom.
  3. While one half of the class is in the classroom, the other half will attend using Zoom.
  4. Students in section 001 will need to attend in the classroom on Tuesday and attend via Zoom on Thursday.
  5. Students in section 002 will need to attend via Zoom on Tuesday and attend in the classroom on Thursday.
    1. Students MUST attend their registered sections.
    2. Students are given different exams on Tuesday and Thursday.
    3. Student who need to make-up an exam or are quarantined for COVID-reasons will take an online, Canvas exam during the class period. The online exam will be different than the hardcopy exam.
    4. Except with written permission, students may not attend the opposite session they are not registered for.
      1. Except with written permission, students who attend the wrong section during an exam will receive a 0 for that exam.
  6. Students will not be able to complete this course via online-only.
  7. All lab sessions will be synchronous, online using Zoom or other meeting software.
    1. Students must be able to attend one of the following lab sessions, which will be every Friday.
      1. 0800 - 0955 (Lab Section 1)
      2. 1010 - 1205 (Lab Section 2)
      3. 1220 - 1415 (Lab Section 3)
      4. 1430 - 1625 (Lab Section 4)
    2. Students will choose which lab they attend, and it is not a function of their MyUTK course registration.
  8. All office hours will be online using Zoom or other meeting software.

II. General Information

  1. Purpose. This syllabus describes the COSC130 course, policies, and procedures. This syllabus is mandatory for all students enrolled in this course.
    1. Scope. This syllabus applies to all students enrolled in the course at the Min H. Kao Department of Electrical Engineering and Computer Science (http://www.eecs.utk.edu) of the Tickle College of Engineering (http://tickle.utk.edu) of the University of Tennessee (http://www.utk.edu).
    2. Amendments. Amendments may be made to this syllabus with or without notification; therefore, do NOT save this syllabus. Instead, retrieve it from this website for the most current version.
    3. Exceptions. Topics, office hours, and TAs may be updated without additional approval this syllabus.
    4. Current Version. The most current version of this syllabus may be retrieved from: http://tiny.utk.edu/cosc130.
    5. Key Words.
      1. "Will", "must", and "shall" indicate a mandatory requirement.
      2. "Should" is used to indicate a preferred, but not mandatory, method.
      3. "May" indicates an acceptable or suggested means.
      4. “UTK” is short for the “University of Tennessee at Knoxville”.
      5. “TBD” is short for “To Be Determined”.
      6. “IAW” is short for “In Accordance With”.
    6. Learning Management System. All students will be required to use Canvas as the learning management system. The current link to Canvas can be found at: https://tiny.utk.edu/canvas_cosc130.
    7. Calendar. The Canvas calendar will be used to notify any class cancellations for any purpose, including holidays. Students will be required to frequently check their Canvas calendar for due dates and class dates.
    8. Times and Dates. All times and dates, including due dates, will use the Eastern Time Zone and will observe spring and fall time changes (EST and EDT). Furthermore, all times will use a 24-hour clock (e.g., 1100 = 11:00am, 1200 = 12:00pm, 1500 = 3:00pm, 1800 = 6:00pm, 2200 = 10:00pm, etc.).
    9. Student Information and Accommodations. All student information will be kept confidential in accordance with the Family Educational Rights and Privacy Act of 1974 (FERPA). More information may be found at: https://ferpa.utk.edu.
    10. Late Registration. Students should not add this course late. The course begins on the first day of classes, and assignments might be due before the final day for add/drops. Students who add late and miss assignments will not be able to make up those assignments and no adjustment to his or her grade will be made.
    11. FERPA Waiver. Students may waive some or all their FERPA rights, typically in cases such as letters of recommendations. Students must complete and sign a FERPA form before any FERPA-related information is released.
      1. Disclosure. All student information is covered under FERPA and will not be disclosed to anyone, including students' parents. FERPA information necessary for this course is retrievable by the professors, undergraduate teaching assistants, and graduate teaching assistants.
    12. Disability. Any students who have disabilities may register with the Office of Student Disability Services (SDS) for a range of accommodations. No accommodations will be made without prior approval from SDS.
      1. SDS Website. More information about SDS may be found at: https://sds.utk.edu.
    13. While compliance with this syllabus is mandatory, the following exceptions to policy may be made given:
      1. All exception to policy rules must be in writing (unless otherwise noted), or
      2. Exceptions to policy rules must be made at the department head level, or
      3. Any illness, injury, death in the family, and so forth requires an "absence request" from the Dean of Students (https://dos.utk.edu).
      4. For unusual circumstances, the professor or instructor may deviate from this syllabus on a case-by-case basis.
      5. TAs and other representatives of this course may suggest deviations, but they are not permitted to approve deviations and must comply with 1.9.1 above.
    14. Teaching Assistants (TA). Teaching assistants are representatives of the professors. They have full access to all student information, including grades. Teaching assistants may be undergraduate (UTA) or graduate students (GTA), or both.
    15. Supplemental Instructors (SI). Supplemental instructors from the student success center are not official representatives of the course.
      1. Students will not consider any instruction or suggestion to be official from any supplemental instructor.
      2. Supplemental instructors must not make any deviations to this syllabus.
      3. Information about the SI program is available at: https://studentsuccess.utk.edu/supplemental-instruction/what-is-supplemental-instruction.
    16. Contacts. Electronic communications will be made to the professor and teaching assistants through Teams. A link is provided on Canvas to connect to Teams. Teams will be closed after the last day of class.
      1. Email Correspondence. For most purposes, do NOT email a teaching assistant or professor directly. These emails are likely to be ignored.
    17. Letters of Recommendations. Letters of recommendations will generally not be written. Exceptions to this policy may be made by the professor on a case-by-case basis.
      1. FERPA Requirements. Any letter of recommendation written must have a FERPA waiver on file with the professor writing the letter.

III. Prerequisites

  1. General. Students should have the following prior knowledge before registering for this course. Some resources may be available for students to “catch-up” should they not understand all the following topics. We will use C++, and that's what we expect a student to know when taking this course.
  2. Intermediate C++, Java, or equivalent. Students should have a background in a high-level programming language, such as C, C++, or Java.
    1. Console I/O. Students should be able to program an intermediate program, including input from the user and output to the user.
    2. Basic Arithmetic. Students should be able to use basic operators to perform mathematical calculations.
    3. Data Types. Students should understand data types and data sizes to include int (4 bytes), long (8 bytes), unsigned int, unsigned long, and so forth.
    4. File I/O. Students should be able to read and write text files.
    5. Loops. Students should be able to understand and write loops to accomplish repeating code, including while and for loops.
    6. Conditional Statements. Students should be able to write a conditional statement (if/else if/else) and understand mutual exclusion. Students should be able to use and understand Boolean OR (||) and Boolean AND (&&) to combine conditional statements.
    7. Functions. Students should be able to prototype and define functions. Students should be able to distinguish between pass-by-value and pass-by-reference and when to use each. Students should be able to distinguish constants versus variables when passing data or as a return type. Understand and be able to overload functions given different parameters or parameter types.
    8. Classes and Structures. Students should be able to add fields and methods, public and private access protection, and be able to define accessors (getters) and mutators (setters) using const correctly. Understand the scope resolution operator and be able to define constructors and destructors. Be able to declare new variables given an object type, and be able to call different constructors when declaring an object. Be able to use the member-access operator (dot '.' operator) to access public fields or methods.
    9. References. Students should be able to differentiate between values, pointers, and references.
    10. Pointers. Students should have basic understanding of pointers to include pointer arithmetic, the subscript operator, and dereferencing.
    11. Libraries. Students should have knowledge of the following C++ libraries: iostream, iomanip, fstream, sstream, cstdlib, climits, vector, and string.
    12. Algorithms. Students should have a basic understanding of sorting algorithms, such as bubble sort, selection sort, or insertion sort. Students should also have a basic understanding of searching algorithms including linear search and binary search.
    13. General Coding Practices. Students should have an understanding of good programming logic, flow, and data passage. This includes formatting and commenting code, not using global variables, using const (called const-correctness) when the situation calls for it, and defining functions or choosing the correct loop/conditional to avoid repeating code.
  3. Computer Usage. Students must be able to use a computer to take online assignments and submit work. This course uses the lab machines (Tesla or Hydra) for most labs.
    1. Console. Students should be able to use a console editor, such as vim or nano.
    2. Remote Login. Students should be able to log into the lab machines remotely using SSH.
    3. File Transfer. Students should be able to transfer files from a lab machine to their local machine and vice-versa.
  4. Canvas. Students should be able to navigate the Canvas LMS and be able to upload assignments and take assignments and quizzes online. Training on Canvas can be found at Online@UT (Canvas) | Office of Information Technology (utk.edu).

IV. Office Hours

  1. Office Hours. The teaching assistant(s) will hold regular office hours to assist students with the course material and with their lab assignments.
    1. Information. Information including times and locations will be posted to Canvas.
    2. Rules for Help. The teaching assistants have been instructed NOT to give answers but try to lead you to answers or show you where the information can be found. The teaching assistants may point you to a place to read information rather than tell you the information outright.

V. Course Work

  1. Textbooks. There is no textbook for this course. Instead, an online “lecture note” resource will be provided to students.
    1. Optional Textbooks. Some textbooks that might be useful to students are:
      1. Computer Organization and Design (RISC-V ed). ISBN: 978-0128122754
      2. Digital Design and Computer Architecture. ISBN: 978-0123944245
      3. These textbooks are entirely optional and will not be used in official course assignments. However, they might help a student who might need additional information.
  2. Lectures. Students are expected to have read the relevent lecture notes and/or slides before class time. Class time has been reserved for clarifying the lecture notes and completing examples.
    1. Lecture Attendance. Attendance will be taken during class, and students must attend both online and in-person sessions. The Turning point, "clickers" will be used to take attendance.
    2. Attendance Scoring. Students will receive full credit for every answer they get correct, half credit for every answer they get incorrect, and no credit if they do not submit an answer.
  3. Assignments. Students will be assigned and graded based on a variety of assignments.
    1. Submissions. All assignments will be submitted to Canvas. Submissions not sent via Canvas will be ignored.
    2. Homework. Students will complete homework assigned on Canvas. Student may or may not have multiple attempts at the homework. For those homework assignments that have multiple attempts, students may have a waiting period between attempts. The number of attempts will be presented on Canvas.
    3. Labs. Weekly labs will be assigned on Canvas. All submissions must be made through Canvas (see Figure 1).
  4. Lab Attendance. Students must attend their registered lab section. Unless given specific permission, students will NOT attend a lab section for which they are not registered.
  5. Lab Submission. Students must submit their labs using Canvas.
    1. Diligence. Students must check their submission to ensure it is the correct submission and that it properly submitted. NO EXCEPTIONS will be made for incorrect submissions.
    2. Recency. Only your latest submission will be graded. If you previously submitted your lab prior to the due date and subsequently submitted past the due date, the lab submitted past the due date will be graded and subject to late penalties (if applicable).
    3. Comments. Students may make comments on their submission in the Canvas submission page; however, these have no bearing on the students’ grading. Graders are NOT given notification when a student makes a comment. Therefore, students will not make comments after the assignment has been graded.
    4. Lab Solutions. Lab solutions will not be distributed. See your teaching assistant for questions about any of your lab submissions.
  6. Exams. Students will complete exams in person, unless otherwise noted.
    1. Failed Exams. Students who score less than 65% on any exam will be considered to have failed that given exam, and they may be subject to a letter grade penalty. Subsequent failures may result in failing the course regardless of a student's final score.
    2. Missing Exams. Students must notify their professor in writing that they will miss an exam at least four (4) days prior to the exam. Approved missed exams must be taken as soon as possible. Note that make-up exams may or may not be taken in the same place as the original exam. Students with an emergency must contact the Dean of Students (https://dos.utk.edu) and submit an absence request.
    3. Disability Services. Students who need extra time for an exam must make accommodations with the Student Disability Services Testing Center (SDS) (see: https://sds.utk.edu/testing-center).
    4. Make-up Exams. Make-up exams will only be offered to those who are excused from the original time or place. To avoid potential cheating, make-up exams may or may not be the original exam.
    5. Excused Exams. For some circumstances, such as a long break, an exam may be excused completely, and no make-up exam will be offered. These exams will neither count for nor count against your grade.
    6. Viewability. Exams are considered work product and may or may not be returned to students. However, students may view their results.
  7. Due Dates. All due dates will be listed on Canvas.
    1. Diligence. Students are responsible to check Canvas regularly for any due dates.
    2. Late Policy. Late assignments are not accepted.
  8. Grading.
    1. Weights. The weight of each grading category is listed on Canvas under “Syllabus”.
    2. Homework. Homework is automatically graded by Canvas.
    3. Labs. Teaching assistant(s) will typically grade lab submissions.
      1. Comments and Formatting. All student lab submissions must be properly formatted and commented, including a commented header which includes the student’s name, date, and a summary of the lab.
      2. Rubrics. Grading will generally follow the flow of the lab, and certain portions of the lab are graded with different point values than others. Students should follow all COSC102 general grading rubrics. Large grading deductions will be made for deviations from good programming practices.
        1. Examples:
          1. All variables should be local unless otherwise allowed. Any non-local, static variables will be penalized. However, constants are OK.
          2. Comments and formatting as described above.
          3. General program flow. Mutual exclusion for conditions, no goto statements, returning a value for all functions (except void), and so forth.
          4. Passing variables efficiently to/from functions--using by-reference and by-value effectively.
      3. Compiling Requirement. Unless otherwise noted, all labs that do not compile on the EECS-IT lab machines (i.e., Tesla, Hydra, and Arc lab machines) using the given compiling commands will be graded 0.
        1. Compiling Appeals. Students will not appeal a 0-grade due to compiling problems.
      1. Assessment. The teaching assistants will mainly be tasked to grade lab assignments. Most grades will be released within two (2) weeks after the assignment's due date. Due to enrollment, this timeframe might be more or less.
    1. Appeals. Students may appeal the grade they received on any assignment.
    2. Appeal Procedure. Students must use Teams and put in writing their intention to appeal a grade. The Teams message must be sent to all "Instructors" by selecting @ta, which will select all TAs.
      1. Timeliness. Appeals must be made within five (5) calendar days of receiving the grade.
      2. Regrading. A TA may regrade a student’s work without regard to their previous grade. Therefore, the student may receive a lower grade after an appeal.
    3. Grade Curving. Grades will not be curved or rounded. Grades will not be "bumped" to another grade level no matter how close it is.
    4. Extra Credit. Opportunities may be given to earn extra credit.
      1. End of Course Survey. An end of course survey will be offered. This course survey will permit a student to earn extra points towards their final grade. This is used in lieu of curving and rounding grades.
        1. Survey Credit. The amount of extra credit given for the end of course survey will be indicated on Canvas.
      2. Any extra credit assignments must be completed before they will be graded.
    5. End of Semester. Student's work products, including exams, labs, and homework, may be graded after the semester officially ends. Students may not be able to see their individual grades as the grades won't be released prior to the end of the semester.
  9. Workload Recommendation.
    1. Summer Compressed Semesters. This course requires a significant amount of weekly work to succeed. As such, students should not take more than this course over the summer. All considerations should be discussed with a student’s advisor.
  10. Official University Appeal. A student may appeal their final grade with the University of Tennessee. The procedures for doing so are outlined at: http://catalog.utk.edu/content.php?catoid=24&navoid=3078#grad_appe_proc

VI. Code of Conduct

  1. Honor Statement. Students will conduct themselves according to the University of Tennessee Hilltopics Honor Statement, which may be viewed at: http://catalog.utk.edu/content.php?catoid=24&navoid=3078#hono_stat.
  2. Behavior. Any student who exhibits inappropriate behavior may be admonished immediately and/or referred to student conduct (see section 1.3.4.5 below). Continued inappropriate behavior may involve the University of Tennessee Police Department (UTPD).
  3. Plagiarism and Cheating. Any student who is suspected of plagiarism and/or cheating will receive a penalty for doing so. The student may not be notified in advanced at the penalty or that they were suspected of violating the plagiarism and/or cheating policy. Instead, it is the student’s responsibility for contacting their professor.
  4. 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.
  5. Examples from Student Code of Conduct. The student code of conduct lays out what a student may consider violating this plagiarism/cheating policy.
    1. SECTION 10.4. 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. Submitting work, either in whole or partially created by a professional service or used without attribution (e.g., paper, speech, bibliography, or photograph).
    2. SECTION 10.5. 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
    3. Working Together. Students are encouraged to work together, however this increases the risk of plagiarism and/or cheating. Students are cautioned to make sure that when they work together that their code cannot be seen by another student. We recommend that students work together by placing their laptops back to back. With this method, students may discuss topics, but the code they write is purely their own.
      1. Citation. Always cite any professor, teaching assistant, another student, or anyone with whom you discussed the work with. Even if you cannot see another student’s code, the chances of parallel thinking are increased. When you cite whom you worked with, we can understand why your lab may look like another.
      2. Parallel Thinking. Citations do NOT preclude you from abiding by the plagiarism/cheating policy. Even if you cite your source, you may still not copy code in portions or entirety.
  6. Penalties. The professors and teaching assistants are not investigation units. Therefore, anyone found in violation of the plagiarism policy will receive the same penalty regardless of who originated the content.
    1. Labs/Homework. Students will receive a 0 for the lab or homework and a ten (10) point drop on their final course grade.
    2. Repeated Violations. Repeated violations of the plagiarism or cheating policy will result in a 0 for the course.
    3. Exams. Any suspected plagiarism and/or cheating on an exam will result in a 0 for the course.
    4. Stolen Work. If an allegation of theft is made, the theft will immediately be reported to student conduct for an investigation.
    5. Extended Scrutiny. After a student has been flagged for potential plagiarism, all other works will be more closely scrutinized for plagiarism, past and present. Students will note that if they have not been caught for plagiarism, it doesn’t mean it’s not plagiarism. Therefore, if a previous work was plagiarized, the student or students responsible will be held to account for multiple violations of the plagiarism policy.
  7. Referrals. The professors and teaching assistants reserve the right to refer any student behavior to student conduct regardless of previous incidents, or lack thereof. More information about referrals and student conduct may be found at: https://studentconduct.utk.edu.

VII. Grades

LetterScore
A94
A-90
B+87
B84
B-80
C+77
C74
C-70
D+67
D64
D-60
F0
Numeric grades will follow this table to convert to letter grades.
  1. Grade Adjustments. Certain aspects may change a student's letter grade, such as plagiarism, cheating, or failing categories, such as an exam.
    1. Purpose. The purpose of the letter grade penalty is to ensure a student is fully participating in the course and is not relying on a certain performance measurement or metric to receive an inflated letter grade.
    2. Curving. Generally grades are not curved. However, questions that do not accurately represent a student's body of work may be "thrown out" or curved.
    3. Exam Letter Adjustment. A student who scores less than 65 on an exam will receive a letter grade penalty.
    4. Category Letter Adjustment. A student who scores less than a 74 on any individual category, such as participation, homework, or labs, will receive a letter grade penalty.
      1. Categories can be viewed in Canvas under "Grades" in a table on the right hand side of the page.
Example of grade category table in Canvas. This is only an example and may not represent your registered course.
  1. Calculate based only on graded assignments. This checkbox may mislead a student if it is checked. If this box is checked, a student's grade is not penalized if they do not submit an assignment. Therefore, for a student to get a more accurate view, he or she should make sure that this checkbox is unchecked.

VIII. Learning Objectives

At the conclusion of this course, successful students should be able to accomplish or understand the following:

Number Systems and Bases

1. Understand how hexadecimal, binary, and decimal interoperate.
2. Convert between different number bases.
3. Understand why hexadecimal and binary are widely used in computing.

Binary

1. Understand how an arithmetic logic unit works.
2. Perform basic arithmetic with numbers of varying bases.
3. Understand how a computer performs the same basic arithmetic.
4. Understand how files are stored in a computer (binary).
5. Understand how structure is applied to certain binary files.

Computer Architecture / Assembly

1. Understand how memory is allocated/deallocated on the stack, heap, and data sections.
2. Understand how executable programs are formatted.
3. Be able to create a basic assembly program.
4. Understand how high-level languages abstract different programming aspects.
5. Appreciate high-level languages, such as C++.
6. Understand how parameters and return data is used in assembly.
7. Understand hierarchies of memory, such as registers, RAM, and mass storage.

Digital Logic

1. Understand rudimentary logic gates, such as AND, OR, XOR, and NOT.
2. Be able to design a digital logic circuit to accomplish a basic task, such as addition.
3. Understand combinational and sequential logic.
4. Be able to reduce circuits using Boolean algebra and Karnaugh maps.

Computer Organization

1. Understand the benefits of pipelining.
2. Understand why pipelining improves CPU performance.
3. Understand the hazards associated with pipelining.
4. Understand how cache improves memory performance.
5. Understand the different cache techniques, including direct-mapped, set-associative, and fully associative techniques.
6. Understand how cache units are evicted and what techniques are used to determine eviction.

IX. List of Topics

  • Numbers and bases (base 2, 8, 10, and 16)
    • Binary arithmetic
    • Bitwise operators
    • Binary files
    • IEEE-754
    • Floating-point arithmetic
  • Assembly
    • MIPS assembly
    • MIPS structures
    • MIPS encoding/decoding
  • Digital logic
    • Combinational logic
    • Sequential logic
    • Finite state machines
    • Boolean algebra
    • Karnaugh maps
  • Computer organization
    • Central processing units (CPU)
    • Pipelining
    • Arithmetic and logic units (ALU)
    • Floating-point units (FPU)
    • Virtual memory
    • Cache
    • Input and output systems

X. Summary of Changes

  1. 21-Jan-2021: Piazza is no longer available for our class to use. Instead, all references to Piazza were changed to Microsoft Teams.
  2. 20-Jan-2021: Initial release.