ECS 154B - Syllabus

Important Information

Time and Location

Lecture: ONLINE

All lectures will be conducted asynchronously via recorded video. Videos for the next week will normally be available at the end of the previous week. See the class materials for all of the lecture videos.

Discussion: ONLINE. See Discussion for more information.

Discussion will take place online via Zoom. See the Discussion section of the syllabus for more details.

Instructor

Professor Jason Lowe-Power (jlowepower@ucdavis.edu).

I prefer Jason, but will likely respond if you say “professor <something>”. My pronouns are he/him/his.

Please contact me via email if you have a personal request, not canvas messages. I do not check canvas messages. For class-wide questions (e.g., anything more than one person might be interested to know), please use the online discussion.

Office hours

Office Hours: Wednesdays from 9:30-10:30, or by appointment.

These office hours can be used to discuss anything you would like. The discussion topic doesn’t have to be class related or even computer architecture related. If you need to discuss something in private, let me know (e.g., via chat on zoom) and I can create a waiting room for others while we talk privately.

Office Location: I’ll be using the Office Hours Discord Channel this quarter. However, you can also find me on the following Zoom link (https://ucdaviscoe.zoom.us/my/jlowepower) if needed.

Please suggest a meeting time when you email me for an appointment. You can use my calendar to quickly find a time I am available. It’s not guaranteed to be completely up-to-date, but it gives a good starting point.

Normally my office location is 3049 Kemper Hall, but now it’s home with my cats!

Teaching Assistant

Maryam Babaie (mbabaie@ucdavis.edu)

Office Hours Time: Tuesdays 1-2 pm.

Office Location: Office Hours Discord Channel, or Zoom if needed.

Discussion

Since this quarter will be all online learning, we will be conducting discussion online as well. Although, most of the class is asynchronous, I still believe that participation is important to learning this material. Thus, I am going to require everyone to participate in discussions.

We will be using discussions to reinforce the lectures and help out with the assignments. We will have eight different times each week you can join synchronously via video or phone. However, we also understand that synchronous classes can be a burden, so there will be some flexibility to how you participate in discussions. See the participation section below for more info.

There will be eight discussion times each with 10-15 people assigned to attend. You will be able to sign up for your preferred discussion time during the first week of class.

Discussion times and locations

Please register for a discussion time on Discord. Do your best to evenly sign up for times. I believe having fewer people in each discussion will help everyone be able to participate and learn better.

I would prefer that you attend the same time each week, but this is not a requirement. Either Maryam or I will attend every discussion.

Discussion etiquette

We’ve now all had some experience with participating in remote meetings. However, just as a quick reminder below are some common etiquette ideas that I’ve found work well when participating in remote meetings.

  • Be patient. Remote meetings introduce communication latency and synchronization issues (things we’ll be learning about this this class, BTW). Please be patient with everyone. This often means pausing for longer than you think is necessary when talking, putting up with minor annoyances (e.g., someone interrupting you), and putting up with poor connections.
  • Mute your microphone unless you are speaking. All too often there is feedback between microphones and speakers. Often, you can’t tell that it’s your computer that’s causing feedback issues for everyone else. Also, I’ve experienced other people in the local environment causing distractions when they don’t mean (e.g., my cat likes to meow at me while I’m talking sometimes).
  • (Try to) Enable video. If your bandwidth supports it and you have a webcam, everyone will be more engaged if you can see each others’ faces. Using the “gallery view” on zoom allows you to see everyone at once. The option is in the upper right (not speaker view). If you’re experiencing lag or poor connection, you can disable video to try to improve your experience.
  • Use the text channel. If you find that you can’t get a word in edgewise because others are dominating the conversation, then type it! I will be watching the chat whenever we’re in discussions or office hours.
  • Stay engaged. Don’t open up other programs/internet/reddit, etc.

Class Resources

Online material

All of the material for this course is online. We will use this website as the main website and entry point for all course information. This will also include links to all of the lecture videos and quizzes. You can find the source for this website on GitHub.

Gradescope

We will use Gradescope for all assignments including lab submissions and returning quizzes, the midterm, and the final. Gradescope gives you a graded PDF version of your test, along with a rubric, immediately after we’re done grading. You will receive an email from Gradescope to make your account early in the quarter.

All lab assignments will be autograded by Gradescope. When you upload your code to Gradescope, a set of tests will be run on it and your grade will be immediately available. You may submit your code any number of times. Only the final submission will be accepted as the grade for your assignment. However, if you submit after the deadline, the late policy applies.

Online discussions

We will use Discord for class discussions outside of the classroom. After the pre-quarter survey, this was the most liked and least disliked option. If you, like me, haven’t used Discord before, it’s a essentially a place to hang out like a classroom or a lobby with both text and voice/video options.

It’s best to ask your questions on Discord. That way, all of your classmates can see the answer instead of emailing the TAs or me. Additionally, you might get a much faster response from one of your classmates! Through asking and answering questions on Discord, you improve your understanding of the material, and improve other students’ understanding as well.

Using Discord

You should have received an email with an invite to our Discord server. If you did not receive the email, Canvas also has a link.

There are a few steps to complete once you click the invite link for the server:

  1. Sign the Code of Conduct (required to see any channels)
  2. See the #start-here channel (which has this information)
  3. Send a message on the #verify-email channel with your email to register yourself. After this, you will be able to see all of the channels in the server.
  4. Sign up for a discussion section on the #sign-up channel.

Regrade Requests

Regrade requests must be made within one week of the return of the assignment or test. Regrade requests should be made in person (online), in (online) office hours or by appointment.

Accommodations

The exam schedule is available on the materials page. Per official UC Davis policy, if you have an accommodation request from the Student Disability Center, or have any conflicts with exam times for religious observances, you must notify me by the fourth class, January 11, 2021. If you do not notify me by this time, I cannot guarantee I will be able to make the accommodation.

For each test, quiz, etc. you must reach out to me one week in advance to schedule specific accommodations for that test, quiz, etc. If you do not notify me by this time, I cannot guarantee I will be able to make the accommodation.

Academic Misconduct

Academic misconduct is a serious issue. You can find the official UC Davis policy on the Office of Student Support and Judicial Affairs website.

You are expected to cite all of the work you reference. Any ideas that are not specifically yours or generally known (e.g., caches hold data) should have a citation. When in doubt, cite.

You may not, under any circumstances, post the code you write publicly. This means you cannot create public forks of the template code repository. If we find any of the class’s code beyond the template files distributed, we will report this violation to SJA.

Any violations of this policy will result in reporting the violating student(s) to the Office of Student Support and Judicial Affairs. This can result in a 0 on the assignment or an F in the class. See the Computer Science Department’s policy for more information.

Student Support

There is a lot of great information on the Coronovirus Update Page with extensive FAQs and specific student support information in this unique circumstance.

If you need access to computing resources, internet, etc. there’s lots of good information on the Keep Teaching webpage.

As a student you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, alcohol/drug problems, feeling down, difficulty concentrating and/or lack of motivation. These mental health concerns or stressful events may lead to diminished academic performance or reduce a student’s ability to participate in daily activities. UC Davis is committed to advancing the mental health and well-being of its students. If you or someone you know is feeling overwhelmed, depressed, and/or in need of support, services are available. You can learn more about the broad range of confidential mental health services available on campus via Student Health and Counseling Services.

You can also contact me during office hours, via email, or by making a separate office hour appointment: jlowepower@ucdavis.edu. If you need additional accommodations due to these or other personal issues, don’t hesitate to ask. I cannot guarantee that I will be able to make accommodations. However, reaching out to me earlier will increase the likelihood that I can make accommodations.

Prerequisites

ECS 154A; or both EEC 170 and EEC 180A.

Although not an official prereq, this course requires experience with many programming tools (e.g., Linux, command line, git, etc.). A good resource is a recent MIT course on “The missing semester” which teaches these important tools that aren’t necessarily covered in a “normal” computer science curriculum.

PTAs

Before asking for a PTA, be sure that you have read the Department of Computer Science’s PTA Policy. PTA numbers will only be issued after the 12th day of instruction, and PTA numbers are only issued for extenuating circumstances related to graduation.

Assignments and Tests

I understand the need for more flexibility this quarter. Many of us will have responsibilities beyond just school since we are living at home. I’m sure many of you will be taking care of loved ones, working, or have other responsibilities that may conflict with this class. I will do everything I can to accommodate individual circumstances while maintaining fairness in the class. The most important thing is that the earlier you communicate with me the more likely I will be able to make accommodations. See also student support.

Grading Breakdown

Category Percentage How to get points?
Participation 20% Attend synchronous discussions, participating in discussion site, attending office hours
Project (5x) 40% Gradescope will auto-grade most of the project
Quizzes 20% Quizzes will be on canvas
Tests 20% Tests will also be on canvas

Participation

I want to encourage participation in my classes. I believe that learning is a two way street, and that it’s important for you to participate to get the full learning experience. Therefore, I encourage participation by making part of your grade dependent on it.

Since this quarter is all online, I am giving more weight than normal to participation. This extra weight is for two reasons. First, the “activation energy” required for participation will be higher, so I’m increasing the reward function to help encourage more participation. Second, by adding more weight to participation, I am reducing the weight on tests.

20% of your grade comes from actively participating in class (defined broadly). You are expected to participate on online discussions, discussion section discussions, or office hours.

You are required to attend and participate (say something at least once) in one discussion section each week. We prefer you to attend the one you sign up for, but you can attend any. Every week counts as two points on your final grade. Thus, if you attend your discussion section each week, you will receive the full points for participation.

However, we understand that this won’t necessarily be possible for everyone to attend every week. Therefore, you you can also get participation points by using our online discussion. Participating in online discussion can earn you up to 5 points. Each week a thread will be posted with a discussion topic to help generate substantive conversations.

Finally, you can also earn points by attending and participating in office hours. For each office hour you attend (and we have a substantive conversation), you can earn one participation point up to 5 points.

Project

You will complete five project-based assignments throughout this course. The assignments can be found via the links below. All together, the labs are worth 40% of your final grade. Each lab is weighted based on the amount of time you are given to complete the lab.

Labs are due at 11:59 PM on the date listed below.

Late Assignments

If you turn in a project assignment late, you will lose points. The percentage of points you will lose is given by the equation below. This will give you partial points up to 48 hours after the due date and penalizes you less if you barely miss the deadline.

\[fraction \: of \: points = -1 \times \frac{ {hours \: late}^2}{48^2} + 1\]

Late policy graph

Note: When submitting late, the reduction in points will not immediately appear in Gradescope. Rest assured, we will go through and double check all of the submission times ;).

Quizzes

There will be many quizzes throughout the quarter. The purpose of these quizzes is to make sure you are keeping up with the lectures and you are learning the key ideas. Roughly, there will be one after every video. Expect 2-4 quizzes per week.

The quizzes are open book/notes/internet. However, you must take the quiz on your own, and you cannot work together on the quizzes.

You are allowed any number of attempts on the quiz, and you will see which questions you get wrong each time you take it.

Quizzes are due about one week after the videos are released to give you ample time to watch the lecture video and take the quiz. They are due at the time I expect you will finish watching the videos. This is roughly when the lecture would have occurred if we were in person.

Due to the extenuating circumstances of this entire quarter, there will be no late penalty for any quiz. However, submissions for quizzes will close one week after the due date.

Grades for quizzes will be released at the due date, and you can resubmit any questions you got wrong for full credit. I strongly suggest taking the quiz before the due date and going back a couple of hours or days later to find out what you got wrong. This will help with your comprehension.

Tests

There will be two tests this quarter which together count for only 20% of your grade. The tests will be after each of the two main modules, processor architecture, memory architecture, and parallel architecture.

The tests will be administered online. You will be given a time limit of 2 hours to take the tests and a window of 1 day to take the test. If there is a major internet outage (more than 2 hours during the workday) within 24 hours before the test window or the 24 hours of the test window, the window will be extended by 24 hours.

Reading List and Schedule

Textbook

In this class, we’ll be closely following Computer Organization and Design RISC-V Edition: The Hardware/Software Interface by D. A. Patterson and J. L. Hennessy.

Importantly, you should get the RISC-V edition, not the ARM edition and not the MIPS edition. This is different from versions in years past. The correct version is black with a picture of an abacus on a tablet.

To support remote instruction during Spring 2020, all textbooks available in digital format will be provided as e-books. To access the e-books available for your courses, click on the BOOKSHELF option in the Canvas navigation menu. You have Auto-Access for any required textbooks, but can opt out in the Bookshelf window if you make other arrangements for the text.

IMPORTANT: The textbook on Canvas/vitalsource is opt out. Thus, if you don’t want to be charged for the textbook you must opt out by 4/16/2020!

Additionally, you may find The RISC-V Reader: An Open Architecture Atlas a useful companion, but this book is not required. We will be implementing a RISC-V processor in this class and having a physical book with the RISC-V instructions described will be useful. If you prefer to not buy yet another book (though I do think it’s a useful book to have), you can also use the online version of the RISC-V specification. Note: the specification has fewer pretty pictures than the book.

You can find these books at the university bookstore or through various sites online.

Schedule

See the Homepage for due dates.