Current: 01/10/07
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, Third
Edition Gary
J. Bronson, Brooks/Cole.
2. CSCI 240 Course Notes and (optional) CSCI 240 CD for
use on your personal computer
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 and can also be downloaded from the Computer Science Department website (www.cs.niu.edu) under "Computing Resources".
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 second class meeting, 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.
Lab Sessions
You will have a Computer Lab orientation during the first week of classes as follows:
Section 4 9:00 - 9:50 Fri Jan 19 CSL Section 5 9:30 - 10:45 Thu Jan 18 CSL Section 6 10:00 - 10:50 Fri Jan 19 CSL Section 7 11:00 - 11:50 Fri Jan 19 CSL Section 10 12:00 - 12:50 Fri Jan 19 CSL Section 11 12:30 - 1:45 Thu Jan 18 FRL Section 12 2:00 - 2:50 Fri Jan 19 CSL Section 13 3:30 - 4:45 Thu Jan 18 FRL
Notes:
Remember: other than this one Computer Lab Session during Week 1 you will meet in the location and at the time listed in the Schedule of Classes book for your section.
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 about 12 quizzes during the semester, each worth 10 points. These quizzes will be given during class each week. Your instructor will determine exactly when. 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 be Wednesday, March 7 in the evening for all sections. Time and place will be announced. Make arrangements now to attend this exam. |
The final exam will be given as scheduled in the official Final Exam Schedule for your section in the room where your section normally meets.
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 except by special prior permission of your instructor.
There will be about 12 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
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).
Assignments
There will be about 12 programming assignments. You will submit your assignments via the Web and will also hand in printed copies in the CS lab drop boxes. Details for submission can be found here.
Be SURE to include the following information on each assignment on the printed listings:
Your Name; CSCI 240/Section Number; Z-ID, 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 class (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 computer, USB drive, or 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, for "physical" submission, 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.
Rules for electronic submission of late assignments will be given in class.
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), 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.