Current: 01/08/25
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, files, and data abstraction. PRQ: Math 110 or consent of department.
Starting Out With C++ From Control Structures through Objects, Tony Gaddis, Addison Wesley.
The CSCI 240 Web homepage at http://faculty.cs.niu.edu/~byrnes/csci240/ will need to be accessed frequently. Most course materials including assignments, quizzes, and lecture notes will be found here and on Blackboard.
Every student at Northern Illinois University has a computing account, generated when registration is completed at Northern Illinois University. It does not change. It's usually identified with a "Z-number" (or LogonID). It is of the form Z012345. The account has a password. If the account has never been used before, the default password is either:
YYYYMmmDD if you enrolled before 06/29/15
NIU.YYYYMmmDD if you enrolled on or after 06/29/15
For both passwords, Mmm is the first 3 letters of the month name with the first letter uppercase and the next two lowercase.
To look up a forgotten Z-number, go to password.niu.edu, click on Find My AccountID (Z-ID) and enter the personal email address that was used when applying to NIU.
If you need an accommodation for this class, please contact the Disability Resource Center as soon as possible. The DRC coordinates accommodations for students with disabilities. It is located in the Campus Life Building, Suite 180, and can be reached at 815-753-1303 or drc@niu.edu.
Also, please contact your Professor privately as soon as possible so you can discuss your accommodations. Please note that you will not be required to disclose your disability, only your accommodations. The sooner you let me know your needs, the sooner I can assist you in achieving your learning goals in this course.
As per DRC policy, your accommodations will take affect after the instructor gets the paperwork and you meet with your instructor to clarify your accommodations.
The final grade will be determined by the following: 30% for programming assignments, 15% for dailies, and 55% for exams/quizzes (Exam 1, Exam 2, Final Exam, and 10 highest quiz scores).
The grading scale for the course is:
A: 90.00% - 100%
B: 80.00% - 89.99%
C: 70.00% - 79.99%
D: 60.00% - 69.99%
F: 0.00% - 59.99%
Depending on your instructor, there may or may not be rounding up to the nearest letter grade.
There may be some opportunities for extra credit, but the maximum percentage that can be earned is 100% on the exams/quizzes and 100% on the programs.
In addition, a dailies average of at least 55%, exam/quiz average of at least 55%, AND program average of at least 55% must be earned to pass the course.
Starting in Week 3 of the semester, small programming assignments known as "dailies" will be made available on the Computer Science Departments Auto Grader. The dailies are an essential tool in developing the ability to program. As such, the dailies are to be completed as an individual effort. Stated simply, take care to read each daily and complete it exclusively on your own. Asking for assistance from an instructor or TA is permitted. Evidence of collaborating with others, searching the internet, etc, however, will be grounds for academic misconduct and will be treated as such.
There will be 12 quizzes during the semester, each worth 10 points. The quizzes will be taken on Blackboard. The two lowest scores will be dropped (a missed quiz counts as zero), and a quiz average will be calculated on the remaining quizzes. This quiz average will count the same as a 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 5 will be used in the quiz. It is your responsibility to make sure that a quiz is properly handed in on Blackboard. You can check by going through My Grades and make sure that a yellowish/green exclamation point shows up in the GRADE column for a specific quiz. If there is no yellowish/green exclamation, your quiz was not submitted. You can resubmit. If there is still a problem, contact your instructor within 1 week of the due date.
There will be two 100-point exams and a 100-point final.
The final exam will be given as scheduled in the official Final Exam Schedule.
All the exams must be taken at the announced times and days in the announced locations 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.
Any request for reconsideration of a grade on a quiz or exam must be made within 1 week of the time when the grade is posted on Blackboard. The Final Exam is an exception - it can be re-examined within the first two 2 weeks of the following semester.
You may not collaborate in any way on exams. At a minimum, the penalty will be a zero on the exam. There is also the chance of other penalties as determined by the University Judicial Office.
There will be about 10 - 12 programming assignments; points will vary. The assignments will be submitted/handed-in via the Computer Science Departments Auto Grader and Blackboard. Details for submission can be found here.
Be SURE to include the following information on each assignment:
Your Name; CSCI 240/Section Number; Z-ID, Assignment Number; Date Due
It is your responsibility to make sure that an assignment is properly handed in on the Computer Science Departments Auto Grader and Blackboard.
All programming assignments will have the output graded by the Computer Science Departments Auto Grader. The documentation and coding will be graded by the Teaching Assistants after the due date/time that is posted for the assignment. Even though each assignment will have 3 attempts available on Blackboard, the last submission is the only one that will be graded for credit. The previous attempts will be ignored. Once a grade has been assigned to an assignment, you CANNOT fix the mistakes and re-submit the assignment for a new grade. However, should you have questions about the way your assignment was graded, contact the 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 must be made within 1 week of the time when the grade is posted on Blackboard. The last program is an exception - it 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 or USB drive that you keep safe. If your work is lost or misplaced or eaten by Blackboard, this backup copy may be the only way we can give you credit for your work.
Late program policy: Each assignment will be available on Blackboard for five days after the assigned due date and is eligible to be submitted for grading during that time. (The exception will be the last program). A late penalty of 5% will be accessed for each day (OR FRACTION THEREOF) that the assignment is past due (However, the last assignment will not be accepted late.) Weekends don't count as individual late days. If the program is due on Friday, handing it in on Saturday (any time), Sunday (any time), or Monday (before the specified run time) is only one day late. After the five day late period, an assignment will receive a grade of 0 and cannot be submitted.
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.
This is a programming class. All assignments are expected to at least compile successfully. Assignments that do not compile receive 0 points, regardless of the amount of code submitted.
Each assignment that does compile will be graded on the following basis:
Output: 40% Coding: 40% 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.
Coding is graded for completeness, correctness, and efficiency. Proper style is important, including blank lines and consistent use of indentation.
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 lecture and can be found in the Documentation Standards web page.
Starting with Assignment 2, you and a partner of your choosing may work together to complete the programming assignments for the course.
The idea behind allowing collaboration on assignments is to help you build programming skills along with another student/classmate. Don't try to just find someone to do your homework for you. This should be a give and take of ideas on how to go about coding a C++ program to solve the problems that are presented in the assignments. It should be a learning experience for both people in the pairing.
If you copy someone's homework without his/her permission, you are cheating and there will be appropriate penalty.
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. Should you miss a class, there will be no private repeat lecture from your Professor or Teaching Assistant(s). However, IF a lecture is conducted on Blackboard Ultra rather than in person, a recording of the lecture will be available on Blackboard Ultra.
The Teaching Assistants and the Professor 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.
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.
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 in any form will not be tolerated.
Both "loaning" material to and "borrowing" material from a fellow student are considered cheating. Some discussion of assignments and mutual assistance normally are acceptable, but the discussion or assistance should not be so detailed and extensive that it begins to resemble collaboration. If you feel even the slightest possibility that what you are doing might be considered cheating, DO NOT DO IT! Any assistance needed should be sought from a CSCI 240 teaching assistant or instructor.
This, of course, does not apply to your programming partner (if you are doing pair programming).
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.
If you receive assistance from any source other than the 240 instructors, the TAs or your programming partner, you must document the source. For instance, if you consult a website for assistance in completing your program, you must include the URL in your documentation. You may not turn in a program written by someone else. When you write a paper, you can consult multiple sources, but you then put the ideas into your own words and footnote the sources. So if you get assistance, be sure you understand how the code works, adapt it for your program, and document the sources. Do not simply copy it and put your name on it.
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.