Current: 07/22/03
Course Description
240. Computer Programming in C++ (4). Emphasis on algorithm development and structured programming design and testing. Topics include applications in input and output, decisions, loops, functions, arrays, text manipulation, files, and data abstraction. PRQ: Math 110 or consent of department.
Required Materials
1. A First Book of C++ From Here to There, Gary
J. Bronson, Brooks/Cole.
2. CSCI 240 Course Notes and (optional) CSCI 240 CD for
use on your personal computer
3. Several 3.5" diskettes
4. Metal clips for handing in assignments
You will frequently need to access the CSCI 240 Web homepage at http://www.seasite.niu.edu/cs240. Most course materials including assignments, quizzes, and lecture notes will be found there.
Optional Materials
Some students like to get a copy of the C++ compiler and development environment so they can work at home. This software with installation instructions can be purchased as a CD at the NIU bookstore.
Computing Account
Every student at Northern Illinois University has a computing account, generated when you first register at Northern Illinois University. It does not change. It's usually called your "Z-number" (or your LogonID). It is of the form Z912345. If you know your Z-number from a previous semester, you can continue to use it. Your account also has a password. If you have never used your account before, it is set to the last 6 digits of your Social Security number.
If you don't know your Z-number, you must call (815) 753-8995 and supply your student number and your registration PIN when asked. Then choose LogonID option to get your Z-number. For more information on Computing Facilities, you can go to Swen Parson 120 and ask for the ACS Student Access to NIU Computer and Communications Facilities pamphlet.
If that system doesn't work for you, then you must go to Swen Parson 120 (in person) and request a Z-number. They will be able to generate one for you overnight.
It will be very helpful to have this number during your first recitation class, which will meet in a Computer Lab (see below). In any case, you must have and know your Z-number by the end of the first week of classes.
Class Meeting Places - Lectures
Sections 1 - 12: MWF CO 100 11:00 - 11:50
Sections 13 - 24: TuTh CO 101 12:30 - 2:45
Class Meeting Places - Recitation
You will have your first recitation session in a Computer Lab in the first week of classes, either in:
This lab session is at the regularly scheduled time for recitation as given in the time schedule (but in a different place).
After the first week, your recitation is at the regularly scheduled time and place as given in the Schedule of Classes book.
So the Computer Lab Session schedule (first week of classes) is as follows:
Section 1 Tu 26 11:00am CSL Section 3 Th 28 11:00am UCL Section 5 Tu 26 12:30pm CSL Section 7 Th 28 12:30pm CSL Section 9 Tu 26 2:00pm CSL Section 11 Tu 26 3:00pm CSL Section 15 Wed 27 12:00pm CSL Section 16 Wed 27 12:00pm FRL Section 17 Fri 29 12:00pm CSL Section 21 Wed 27 1:00pm CSL Section 22 Wed 27 1:00pm FRL Section 23 Fri 29 1:00pm CSL
Remember: other than this one Computer Lab Session during week 1 you will meet in the locations and at the times listed in the Schedule of Classes book.
Note: You must know your section number and you must attend the recitation for that section. No exceptions can be allowed, except for the the computer lab sessions and then only if you add late.
Final Grade, Quizzes, and Exams
Your final grade will be determined by the following:
Exams and quizzes will make up 60% of your grade; programming assignments will make up 40% of your grade. There will be 9 - 12 quizzes during the semester, each worth 10 points. The lowest two will be dropped (a missed quiz counts as zero, and would be one of the dropped quizzes), and a quiz average will be calculated on the remaining quizzes. This quiz average will count the same as the 100-point midterm. Quiz questions for each quiz will be posted on the CSCI 240 Course homepage the week before it is given. There will be about 10 questions posted, of which 3 or 4 will be used in the quiz. You are free to study together with others to prepare for these quizzes.
There will be one 100-point midterm and a 200-point final.
The midterm will probably be during the 7th or 8th week of classes, on either Tuesday or Wednesday (depending on your section). An announcement of the exact date will be made at least two weeks prior to the exam.
The final exam will be on
Sections 1 - 12: Wednesday Dec 10, 10:00 am - 11:50 am Sections 13 - 24: Tuesday Dec 9, 12:00 pm - 1:50 pm
All the tests must be taken at the announced times and days. No rescheduling of the Final will be permitted except in accordance with University policy when a student has more than 2 exams on the same day. There will be no makeup exams.
There will be about 11 to 13 programming assignments; points will vary.
Your final percentage will be calculated as:
(Your test pts/possible test pts) * 0.6 + (Your pgm pts/possible pgm pts) * 0.4.
A: 90.00% - 100% B: 80.00% - 89.99% C: 70.00% - 79.99% D: 60.00% - 69.99% F: 0.00% - 59.99%
In addition, you must achieve a exam/quiz average of at least 55% to pass the course.
Attendance
Lecture
You are responsible for all the materials presented in the class including announcements and changes or clarifications to assignments or to course policies as explained in this document. It might be a good idea to exchange phone numbers with a couple of people you sit near so you can check on what was done if you miss a class. Should you miss a class, there will be no private repeat lecture from your Professor or Teaching Assistant(s).
Recitation
Attendance at recitation is important since it gives you a chance to ask questions, receive additional explanations, and since 1/4 of your exam points are determined by the quizzes given in recitation. It is to your advantage - both as an individual and as a member of a class - to participate in recitation by asking questions.
Assignments
There will be about 11 to 13 programming assignments. Each programming assignment must be placed in your section's drop box in the lab by 3 pm on the due date. You must hand in a 3.5" diskette containing all the necessary files including your source program, your executable program, and the (printed) listings specified in the assignment. All of these materials must be clipped together securely. (Notice all the musts in this paragraph!)
Be SURE to include the following information on each assignment (on both the disk and the printed listings):
Your Name; CSCI 240/Section Number; Assignment Number; Date Due
All programming assignments will be graded by your Teaching Assistant. Should you have questions about the way your assignment was graded, see your Teaching Assistant first about these questions. If you are still not satisfied, you may bring the assignment to your Professor. The grade determined by your Professor could be lower than, higher than, or the same as the original grade by the Teaching Assistant.
Any request for reconsideration of a grade on a program, quiz, or test must be made within 2 weeks of the time when it is returned in recitation (whether you were there to get it or not). The last program and the Final Exam are exceptions - they can be re-examined within the first two 2 weeks of the following semester.
Always keep backup copies of your work. That is, at a minimum, keep electronic copies on a separate diskette that you keep safely, and also keep a separate printed copy of your program. If your work is lost or misplaced or eaten, this backup copy may be the only way we can give you credit for your work.
Late program policy: Late assignments will be accepted with 15% of the points deducted for each day (OR FRACTION THEREOF) past due for the first two days. (However, the last assignment will not be accepted late.) Weekends don't count as late days. If the program is due on Friday, handing it in on Monday (before 3 pm) is only one day late.
If you have a late program to turn in, you should:
This way you will not have to arrange to meet your TA to hand in the program, and your email will serve as the date/time turned in. If the TA goes to the drop box and does not find your completed assignment after receiving the email message, you will receive a 0 for the assignment.
After the two day late period, an assignment will receive a grade of 0.
Special Late Policy: From time to time serious circumstances may prevent you from completing an assignment on time. These circumstances include serious illness (yourself or a family member), court dates, etc. We may allow extensions in individual cases if you contact us as soon as possible to arrange an extension. You should be prepared to provide some written evidence of the problem (note from your doctor, court documents, etc.).
You should contact your Professor in these cases. If your request is approved we will reach an agreement about when the late work is to be made up. Some definite date must be set. It is not reasonable for the TA's or good for you to let these things slip indefinitely.
When the assignment is complete, submit the program to to your Professor for a note and signature, and then deliver the program to your TA for grading.
Each assignment will be graded on the following basis:
Output: 60% Coding: 20% Documentation: 20% See the Grading Policy page for further details.
Output must be correct and in compliance with the stated objectives and specifications of the assignment. Check the correctness of your output. Assignments will not always specify every detail of the appearance of the output (i.e. that columns should be evenly lined up). Use your own judgment to make your output look as professional as you possibly can; if in doubt ask your Teaching Assistant.
After the first few assignments, your program must be documented. Documentation includes a documentation box for each function (including the main program). Documentation standards will be discussed in recitation and will be found in the Documentation Standards web page.
Getting Assistance in Completing Your Programming Assignments
Your Teaching Assistant, the TA's for the other sections, and the Professors for the course are available to you if you have questions or difficulty in completing your programming assignments (and for general questions as well). A schedule of their office hours will be distributed by the second week of classes. There will be a total of over 40 office hours through the week during which you can obtain assistance. You should attempt to see your own TA if possible, but if he or she is not available, you may see the TA for another section or one of the course Professors.
You should not feel shy about seeking assistance; however, we expect that you will have made good efforts to define the problem and find the answer yourself before seeking help, and that you can describe to us what you have done to find the answer. In some cases, we will consider it more helpful to you to ask you to find certain answers rather than just giving you the complete solution to the problem. When coming for assistance, you should bring your program (as a printout and on disk), your notes, and the assignment text.
You should assume that you will encounter difficulties that take some time to overcome. This is the nature of learning to program. Study, thought, planning, and an early start on assignments are all necessary to avoid frustration. Don't wait two days and then start - start now and finish two days early.
Cheating
You must work alone on all assignments, although you may discuss isolated details of an assignment with others and you may give and receive debugging help from other students (in moderation). However, you must not borrow other people's work or compare more than a line or two of your work (printed or on screen) with others. You must not lend your work to others. Obviously, you must not hand in someone else's work as your own.
The Academic Regulations section of the Northern Illinois University Undergraduate Catalog states under the section entitled "Academic Integrity":
Good academic work must be based on honesty. The attempt by any student to present as his or her own work that which he or she has not produced is regarded by the faculty and administration as a serious offense. Students are considered to have cheated if they.. turn in a paper or assignment written in whole or in part, by someone else... Students guilty of, or assisting others in either cheating or plagiarism on an assignment... may receive a grade of F for the course involved and may be suspended or dismissed from the university.
To clarify, here are a few examples of what is allowed and what is not:
Allowed:
How many decimal places are we supposed to display? (requesting clarification of
requirements)
How do you display 2 decimal places? (a small, isolated detail)
I'm getting a compile error - can you explain what it means? (debugging - specific
question)
My loop is not exiting. Can you take a look at my code and see if you can see what may be
wrong? (debugging assistance on a specific topic)
Not Allowed:
How do you write the read loop? (requires explanation or writing of many lines of code)
Can you show me how you calculate the standard deviation? (again, many lines of code)
I can't figure out this program - can I see how you did it? (!!!)
Finally, the number of "allowed" questions should be moderate. If you find yourself asking more than a couple of questions a day of others, you are probably asking too much. While this in itself is not cheating, it indicates that you are not learning yourself. Read the book, study class notes and examples, or seek out help from your TA or professor.
If you are in doubt as to whether what you are doing is allowable, ask your Professor.
Individuals who are found to be cheating will receive at least a substantial grade penalty and an academic misconduct report will be filed. Further disciplinary action may be taken. You must understand that - if for no other reason - in fairness to all the students who are making the effort to do their own work, penalties for cheating must be assigned. Consider the case of one student who is working very hard to get a C, versus another who cheats on assignments and therefore can get a C or perhaps a B with much less effort. Claims that a person "needs a C" or "didn't understand it" or "was under a lot of pressure" or "ran out of time" or "didn't realize the course was so hard" may all be true - but they do not excuse cheating and will not prevent penalties from being assessed in cheating cases.
Finally
Read this again. The procedures and policies in this document are the rules by which the course is run. You are responsible for knowing and following them.
It is also possible that some of these policies may be amended during the course of the semester. Any such changes will be announced in lecture and/or on the course homepage. You are also responsible for any such changes.