Spring 2024 – CSCI 306: Computer Systems

CSCI 306. Computer Systems. 1 Credit.

Offered Fall Semester Only; Lecture hours:3,Lab:2
Fundamental concepts showcasing the integration of hardware and software. Topics include data representation, processor, memory, I/O, Unix system programming in C and assembly, introduction to operating systems, and development tools.

Link to course scheduleLink to lab scheduleLink to course resources
Link to course GoogleClassroom

Lecture

SectionDate/timeLocationInstructorOffice HoursGoogle Classroom
01MWF 8:00 AM – 8:50 AMBreakiron 065Xiannong MengLinkLink

Lab

SectionDate/timeLocationInstructorTAs
60T 3:00 PM – 4:50 PMBreakiron 164Xiannong MengDoruk Ozar (grading)
Joshua Lee (lab)

Course Description

Computer Systems is an important course in the core curriculum for Computer Science. Its contents are essential to the background of a computer professional. The main goal of this course is to develop an understanding of how computer systems work from the hardware up that will enable you to craft software systems that get the best performance out of any given hardware platform. The topics we explore all work toward this end goal.

In the practical aspects of this course our tools will be the C programming language, the RISCV assembly language, and the Linux operating system. Students who have never programmed in C before: you will learn the language as we go, but don’t expect the instruction to be at the same pace as in CSCI 203 and CSCI 204. Much of the work involved in developing proficiency with C is up to you! You will also start to learn a lot about programming at the interface between applications and the Unix system, which you will continue in CSCI 315 Operating Systems Design.

Course Learning Outcomes

1. Students will be able to write assembly language programs and show how high-level program constructs are implemented in assembly language. (EAC 1, 2) (CAC 1, 2)

2. Students will be able to evaluate the performance of a component of a computing system. (EAC 1, 6) (CAC 1)

Textbooks

Computer Organization and Design RISC-V Edition: The Hardware Software Interface
By Patterson, David A. / Hennessy, John L.
Edition: 2ND (or 1st)
Publisher: ELSEVIER
ISBN 13: 9780128203316
Programming in C
By Kochan, Stephen G.
Edition: 4TH
Publisher: PEARSON
ISBN 13: 9780321776419

References (Recommended)

The Linux Command Line
By William Shotts
Edition: 2e
Publisher: no starch press
ISBN 13: 9781593279523
FREE PDF
Modern C
By Jens Gustedt
Publisher: MANNING
ISBN 13: 9781617295812
FREE PDF
The C Programming Language (out of print)
By Brian Kernighan and Dennis Ritchie
Edition: 2nd
ISBN 13: 9780131103627

Work Ethics

Bucknell University Honor Code

As a student and citizen of the Bucknell University community:

  • I will not lie, cheat or steal in my academic endeavors.
  • I will forthrightly oppose each and every instance of academic dishonesty.
  • I will let my conscience guide my decision to communicate directly with any person or persons I believe to have been dishonest in academic work.
  • I will let my conscience guide my decision on reporting breaches of academic integrity to the appropriate faculty or deans.

Let’s be honest here: this a college class and one which has a reputation for not being exactly easy: much of the material is quite different from what you have seen before in 203 and 204. The expectation that you’ll be able to learn this material just by coming to classes and labs is unreasonable. The following is quoted from the course catalog.

“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. “

This means for CSCI 306, you are expected to put in at least 7 (12-5) hours of work outside of class, which should be divided between reading the textbooks and working on assignments (lab and homework). If you make sure to account for this time in your weekly schedule, you will certainly learn a lot in this class.

Expected Work

Reading, Activities, and Participation

The readings include relevant textbook chapters, lecture slides and videos, as well as other materials listed on the course schedule. Look at the schedule page and complete the reading assignments before coming to class.

We will also have in-class activities that will result in deliverables to be turned in either at the end of the class or as a homework assignment. The point of these exercises is to keep you engaged and learning; the deliverables will be used to assess whether you used the opportunity wisely.

Participation means actively involved in the class and its related work as well as in the labs.

All students are expected to attend class and scheduled labs: poor attendance (either in class or lab) will have an adverse effect on your learning, thus the grade. Absences may be excused if you send the instructor an email in advance – we understand that people get sick, have to travel for interviews, etc. However, every four unexcused absences will cause a one third letter reduction in the final grade (that is, if you end up with B+, but have four unexcused absences, your final grade for the course will be B). There are two reasons for this policy. First, I see our classes as shared experiences in a community of learners; if you’re not there, you can’t share, and the collective loses. Second, every student has to take responsibility for their role in the learning process. Being absent just for the sake of it shows that you’re not holding up to your end of the bargain.

Also, note that you will earn a grade for participation in this class. This component of your final grade is determined by how invested you are in our class meetings and labs. Ask and answer questions posed by the instructor and your colleagues, put ideas out for discussion, and bring up points that you have learned outside the classroom or discovered in the technical media. The point is for you not to fade into the background; you are expected to be actively engaged in the class.

Now, using a cell phone, texting, using instant messaging, or browsing the web for topics unrelated to our class activity are contrary to staying engaged; evidence of this type of activity will have an adverse impact on your participation grade.

Laboratories

Most labs require advance work, the pre-lab assignment is due at the beginning of the lab and will account for a significant portion of the total lab grade. Each lab’s final deliverables are due before the date/time listed on the schedule. Late lab assignments will be penalized, 10% per week, up to three weeks from the original due date. Follow the instructions for putting together the deliverables and for submitting completed assignments very carefully. Hand-written work will not be graded (except if/when hand-written annotations are specifically asked for).

“Teach To Learn” Assignments

One of the best ways to learn a topic deeply is to make a commitment to teach that topic to someone else. In this type of assignment, that is exactly what you will do.  You will teach a subject from a given a list of topics that you learned in the past lectures. You will then prepare to teach this subject by developing a piece of video or audio to explain the subject to other students. For details, please visit the “Teach to Learn” assignment page from the course website and the course Google Classroom.

Exams

There will be two mid-term exams and a comprehensive final. The dates of the mid-term exams are shown in the class schedule. The final examination will be given at the time scheduled by the Registrar. If you miss an exam due to illness or some other unavoidable circumstance, you will need a written (e.g., an email from the Dean) justification for the absence. In the case of a justified absence, make-up exams will be given as long as the student has not communicated with anyone in the class about the exam. We assume that students who qualify for a make-up exam will observe this requirement according to the Bucknell honor code.

If an exam grade needs to be adjusted, please see the instructor as soon as possible.

Quizzes

There will be a few announced quizzes throughout the semester, mainly in between the midterm exams and the final exam. The quizzes will be typically in the length of 15 minutes with 3-4 questions. On the days we have a quiz, there will be no in-class activities.

Grades

The grade components in this course will follow the distribution below. We will cancel one of the two Teach To Learn assignments. As a result, the semester grade will be based on 94 total points, instead of 100. Any mention of the semester grade that was based on 100 will be re-weighted as 94 total points. 03/29/2024.

  • Class Activities and Participation: 12%
  • “Teach to Learn” Assignments 1 and 2: 12% (6% each)
  • Midterm Exams 1 and 2 : 20% (10% each)
  • Quizzes: 4% (there will be multiple announced quizzes)
  • Final Exam: 12%
  • Lab Assignments: 40%

Letter grade assignments will be given at the end of the semester and will be based on a typical scale.

93-100 A, 90-92 A-, 87-89 B+, 83-86 B, 80-82 B-, 77-79 C+, 73-76 C, 70-72 C-, 60-69 D, 0-59 F

Diversity Statement

“Bucknell is committed to cultivating a diverse, equitable and inclusive environment where every member of our campus community can thrive.

It’s about academic excellence. Diversity improves intellectual engagement, self-motivation, citizenship and cultural engagement, plus skills such as critical thinking, problem-solving and writing — for all students. Communicating and collaborating with people from different backgrounds with different perspectives is an essential skill that sets students up for success in our diverse, globally integrated world.

It’s also about well-being. Bucknell fosters an environment that respects and embraces different backgrounds, experiences and identities. Across all levels of the University, we work to remove barriers and promote a supportive culture and welcoming space that eliminates disparities and inequalities so all individuals can feel that they belong and are valued.”

Quoted from Bucknell’s Diversity, Equity & Inclusive website.

Access Statement

Any student who needs an accommodation based on the impact of a disability should contact the OAR at OAR@bucknell.edu; 570-577-1188 or complete the Disability Accommodation Request form. The OAR will coordinate reasonable accommodations for students with documented disabilities.

If you have a disability and think you may need an accommodation, I encourage you to contact the OAR. The OAR is here to help and will work with you to determine appropriate accommodations. If accommodations are needed, the OAR will communicate those to me through a Letter of Accommodation. I will not be given information about the nature of your disability, only the accommodations you need. I will treat any information I receive as private and confidential. Please visit https://www.bucknell.edu/life-bucknell/diversity-equity-inclusion/accessibility-resources for more information about the OAR.

Mental Health Support

In this classroom and on Bucknell’s campus we support mental health efforts. Any student who is struggling and believes this may impact your performance in the course is encouraged to contact your Associate Academic Dean or the Dean of Students at 570-577-1601 for support. Furthermore, please approach me if you are comfortable in doing so. This will enable me to provide resources and support. If immediate mental health assistance is needed, call the Counseling & Student Development Center at 570-577-1604 (24/7).

Student-Athletes

If you are a student-athlete, note that you are a student first and an athlete second. This means that academic work is your first priority. As per University rules, you will not be penalized for being away to take part in athletic events. It is your responsibility, however, to manage your time wisely so that you can do well in this and in your other classes. Please make sure to notify us well in advance of your travel schedule and to work out a make-up schedule for missed mid-term exams.

Religious Holidays

Bucknell University recognizes the value of religious practice and seeks to accommodate students’ commitment to their religious & spiritual traditions whenever possible. When conflicts between holy days or other religious practice and academic scheduling arise, I will make every effort to allow students to adhere to their tradition, including – when possible – excusing class absences and allowing make-up work.

A student anticipating the need to miss a class for religious reasons should notify me as early in the semester as possible – understanding that last-minute requests may not be able to be accommodated. A form for notification is available through the Office of Religious & Spiritual Life if you wish to use it. We can then have further conversation to shape a final agreement. Questions or concerns or support are always available via Religious & Spiritual life via Chaplain@bucknell.edu.

Communicating with the Instructor(s)

We want to hear your thoughts on how much you’re learning in this course. If you are struggling with the material, please let us know sooner rather than later. Problems that might be resolved somewhat easily when they are just identified can lead to much hardship if left alone for long. Make the best use of our contact time in regular classes and labs and, if that is not enough, come see us for a chat.

You should feel safe to give us constructive criticism. Although we will work hard to make this course be a good experience for everyone, it won’t be really great unless you give us timely feedback to make adjustments as the semester goes on.

We will do our best to help you reach the learning objectives in this course and to help you grow your enthusiasm for studying computer science.

Common Course Policies

ACM Code of Conduct Professionally, we strongly adhere to ACM’s Code of Ethics. We recognize that computer science has a checkered history with respect to inclusion – in corporate environments, in our classrooms, and in the products we create. As a result, we strive to promote characteristics of transparency and inclusivity that reflect what we hope our … Continue reading Common Course Policies

Department of Computer Science Course Website


Posted

in

by