Syllabus

Course Description

CSCI 206 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 that will enable you to craft software systems that get the best performance out of the 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

Required

  • AUTHORS: David Patterson & John Hennessy
  • EDITION: RISC-V
  • ISBN-13: 978-0128122754
  • PUBLISHER: Elsevier

Each student is also REQUIRED TO SUBSCRIBE to the interactive textbook (BUCKNELLCSCI206Spring2021) by zyBooks.com for this course. The interactive textbook includes content from the interactive book Programming in C by Roman Lysecky and Frank Vahid. Each student must signup at zyBooks.com using their Bucknell.edu email address. Progress on interactive activities will be tracked and contribute to your final grade (also see the Grades section below).

zyBooks subscription process

  1. Sign in or create an account at learn.zybooks.com using your Bucknell email address!
  2. Enter zyBook code: BUCKNELLCSCI206Spring2021
  3. Subscribe

A subscription is $58. Students may begin subscribing on Jan 18, 2021 and the cutoff to subscribe is May 04, 2021. Subscriptions will last until May 31, 2021.

Optional (reference)

C Primer Plus. Stephen Prata. Sixth Edition, 2013. ISBN 978-0321928429. Addison-Wesley Professional.

Work Ethic

Bucknell University Honor Code

As a student and citizen of the Bucknell University community:

  1. I will not lie, cheat or steal in my academic endeavors.
  2. I will forthrightly oppose each and every instance of academic dishonesty.
  3. 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.
  4. 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.

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.

https://coursecatalog.bucknell.edu/academicstandardspolicies/academicpoliciesandrequirements/

This means for CSCI 206, you are expected to put in at least 7 (12-5) hours of work outside of class, which should be divided between reading the textbook and zyBook 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.

We will have a weekly reflection that allow students to summarize what they have learned during the week and highlight the accomplishments and challenges. The prompts for the reflections will be posted. But students can write about other subjects that are relevant to the course.

Participation means actively involved in the class and its related work as well as in the labs. Note that the lecture mode will be remote for this semester. For students who cannot be “in the class” because of the time difference, they can demonstrate their participation by doing the class work and communicating with the instructors appropriately.

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 not be accepted. You should submit what you have at the due date for partial credit. 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).

zyBook Activities

There are reading assignments from zyBook due before many classes. zyBook incorporates activities to illustrate the material and reinforce your understanding. There are two types of activities Participation activities and Challenge Activities, they will play the role of traditional homework. Your instructor will be able to monitor your progress on these activities and they will be used to constitute a part of your grade. To get maximum credit on participation activities, make sure you answer correctly the questions which may require multiple tries, but also make sure to watch the animations and to use the tools proposed. To get maximum credit on challenge activities your solution must meet the given specification.

“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” tab from the course website.

Exams

There will be three 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.

Grades

The grade components in this course will follow the distribution below.

  • zyBook Activities: 8%
  • Class Activities, Weekly Reflections, and Participation: 12%
  • “Teach to Learn” Assignments: 9% (3% each)
  • Midterm Exams : 24% (8% each)
  • Final Exam: 12%
  • Lab Assignments: 35%

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

In order to pass this course, the student must earn a passing grade on every one of the items above. This effectively means that no one can earn a passing grade in CSCI 206 having forsaken any one of the items above.

Code of Conduct

Professionally, we strongly adhere to ACM’s Code of Ethics. More broadly, a course like CSCI 206 involves reflection, collaboration, and communication. 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 field becomes (and not necessarily what it has been or is now).

Above all, be kind.

We reject behavior that strays into harassment, no matter how mild. In this context, harassment refers to offensive verbal or written comments in reference to gender, sexual orientation, disability, physical appearance, race, or religion; sexual images in public spaces; deliberate intimidation, stalking following, harassing photography or recording, sustained disruption of class meetings, inappropriate physical contact, and unwelcome sexual attention.

If you feel someone is violating these principles (for example, with a joke that could be interpreted as exist, racist, or exclusionary), it is your responsibility to speak up! If the behavior persists, send a private email to Prof. Meng to explain the situation.

(Portions of this code of conduct are adapted from Prof. Lorena A. Barba)

You are also encouraged to file a Bias Incident Report to the university through this website: https://www.bucknell.edu/life-bucknell/health-wellness-safety/bias-incident-policy, if you see or hear something you don’t feel comfortable. You may file the report anonymously or with your name.

Diversity Statement

“Providing an excellent education to all students requires a firm and demonstrated commitment to diversity and inclusiveness at all levels of the institution.

Inside the classroom and beyond, we strive to foster an environment in which our students engage with, understand and appreciate perspectives, people and cultures that may be very different from their own.

These experiences position students to enrich their knowledge of self and others, examine their values, and develop skills in critical thinking and collaboration — all of which prepare students to make valuable contributions in a diverse, globally integrated world.”

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 Heather Fowler, Director of the Office of Accessibility Resources at hf007@bucknell.edu, 570-577-1188 or in Room 212 Carnegie Building who will coordinate reasonable accommodations for students with documented disabilities.

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.

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.