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.
- Object-Oriented Programming in C++, Fourth Edition by Robert Lafore
- Code Complete, Second Edition by Steve McConnell
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:
- Write and understand your own programs
- Use good defensive programming techniques (i.e., assert statements,
parameter checking, etc.)
- Write good unit test cases that will help you find bugs during the exam
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