In this course you will learn how computer components such as processors, memory, or GPUs actually work and how to increase performance from a hardware point of view. You will also use a hardware description language to describe and design digital computing systems. Topics include: processor design, pipelining, cache and storage systems, instruction, thread, and process level parallelism, speculation, and branch prediction.
By the end of the semester:
Students will be able to express designs based on classical computer architectural concepts using appropriate engineering tools.
Students will be able to explain and apply fundamental architectural principles such as locality, optimizing common cases, and parallelism to modern architecture design.
Course Website: The website contains general information, the syllabus, course schedule and a link to Google Classroom.
Google Classroom: This platform will be used for multiple purposes:
Slides and class materials will be posted here
You automatically get all classes and deadlines into your calendar
Assignments and projects will be submitted here
You can access and keep track of your grade at anytime here
Announcements will be posted here. An email should also be generated.
EDA Playground: Editor for developing VERILOG code (used for lab)
Required Textbook:
Hennessy and Patterson, “Computer Architecture: A Quantitative Approach“, 6th Edition. ISBN978-0128119051.
eBook version here (Bucknell login required). 5th edition only (sufficient for class, but some information is outdated)
Recommended Textbooks:
Patterson and Hennessy, “Computer Organization and Design: The Hardware/Software Interface“, 5th Edition. ISBN 978-0124077263.
This is the required text for CSCI 206.
eBook version here (Bucknell login required).
Samir Palnitkar, “Verilog HDL“, 2nd Edition. ISBN 978-0132599702. One (physical) copy is available at the library. No eBook available.
Class Section
Activities 30%
Exams (3x) 30%
Lab
Project 1 20%
Project 2 20%
In order to receive a passing grade, you must receive a passing grade (60% or above) both in the class portion and in the lab portion.
As in Fall 2019 you will have the option to convert your letter grade to Pass (A-D) or Withdrawn (F).
Also note that the following policy in regards to your grades will take affect:
"Bucknell University will implement the same optional Pass/Withdraw grading policy for Fall 2020 that was implemented in March of 2020. Under this grading policy, students will still receive a traditional (A through F) grade for each course, but they retain the option to permanently convert any final grade (A through D) to a Pass (P) grade, while any failed courses (F) will be automatically converted to Withdrawal (W). A reasonable time frame for students to make this change will be implemented by the Registrar’s office in consultation with the Academic Response Team and the Committee on Instruction."
Take your learning in your hands: ask and answer questions in class and on Google Classroom, talk to your instructor frequently, help others and ask others for help, work with others to study and solve problems.
The instructor wants to get to know you! – take advantage of this opportunity.
Due to COVID-19 we understand the need for more flexibility and relaxed our attendance policies. Attendance is not required but obviously highly encouraged. Participation however is required.
Activities aim to evaluate your continuous understanding of class materials and simultaneously serve as a participation grade. Most classes will include some sort of activity. Many times you will have time to complete the activity in class. They tend to not take more than an hour to complete.
Activities are always due 2 class sessions after they were assigned. For example if an Activity was assigned on a Wednesday, it is due to the beginning of class on Monday the next week.
All activities are graded with a score between 0 and 2 (a few, more complex activities are worth 3 points):
If you made no or only minor mistakes you will get the full 2 (or 3) points.
If something major was wrong or missing but you made considerable effort in completing the activity you will get 1 point.
Activities not handed in or completed with minimal effort are graded 0 points.
You can skip a total of 3 activities (2 point activities only) without impacting your score. I will automatically convert the three lowest activity grades into 2 points at the end of semester.
You are allowed to collaborate on activities but:
Each student needs to submit their own version of the activity
If you worked with someone indicate the group members names (including you) at the top of the exercise. Groups may only contain 2 or 3 members.
Collaboration is only allowed in terms of asking / answering. Is is paramount that each student understands the problems and their solutions. Just coping the assignment is not allowed. Further, avoid face-to-face collaboration and use Zoom instead.
Bucknell University’s expectations for academic engagement A reminder on University policy: “Courses at Bucknell that receive one unit of academic credit have a minimum expectation of 12 hours per week of student academic engagement. Student academic engagement includes both the hours of direct faculty instruction (or its equivalent) and the hours spent on out of class student work.”
In the first project you will design a processor capable of executing machine instructions step by step. You will get to know Verilog HDL hardware descriptor language in more detail and find out more about how to build efficient hardware modules.
In the second project you have a chance to focus on a certain element of computer architecture in more detail. You have a wide variety of choices such as Bypass Analysis, advanced Processor Design, TensorFlow, Matrix Multiplication via GPU utilization, or even a suitable project of your choosing.
Exams are very similar to activities but you will address several problems and they must be completed individually.
Exams are designed to take about 2-3 hours but you will have a full 24 hours to submit them. This should help students in different time zones to complete them.
They are open book but closed communication (this includes the internet).
Generally, submissions are due to the posted date but there is no penalty for submitting late if, and only if, the assignment has been submitted before we grade that assignment. Usually assignments are graded no later then a week after submission deadline. I do not recommend making late submissions part of your strategy because when we start grading there are no late submissions accepted anymore unless under extraordinary circumstances. Further, the more you pile up, the harder it is to catch up. We instructors reserve the right to grade at any time / date after the submission deadline.
This policy does not apply to exams, which have to be submitted no later than 24 hours after posting.
Regrade Requests
If you have questions on why points were deducted, please see your instructor as soon as possible and no later than one week after the exam/lab/homework was returned. Timely resolution of all questions will help you avoid making the same mistake on future assignments.
Office Hours / Instructor Help
Please see my office hours under "Home". Where possible please utilize those as much as possible. If none of the slots work for you please feel free to contact me to schedule alternative appointment(s). I genuinely want to help everyone succeed, don't miss out on this opportunity!
Google Classroom for Help
If you have quick, general questions the best platform to ask is our very Google Classroom site. If you post a question here everyone of your classmates can see it and you may get an answer quicker than asking me directly. It is also great as more students can benefit from the answers.
Professionalism is defined by many criteria, most of which are common sense and common courtesy rules. As a general guideline, behave as you would in your dream workplace. To encourage a professional, respectful atmosphere that is conducive to maximal learning in the classroom, please:
Professionalism in the classroom:
Keep your cell-phones away and silent, don’t keep them handy.
Arrive on time and do not leave before the class is over.
Stay awake, alert, and actively participate in the class.
While in class, your technology should be used only in such a manner that supports your learning. Research shows that surfing the web/texting not only distracts you, but disrupts the learning of the people behind you as well (they can’t help but peek over your shoulder!).
Professionalism with Zoom:
Keep your video on or at least ensure that the instructor and fellow students can see you are present.
Keep yourself muted unless you want to engage into conversation
Attendance of all lectures and laboratory sessions is highly encouraged. Because of COVID-19, we however can understand that things may be more difficult, so we provide you with more flexibility and you won't be penalized if you miss sessions. Be reminded that there is a strong correlation between good grades and attendance and vise verse.
If you need to miss a class:
You do not need to inform your instructor
It is your responsibility to watch the recording of the lecture and take steps on your own to catch up with the material you have missed. Get notes from your classmates and redo any exercises I demonstrated in class, even if the solution is in the recording. For most students learning by doing is several times more effective than learning by just seeing.
You are encouraged to work in pairs for activities and the first project as it is a great way to learn, produce excellent programs and keep up with the schedule. The pair programming strategy is widely adopted by software development companies. You will get an opportunity to complete activities in pairs, lab project 1 is further designated as open communication (no need for a specific partner). However, if you chose to collaborate you must ensure you understand and write your own Verilog Designs / Activities. Communication is only allowed to clarify elements, get advice for how to do certain things,... Code copying/sharing is unacceptable at any time and will be penalized for both parties (the sender and receiver).
Because of COVID-19 physical collaboration is not acceptable in and out of the classroom. However it is totally possible to collaborate via zoom / socially distanced. Specific strategies will be demonstrated in class.
In general, assignments completed in pairs are known to have better designs and fewer errors than programs produced by developers working alone. When you do work in pairs and the work contribution is not 50/50 please write the percentage contribution next to each team members name. I may rescale your grade if (at the end of the semester) I see that you are consistently not doing your equal share of the homework.
A Zoom link to our classes can be found in Google Classroom. This link will be the same throughout the semester for all class / lab sessions. It is probably a good idea to bookmark it so you can directly join the class each time.
Zoom sessions, including class meetings, may only be recorded on the Zoom platform by the Meeting Host. Recording of a Zoom session by any Meeting Participant (other than the Meeting Host) is prohibited. Any individual, who records a Zoom session without consent of all Meeting Participants may be subject to punishment as a third-degree felony for violation of the Pennsylvania Wiretap Law.
If a Meeting Participant, including a student enrolled in a class, is unwilling to consent to being recorded as part of a Zoom session, the Meeting Host must offer a reasonably equivalent experience which may include viewing the recorded Zoom session after it has ended.
In short - all zoom sessions will be recorded by the instructor and the recording will then be shared in Google Classroom for students to view. You may not record Zoom sessions on your own.
We expect all students to read and abide by the principles explained in the university’s academic responsibility policy (at http://www.bucknell.edu/x1324.xml).
The computer science department has an extension to this policy that explains how it applies to computer science: http://www.bucknell.edu/Documents/Engineering/ComputerScience/student-conduct-policy.pdf It is very important that you read and abide by this policy.
To help maintain Academic Integrity, each file you submit through a channel other than Google Classroom needs your name and the date of submission at the top. Submitted files for weekly assignments, labs, and other projects may be electronically compared to other students’ work in the class. All incidents of suspected cheating or other irregularities will be referred to the University’s Board of Review on Academic Responsibility.
Am I allowed to use material off the Internet?
Yes (well, mostly)! The internet is a great resource to support your learning! You are allowed to use the Internet to gain a deeper understanding of a topic. However, this should be a conceptual understanding of the topic, and not simply searching for solutions.
Practically, this means that you are allowed, and even encouraged, to look for alternative videos, images, or explanations that might clarify the topic that your work is about. You are not allowed to search or, or ask about, solutions to the specific problem you are working on. For example, you can look up explanations and examples about a concept, but you cannot look for other people who have attempted or solved the problem in your homework (or one that is practically identical). While it’s impossible to perfectly capture the dos and the don’ts of Internet searching, abide by the spirit of this policy – we want you to take advantage of the Internet to develop a stronger conceptual understanding of the material without using it to find the answers to your work.
Remember, sources should be cited in your work. For examples, if you find a useful function on the Internet, e.g., in a library, you should describe by a comment in the code the function’s website and its current URL.
If you have a physical, mental, or learning disability, either hidden or visible, which may require classroom, test-taking, or other modifications, please see your Associate Dean as soon as possible. If you have been granted special accommodations, please inform your instructors in a timely manner (a week before accommodations are needed).[
Any student who may need an accommodation based on the impact of a disability should contact Heather Fowler, Director of the Office of Accessibility Resources at 570-577-1188 or hf007@bucknell.edu who will help coordinate reasonable accommodations for those students with documented disabilities.
This course can be completed 100% remote. However the more you decide to work remotely the more motivation and self-discipline you need to bring to class. If you usually prefer having some assistance it is strongly recommended you come to physical class.
Any student who has difficulty affording groceries or accessing sufficient and nutritious food to eat every day, or who lacks a safe and stable place to live, and believes it is affecting their learning, is urged to contact the Dean of Students for support. Furthermore, I encourage you to notify me of this as well - I will keep all such information confidential. This will enable me to provide any resources that I may possess and identify other resources in the University.