CSCE 513 -- Fall 2019

Computer Architecture

Duncan A. Buell
Department of Computer Science and Engineering
University of South Carolina
Columbia, SC 29208
2263 Innovation Center
"buell" in any of several obvious domains


The contents of this page and of the Moodle site are subject to change throughout the semester without previous notice. You are responsible for looking at this page and the Moodle site on a regular basis, which means at least as often as once per class, which means at least twice a week.


  • Lecture (Duncan Buell): 8:05-9:20 M-W, 1400 Innovation Center

  • Buell Office hours: M-W 9:30-11:00am, 2:00pm-3:30pm and by appointment. Also usually reachable by email.
  • TA (Peyton Chandarana) Office hours: M-W 1:00-2:00pm, F 1:00pm-3:00pm, Room 1205 Innovation Center. Also reachable by email.

  • This URL
  • Buell's home page
  • The official syllabus for this course.
  • The Moodle site for this course. There will be a lot of information put up on the Moodle site, which will be used instead of Blackboard. Unlike this web page, which is available to all and sundry around the world, the Moodle website will be password limited to students in this class.
  • The text for this course is Hennessy and Patterson, Computer Architecture: A Quantitative Approach .


The material presented on this page and on the Moodle site is copyrighted material. Although you own, under USC rules, your homework and program submissions, the copyright for the source text for the homeworks, programs, and other material remains either with the textbook author or with the instructor of this course. It is a violation of copyright to upload this material to any of the various homework-sharing websites.

Further information on copyright can be found at the official website, which you are encourage to consult both to help you ensure that you are in compliance with existing law as well as to know how to protect your own intellectual property.

Tests and Assignments

  • The midterm exam will be on or about 21 or 23 October 2019.
  • The last day to drop without a WF grade is Wednesday, 6 November 2019. This seems very late, so the timing of the midterm is not as crucial as it has been in previous semesters.
  • The final exam will be cumulative.
  • The final exam is scheduled for Friday, 13 December, at 9:00am.
  • The homework assignments will be on the Moodle site.
  • The tentative schedule for homework assignments and text readings is on the Moodle site.

Program Grading Rules

  • More later on this.

Attendance and Grades

  • It has been found, and should come as no surprise to anyone, that attendance at class correlates positively with your GPA. We will be taking attendance. Attendance is expected at all class sessions. In accordance with USC's Attendance Policy, absence from more than 10 percent of the scheduled class sessions (more than two absences), whether excused or unexcused, is excessive and the instructor may exact a letter grade penalty for such absences. It is of particular importance that a student who anticipates absences in excess of 10 percent of the scheduled class sessions receives prior approval from the instructor before the last day to change schedule as published in the academic and refund calendars on the See registrar's website. For three (3) or more unexcused absences, your grade will be lowered by one full letter. The judgement as to accepting the excuse is ours. Illness, family emergencies, and such are excusable. Returning home late from Myrtle Beach to avoid the traffic jam is not an excusable absence.
  • I do not need doctor's excuses for illness, and I will not ask for other documentation. If you are sick or will otherwise miss class for what seems to be a legitimate reason, it is enough that you send me an email, more or less at the same time as the class, to explain this.
  • Unless otherwise indicated, there are no bonus points and there is no extra credit that can be earned in this class. If you want to total up points so as to get a good grade, then do the homeworks and do well on the exams.


  • Assignments will have due dates. Homework will be submitted to the Moodle site. Unless otherwise specified, the usual deadline will be that programming assignments are to be sent to the drop box by 10:00am of the day the assignment is due.
  • Late assignments will only be accepted under the following conditions.
    • First, for every 24 hour period or portion thereof, we will assess a 20% penalty off the top.
    • Second, no assignments will be accepted after a solution is posted, and no assignments will be accepted after the solution is gone over in class.

Rules, Expectations, etc.

  • You are responsible for reading this website and the Moodle site regularly and carefully. You are responsible for the material in this website, including rules and scheduling information.
  • You are responsible for knowing who we are, how to get in touch with us by email, and how to find offices in person. (See the first point above.) If you google "duncan buell" then Buell's USC web page is what comes up first on the list, so there is no excuse for someone in a computer science class not being savvy enough to find contact information.
  • You are responsible for reading your university email at . If we send out a mass email to the class, it will be to the email address that is listed for you in the Moodle site, not to some other address.
  • You are responsible for reading the material before coming to class. If we have covered all of a particular section or chapter, you must take the initiative on your own to read the next section or chapter.
  • You are responsible for turning in assignments on time to the dropbox. When you turn things in to the dropbox, you are responsible for checking that in fact the material has been stored as it should be. If you submit the wrong kind of zip file, it is your fault that the automatic process will probably not unzip your submission thus that your submission doesn't get graded. If you submit to the dropbox for the wrong assignment, it is your fault. And so forth; you get the point. ALL THE HOMEWORK ASSIGNMENTS ARE SET TO ACCEPT MULTIPLE SUBMISSIONS. ALL THE HOMEWORK ASSIGNMENTS ARE SET TO ACCEPT SUBMISSIONS AFTER THE DEADLINE, because we can tell from the timestamp whether they are late.
  • You are responsible for being able to run programs. The existence of the computer labs in the college means that even if you have had problems with your own computer, your assignments are still due by the deadline.
  • You are responsible for being able to print to paper. Just because you use up your print quota for the semester is not an excuse for not being able to turn in printed material. Check with the college IT staff about the rules for getting additional pages put on your print quota.
  • If for some reason the Moodle dropbox is not functioning, you should immediately send us an email with your assignment attached. This email must have a timestamp before the dropbox deadline. Late assignments will be penalized. (See the first two points above.)
  • You are responsible for attending class. Attendance will be taken, and it will affect your grade. The Student Success Center has found (to no one's great surprise) that your GPA is likely to improve by a full one-half point simply if you attend class.

Version Control, Lab Computers, Etc.

  • Everything we will use in this course either comes with the textbook or is free and available on the web for download. However, things are are available for download tend to change versions on a regular basis.
  • We do not believe there will be functionally different versions of software available in the lab during this semester, but if you download tools for your home computer it is possible that you will be downloading a different version from that which is used in the computer labs.
  • If you develop on a Mac or on a Windows machine or on your own Linux machine instead of a lab Ubuntu machine, you are responsible for the differences between your development environment and the reference machines in the lab.
  • As they say in this business, your mileage may vary. You may not find exactly the same set of buttons on any of the versions of C++ or Eclipse or Xcode that you use, but a standard version and a recent version of Eclipse ought to provide the functionality you need even if the buttons are slightly different. The keys to success include the ability to adapt. You may, however, need to write your code once for your computer and then modify it when you test it on the reference computers.
  • On the other hand, we will be using make throughout this course and not an IDE. So you don't need anything but the basic Unix/Linux tools.
  • HOWEVER, getting all the pieces to fit together and play nicely the first time can be a little difficult. If you are going to be using your own computer and not one of the computers in the labs to do your homework, you should leave yourself a little extra lead time on each assignment. It's not smart to wait till midnight before the assignment is due to find out that one package can't find what it needs.
  • In all things, the computer lab installation is to be taken as the reference installation, which will be verified to work correctly. If you choose to do the programming on some other computer, you are responsible for ensuring that everything works properly. Because the lab computers are defined to be the correct installation, it is never acceptable for you to ask to be excused from submissions or deadlines on the basis that your personal computer failed to operate properly or that you mistakenly deleted files.

Disability Accommodation

Reasonable accommodations are available for students with a documented disability. If you have a disability and may need accommodations to fully participate in this class, contact the Student Disability Resource Center: 803-777-6142, TDD 803-777-6744, email, or stop by LeConte College Room 112A. All accommodations must be approved through the Office of Student Disability Services.


In order to learn, we must be open to the views of people different from ourselves. In this time we share together over the semester, please honor the uniqueness of your fellow classmates and appreciate the opportunity we have to learn from one another. Please respect each other’s opinions and refrain from personal attacks or demeaning comments of any kind. Finally, remember to keep confidential all issues of a personal or professional nature that are discussed in class.

Academic Honesty

  • Assignments and examination work are expected to be the sole effort of the student submitting the work. Students are expected to follow the University of South Carolina Honor Code and should expect that every instance of a suspected violation will be reported. Students found responsible for violations of the Code will be subject to academic penalities under the Code in addition to whatever disciplinary sanctions are applied.
  • We will be submitting your assignments in bulk to the MOSS (Method of Software Similarity) website. This service will compare every student's code against every other student's code and will display the common sections found in any pair of submissions. Should it be the case that your code has a significant match with the code of some other student, you can expect that we will submit an incident report with the Office of Academic Integrity.
  • There seems to be a widespread misunderstanding of the concept of "your own work." In addition to the USC Code, some good sources of text for what is or is not acceptable behavior are the academic honesty policy statement from Harvey Mudd College, the policy statement from Professor Steven Huss-Lederman at Beloit College, and the text of part of the collaboration policy statement from MIT. You can expect your programming assignments to be checked against those turned in by other members of the class as well as code that I can find on the web. We expect the correlations between your work and that of others to be minimal.
  • We can also offer an operational definition of what you can do and of how you can distinguish "learning from a group discussion" and "turning in someone else's work." If, after having participated in a group activity, you can walk away, put the books down, have lunch, and then come back afterwards to re-create from your own head, without consulting any notes you have written or stored electronically, the material and techniques you discussed as a group, then you can legitimately say that you have learned from the group but the work you turn in is your own.
  • If your work is identical or nearly identical to that turned in by some other student, then we will assume a priori that your work has been plagiarized either to or from that student, and under USC rules you are both equally responsible if you are aware of this duplication. You are not permitted to copy the text of code from someone else and use it as your own unless that text comes from the textbook or from the material on the Moodle site, and any such text copied in must be attributed to its source.

On the Proper Use of Computing Resources

Students are expected to be aware of the university policy on use of computing resources, including the Student Guidelines for Responsible Computing found here, as well as the college and departmental policies on proper use of computing resources. Every instance of a suspected violation will be reported. Students should be aware that neither the instructor nor the department are responsible for making alternative arrangements should improper use leading to revocation of access to departmental or college resources make it impossible for you to complete the programming assignments on time.