Spring 2019 CSCI 235 Syllabus

Who, when, where and what

The instructor for CSCI 235 is J Dean Brock. The course lecture will be on Monday from 5:15 PM to 6:55 PM in RRO 217.

Labs

There are two CSCI235 labs: one from 5:15 PM to 7:45 PM on Tuesday and the other from 5:15 PM to 7:45 PM on Thursday. Both labs meet in the RRO 223 departmental lab.

Class home page

All class handouts, including assignments, can be accessed through the following URL:

Catalog Course Description

Systems I

Fundamentals of computer systems for programmers. Computer organization; machine representation of data and programs; program performance and optimization; memory hierarchy and memory management. Prerequisite: one course from CSCI 201 or 202 with a grade of C or higher. Fall and Spring.

Degree requirements fulfilled

CSCI 235 is a required course in the Computer Science major. And, of course, all students can use CSCI 235 to fulfill three credit hours of the required 122 for graduation.

Learning objectives

CSCI 235 introduces students to the fundamentals of computer systems and will help you to become a more effective programmer. After taking this course you will have a better understanding of how a program is translated into instructions for execution on hardware and how the hardware executes those commands.

You should also learn how to accomplish the following specific tasks in this course.

  1. Carry out arithmetic computations in binary and hexadecimal number systems.
  2. Write programs in C.
  3. Translate small sections of C code to x86-64 assembly language.
  4. Use the command line.

Textbook

The textbook for this course (and CSCI 335) is Computer Systems: A Programmer’s Perspective written by Randal E. Bryant and David R. O’Hallaron of Carnegia Mellon University. This book is published by Pearson (ISBN 978-0-13-409266-9). Be sure to get the 3rd edition: Older editions cover the 32-bit Intel architecture. This textbook is required in CSCI 335, Systems II.

The textbook authors have also created an extensive collection of helpful information in the CS:APP3e Student site. You can find many useful references, particularly about C and Linux, there.

Of course, every computer professional should own a copy of The C ProgrammingLanguage by Kernighan and Ritchie. However to save you the $7 for a used copy of the book, we will use portions of the three on-line references in this course.

One more useful reference

We will be using the departmental Linux computers in this class. If you want a brief reference for Linux, look at UNC Chapel Hill reference on UNIX/Linux: Getting Started. If you want a seriously good reference for Linux and the command line, I suggest using William Shotts’ Learning the Shell. You can access an on-line copy of this book at no cost through the UNC Asheville library.

Software and hardware

You need access to the GNU toolchain on an x86-64 processor to complete the assignments and labs of this course. Take a look at the CSCI 235 labs page for more detailed information for installing this software.

Text editors

Unix/Linux users develop strong emotions about their text editors. Take a look at the Wikipedia page on the Editor War for more information.

In lab we will use the nano editor. Many people claim that nano is “self documenting” but there is a 36 page manual for those who want to become nano experts.

In Systems II Vim is the editor of choice. To learn how to use Vim you can type the command vimtutor or, better yet, find someone who has already taken CSCI 335.

Emacs is Vim’s competitor in the editor war. The instructor of Systems I is writing this sentence using Emacs.

Graphical text editors

Don’t use NetBeans or Eclipse in this course. We want to make sure you understand an non-integrated development environment.

Grades

Weights

The following weights are used in computing the course grade.

Grade component Weight
Two in-class exams
Final exam
Homework
Lab participation

Scale

The following numerical scale will be used in assigning grades based on Score, the score computed using the weights described above.

Score ≥ 93A
Score ≥ 90 & Score < 93A-
Score ≥ 87 & Score < 90B+
Score ≥ 83 & Score < 87B
Score ≥ 80 & Score < 83B-
Score ≥ 77 & Score < 80C+
Score ≥ 73 & Score < 77C
Score ≥ 70 & Score < 73C-
Score ≥ 67 & Score < 70D+
Score ≥ 60 & Score < 67D
Score < 60F

Exams

Two equally-weighted 75-minute in-class exams will be given during the semester along with one final exam. The first in-class exam will be given in the middle of the semester. The second in-class exam (also known as the pre-final) will be given on the last class meeting day of the semester.

The final exam will be given at the university-scheduled time slot for our class.

All exams will be closed book and closed notes. No electronic devices, including calculators, may be used during the exam.

At each exam, reference sheets will be provided that list detailed information on number representation or the C programming language which would be burdensome (and unproductive) to memorize.

Exam attendance

UNC Asheville’s Academic Policies and Procedures do provide excused absences for “travel on university-sanctioned business” and “up to two excused absences per semester for religious observances” when seven days notice is given. The seven day notice will allow the instructor to reschedule exams to avoid excused absenses. For this reason, attendance at all exams is mandatory.

If an exam is missed, due to some extraordinary situation, the final exam grade will used to replace the missed exam.

Lab participation

Labs, which will often require a Moodle upload, will be graded, generally on a 10 point scale.

In computing the lab average, the two lowest lab grades will be dropped.

Homework

Every week a homework will be due at the lecture. The homeworks and their due dates will be listed on the class moodle page. Programming assignments may require an in progress submission due one week before the final submission. In general, homework requires programming or some serious figuring.

A penalty of 1% per hour, rounded up to the next hour, will be applied to late homework. Late homework submissions must be downloaded to moodle.

Unless explicitly stated in the description of a homework assignment, a submitted assignment must be the result of the student’s individual effort. If this is not done, no credit will be given for the homework and, as required by university policy, a report will be made to the Assistant Provost for Academic Administration.

Classroom expectations

The classroom is a place where students and faculty behave professionally. We are polite and attentive. We avoid talk of politics and religion. We do not use offensive language. We show up on time.

Electronics in the classroom

You are welcome to use your electronic devices to take notes. However, you should read the article Why students using laptops learn less in class even when they really are taking notes from the Washington Post before you give up on handwritten notes.

Electronic devices should not be used for gaming and social media during class. This distracts others in the class.

Sometimes you may need to discretely respond to a TXT message received during class. In these cases, it usually is best to leave the room. Do not use TXT messages to communicate to others in class. That is very impolite.

Required attendance

Some class activities, such as exams, generate grades. You will receive a grade of 0 for those activities you miss.

Some class periods may be dedicated to student presentations. You are expected to attend all presentations by your fellow students. If you do not, your grade for own presentation will be adjusted.

Academic misconduct

It is never proper to claim another’s work as your own in graded work.

Unless explicitly stated in the description of an assignment, a submitted assignment must be the result of your individual effort. This is similar to the expectations of the professional workplace.

Impermissible actions

There are several impermissible actions that will result in the imposition of course or university sanctions. Impermissible actions in homework assignments include the following:

Impermissible actions on exams include the following:

Course sanctions for impermissible actions

For assignments, the first offense will result in a grade of 0 for the assignment and the second offense will result in a grade of F for the course. For exams, any offense will result in a grade of F for the course. These are the expected sanctions for courses at UNC Asheville.

University policy on academic misconduct

The UNC Asheville Student Handbook has a section devoted to Academic Misconduct. It states the following:

A student accused of academic dishonesty should talk with his or her instructor. In all situations where a student has been disciplined for plagiarism or cheating, the instructor is to submit to the VCAA a brief statement of the case; the student is to receive a copy of this document. Depending upon the severity and/or repetition of the offense, the VCAA may choose to impose a penalty of cancellation of graduation with honors; cancellation of scholarships; dismissal from the university; or any other penalty which he or she deems logical and deserved. A student has 10 class days to respond to this document, in writing; this response is to be sent to the VCAA for attachment to the document submitted by the instructor.

In practice, students who have been involved in academic misconduct in three courses will be suspended for a semester. However a single significant offense, such as the submission of a plagiarized paper in entirety, can result in immediate dismissal.

Accommodations for Students with Disabilities

Statement from the Office of Academic Accessibility

University of North Carolina at Asheville is committed to making courses, programs and activities accessible to persons with documented disabilities. Students requesting accommodations and/or academic adjustments must do so through the Office of Academic Accessibility and may be required to provide supporting documentation. All information provided will remain confidential. For more information please contact the Office of Academic Accessibility at (828)232-5050 or academicaccess@unca.edu, visit them in the OneStop Student Services Center or at their website https://oaa.unca.edu/ .

Specific clarifications for CSCI 235

Students who have been approved for extended time for exams by the Office of Academic Accessibility must have their exams administered by the Office of Academic Accessibility and must take their exams at a time overlapping the scheduled in-class exam.

Students who need additional time for CSCI 235 labs should plan on attending both the Monday and Wednesday labs.

Email communications

Information protected by the Family Educational Rights and Privacy Act should only be sent to official university email addresses. Information related to recorded grades is clearly protected, as is any discussion that would allow a reader to draw conclusions about your performance or attendance in class.

Email sent to me, even if it does not involve the use of state-maintained computers, may be subject to the North Carolina Public Records Law and, as such, may be disclosed to third parties.

For more information and help

I have office hours are 4:00 to 5:00 on Monday, Tuesday and Thursday. The best way to get in touch with me quickly is to send email to brock@unca.edu.

I get lots of email, so please include CSCI 235 in the subject line.