CS 240 Class Policies

Class Attendance

Class attendance is strongly encouraged. You are accountable for all material presented in class. Class is the primary forum for conducting administrative business (changes to assignments, due dates, exam dates, etc.). You are accountable for all administrative information presented in class. If you miss class, you need to find out what announcements were made in your absence.

The class schedule provides information about the lecture topics that are planned for each day. We will try to strictly follow this schedule, but unforseen events may require some changes.

Textbooks

There are two textbooks for the course, both of which are required and available in the BYU Bookstore. Most lectures have associated reading assignments from the textbooks. Reading assignments should be completed before coming to class. If you don't do the reading before coming to class, you may have difficulty following the lecture. You will be held accountable for all material covered in the reading assignments, including material that is not covered in class. Please refer to the class schedule for specific information on the reading assignments.

Computers and Accounts

All programming for this class is done on the Linux operating system. The Computer Science Dept. provides computers that you may use for your programming assignments. The Linux computer labs are located on the first floor and in the basement of the Talmage Building. You will need a Computer Science Dept. computer account in order to access these machines. (This account is different than your Route-Y account.) If you do not already have a Computer Science Dept. account, go to the web page at the following link to create or enable your account.

CS Account Setup

Abuse of BYU computers, networks, or facilities involving either pornography or illegal activity will result in loss of all Computer Science accounts and removal from all CS classes. Please refer to the Computer Science Dept. Lab Rules and Policies for more information regarding appropriate lab, computer, and account use. You will be held accountable for understanding and abiding by these policies.

Programming Exam Problems

At the begining of the course you will do three relatively small programming projects. These programs are designed to help you gain experience with C++ and the Linux programming environment, and to prepare you for the Programming Exam. In fact, they are the same programs that you will be required to implement when you take the Programming Exam. The only way to pass the Programming Exam is to implement these programs before taking the exam. Each program should be completed and passed off with a TA on or before the due date (see the class schedule for due dates).

Although these programs may be passed off after their due dates, you should consider yourself behind in the class if you are not completing the programs on time. With the pressures of your other classes, you may be tempted to get behind in CS240 with the intent to "catch up" later. Experience has shown that you are very unlikely to "catch up" if you get behind, so don't let it happen. Discipline yourself and stay on schedule. The surest way to fail CS240 is to get behind.

Programming Exam

One of the major goals of CS 240 is to ensure that all students have sufficiently strong programming skills to succeed in upper division computer science courses. One mechanism for ensuring this is the Programming Exam.

The exam is taken in one of the CS Dept. Linux labs and administered by a TA. You will be randomly assigned one of the Programming Exam problems and given three hours to implement a solution to the problem. In order to pass the exam, you must completely finish the program and pass it off to the TA within the time limit.

There is no partial credit on the Programming Exam; you either finish, or you don't. The exam is open book, closed notes. You should bring your C++ textbook to the exam. A textbook will not be provided for you if you do not bring your own. The computer used to take the exam will be disconnected from the network, thus removing any temptation to access a previously implemented solution to the problem.

You must pass the Programming Exam in order to pass CS240. The key to passing the exam is to implement each of the programs ahead of time. Please note that if you do not implement the programs beforehand, it is highly unlikely that you will pass the exam. Because passing the Programming Exam is required to pass the class, you may take the exam multiple times until you pass it (see the class schedule for exam dates). However, your maximum score for the exam will go down each time you retake it.

Attempt Maximum Score
1 100%
2 66%
3 33%
4, 5, ... 0%

If you fail the exam twice, you should meet with your instructor to discuss your situation. You will only be allowed to take the exam a third time if you have passed off all of the exam problems with the TAs.

Large Projects

A major goal of CS 240 is to ensure that all students are able to design, implement, test, and debug large programs. To this end, there are two large programming projects in CS 240 (Project I and Project II). Both of these projects are large and require several weeks of consistent effort to complete. There are multiple deliverables for each project, the due dates for which are listed in the class schedule.

Project I must be fully functional in order to be passed off. You may pass it off after the due date, but not for full credit. You should do your best to finish Project I on time because each extra day that you spend working on Project I is one less day you will have to work on Project II.

Project II is due the last day of class and may not be passed off late. However, unlike Project I, you may receive partial credit for Project II.

In addition to getting your code to "work", a significant part of your project grade will be based on the quality of your code. Your code will be graded by a TA based on how well you have followed the good programming practices discussed in class and in the reading.

Debugging Exam

In association with Project I, you will be required to take a Debugging Exam. The purpose of the Debugging Exam is to verify that you are indeed the author of your program (as opposed to friends, roommates, TAs, etc.), and that you have developed the basic skills required to debug large programs.

The Debugging Exam is taken in one of the CS Dept. Linux labs and administered by a TA. The TA takes the source code for the student's program and introduces bugs into it. The student is then given three hours to find and remove all of the bugs introduced by the TA. Credit is given for each bug that is found and fixed.

You should bring your C++ textbook to the Debugging Exam. A textbook will not be provided for you if you do not bring your own. You will be allowed to submit automated test cases and test data to help you find bugs during the exam. Additionally, the computer used by the student to take the exam will be disconnected from the network.

Some keys to passing the debugging exams are:

The Debugging Exam will be given shortly after Project I is due. You may not sign up for or take the exam unless you have passed off Project I. If you finish Project I late and are unable to take the Debugging Exam the first time, there will be a second opportunity to take it later with no loss of credit. If you do not pass off Project I in time to take the exam the second time, you will forfeit the points for the exam. (See the class schedule for the exam dates.)

Program Pass-Offs

All programs must be passed off to a TA in the Linux labs during the regularly scheduled TA hours.

For the large projects (i.e., Projects I & II), before passing off you will be required to submit a tar file containing all of your source code, make files, test data, etc. that are required to build your program. When you pass off, the TA will download your tar file from the server, and then ask you to extract your tar file, build the program, and demonstrate that it works. You must submit your tar file before passing off. It is not permissible to pass off the program and then submit the source code later.

Final Exam

There will be a comprehensive written final exam. The exam will measure your mastery of the major concepts taught in the course, and will be given in class at the time specified in the university class schedule. (See the class schedule for final exam dates and times.)

Working Together

All assignments that you turn in must be your own work. You may discuss concepts, ideas, and general approaches with others (e.g. at a whiteboard), but when it comes time to create actual design documents or source code, you must work alone. You may not share electronic files or hard-copy printouts containing designs or source code with other students, either as giver or receiver. You may not work in close synchronization with other students in a side-by-side fashion. Violations of this policy will result in all involved students failing the course and the possibility of further action at the university level.

Department Interview for CS Majors

The CS department uses the semester of 240 in a student's course timeline to hold department interviews with those who are CS majors. In order to register for 300 and 400 level classes, CS majors will need to come to the CS department office for a 15 minute interview where we can give you career and program advisement, let you know about department resources, and get feedback and information from you that will be valuable for improving our program to better meet your needs. The interview will NOT be calculated in your 240 grade. Majors may have their interviews at any time in the semester with the Undergraduate Secretary in 3361 TMCB between 8:00-12:00 pm and 1:00-5:00 pm. Non-majors will NOT have to fulfill this requirement to register for 300-400 level CS classes.

Grades

The grades for this class are maintained on Blackboard. Please check your grades on Blackboard often and notify us of any mistakes that have been made in recording your grades.

The following table shows the weight of each assignment and exam.

Robot Filter 2%
Sort 240 2%
Collections I 2%
Programming Exam 9%
Collections II / Project I Makefile 5%
Project I Design 6%
Project I Program 16%
Project I Code Evaluation 6%
Debugging Exam 8%
Project II Design 6%
Project II Program 18%
Project II Code Evaluation 6%
Final Exam 14%

The late policies for the various assignments are listed in the following table:

Deliverable Late Policy
Robot Filter, Sort 240, Collections I -20% per school day
Collections II / Project I Makefile -20% per school day
Project I Design -20% per school day
Project I Program -5% per school day
Project II Design -20% per school day
Project II Program Partial Credit

Final grades are assigned according to the following scale. If this scale is modified, it will only be in your favor.

A A- B+ B B- C+ C C- D+ D D- E
93-100 90-92 87-89 83-86 80-82 77-79 73-76 70-72 67-69 63-66 60-62 Below 60

Honor Code Standards

In keeping with the principles of the BYU Honor Code, students are expected to be honest in all of their academic work. Academic honesty means, most fundamentally, that any work you present as your own must in fact be your own work and not that of another. Violations of this principle may result in a failing grade in the course and additional disciplinary action by the university.

Students are also expected to adhere to the Dress and Grooming Standards. Adherence demonstrates respect for yourself and others and ensures an effective learning and working environment. It is the university's expectation, and my own expectation in class, that each student will abide by all Honor Code standards. Please call the Honor Code Office at 422-2847 if you have questions about those standards.

Harassment

Harassment of any kind is inappropriate at BYU. Specifically, BYU's policy against sexual harassment extends not only to employees of the university but to students as well. If you encounter sexual harassment, gender-based discrimination, or other inappropriate behavior, please talk to your professor, contact the Equal Employment Office at 422-5895 or 367-5689, or contact the Honor Code Office at 422-2847.

Disabilities

BYU is committed to providing reasonable accommodation to qualified persons with disabilities. If you have any disability that may adversely affect your success in this course, please contact the University Accessibility Center at 422-2767. Services deemed appropriate will be coordinated with the student and instructor by that office.

Children in the Classroom

The serious study of the physical and mathematical sciences requires uninterrupted concentration and focus in the classroom. Having small children in class is often a distraction that degrades the educational experience for the entire class. Please make other arrangements for child care rather than bringing children to class with you. If there are extenuating circumstances, please talk with your instructor in advance.


Ken Rodham