CS 112 is a first course in computer science for majors and others with a serious interest in computer science. Topics include an overview of computer system hardware and organization, problem solving methods and algorithm development, program structures, abstract data types, simple data and file structures, introduction to analysis of algorithmic complexity and program correctness, and applications development in a high level language that supports modular design.
Prerequisites. Thorough understanding of high school algebra and trigonometry and successful completion of Math Placement Test offered through the Testing Center (i.e. student is eligible to take Math 113), or a grade of C or better in MATH 105.
Alternatives. CS 112 is an intensive, time-consuming, 4 unit class intended for CS majors, CS minors, and students in engineering and/or mathematics. While students in the IT minor program may take CS 112, they are strongly advised to take IT 108 instead. Beginners with little exposure to computers should consider taking IT 103 or IT 108. CS 112 is taught using Java in a Unix environment. Lab attendance is required.
Unix Help. If you are unfamiliar with the Unix environment, GMU offers training workshops (look for "STAR-UNIX") to help get you started. The first one this semester will be held on February 3, 2006.
Labs
Lab time will be your opportunity to:
- become accustomed to the GMU computing environment
- learn how to use the submit program to submit labs and projects
- gain an introduction and ask questions about labs and programming assignments
Lab attendance is required. Failure to attend lab will result in significant loss of both instruction and hands-on experience. In addition, quizzes or in-lab assignments may not be made up. During lab time, your lab instructor will provide examples and assistance with concepts covered in the book and during lecture, and occasionally will introduce new material as well. Accordingly, you should fully prepare yourself for lab by attending lectures and completing any assigned reading, as well as carefully reviewing and, in appropriate cases, getting started on the lab assignments provided in advance. Lab will also provide the opportunity to work on the GMU computer systems in a controlled environment and to ask more detailed questions than may be possible during your lecture.
Lab assignments are due via electronic submission on the day after your scheduled lab before midnight (11:59PM).
Please note that you must attend the lab session you are registered for. You may be able to attend another lab session if it is tied to your lecture session if your instructor agrees; however, individual instructors may vary both lab materials and lab assignments. Accordingly, attendance at any lab session not specifically connected with your lecture section cannot be counted on to cover the same material as those associated with your lecture section. In addition, quizzes taken in another lab section will not count towards your grade unless special arrangements were made in advance and accepted by both your instructor and TA. Accordingly, you should plan to attend the lab session you are registered for.
All quizzes in the course will be given in labs. They will not be announced beforehand.
Text and Software
| The text is Java Software Solutions (Java 5.0 version) : Foundations of Program Design (4th Edition) (Paperback), by John Lewis and William Loftus. |
Software. If you program at home, you will need to download the Java 1.5.0 Software Development Kit (SDK). Note that the "Java Runtime Enabler" (JRE) is not sufficient. We will also be using the JGrasp integrated development environment (IDE), which is free and available on MacOS X, Windows, and Linux. Be sure to download the version that will work with your operating system
Coursework
Reading. Students are responsible for reading and understanding the material in the textbook. However, we will not necessarily cover all of it in class. If you do not understand something in the book, there will be opportunity to ask questions in class, during your teachers' office hours, or those of the course TAs. You may see any TA assigned to this course, regardless of whether she/he is your lab instructor.Due Dates. Labs are due 24 hours after the beginning of the lab period in which they are presented. Programming projects will be due the assigned date and time. Work will be submitted electronically using WebCT.
Late work. Late labs will not be accepted. Late projects will be penalized 10 points a day. Note that if you have submitted a project and decide you want to submit a late project, you MUST notify the TA prior to the due date. Once your project has been graded, it may not be resubmitted. No extra credit points, when available, will be
given to late projects. Individual requests for extensions will not be granted.
Missing an Exam or Contesting a grade. Once labs or projects grades are sent to you, you have one week to contest the grade. After that the grade will not be changed. You must have a written excuse (doctor's note, for example) to miss an exam. Once a test or quiz is returned, you have one week to contest the grade-- beyond that the grade will not be changed. Note that the week starts when a test is returned to the class, which may or may not be when you choose to pick yours up. The Dean's permission is required for taking a missed Final Exam.
Incompletes. A request for an incomplete (IN) will only be considered in the final quarter of the course (all assignments up to and including the 3rd project must have been turned in and no additional work on these will be accepted). Request must be made in writing, accompanied by a note from a doctor or employer and applicable contact information.
Communication and Project Submission
We will use WebCT and Unix e-mail for official communication. You are responsible for checking the system regularly for notices from your instructor or TA.
- You MUST obtain a Mason account and an IT account if you do not have them. Click here and then on the "New Student" link to activate your Mason and ITE cluster accounts (The TA's will help you obtain an account and set up your WebCT account during a beginning lab session.) Please use one of these accounts for any individual correspondence with your instructor and/or TA. (GMU faculty members have been instructed not to respond to student email originating from a non-GMU account.)
- Your WebCT account will be set up automatically if you are properly registered for this class. Your WebCT ID will be identical to your Mason e-mail (same as Mason cluster account) username. If you registered at GMU on or after August 16, 2004, your initial password will be based on your birth month, day and year. For example, a birthday of February 16, 1987 would yield a password of 021687 If you registered prior to this time, you initial password is the last four digits of your SSN. Type WebCT41.gmu.edu into any browser to access WebCT.
- You will upload your assignments using WebCT as well.
Grading Policy
Your course grade will be a weighted average of the following items:
- 3 programming projects: 20% total
- Labs: 20%
- Quizzes and instructor evaluation: 15%
- 2 midterm exams: 25% total
- Final exam: 20%
Each section instructor will decide the basis for his/her lab grades and instructor's evaluation, which might include additional programming, pop quizzes, hour tests, class participation and/or other things as determined by your instructor.
Extra credit programming points do no carry over to test grade points or vice-versa. Any student earning a "D" or "F" on the final exam will receive a "D"or "F" in the class, at the discretion of the instructor.
Programming Policy
Working With Others
These are to be individual efforts, meaning that no code sharing or discussion of problem solutions with anyone except your instructor or a course UPA or TA. You may not incorporate code written by others, such as can be found on the Internet or any of the numerous CS books.
You may, however, ask questions or respond to queries on WebCT regarding projects or other assignments, so long as you do not post any code or pseudocode, and so long as you do not provide specific solutions to the overall problem or algorithm design (even in English). "Summarizing" WebCT statements or responding to another student verbally regarding an assignment are not acceptable, and are subject to the above ban on discussing assignment solutions. Such discussion or code sharing constitutes an honor code violation. Suspected honor code violations will be reported to the Honor Committee. For further information regarding honor code violations in programming, see the Computer Science department's Honor Code statement.
During a lab session, with the TAs permission, you are allowed to help a fellow student debug a program or answer very specific questions. Allowing another student to copy your work or to copy that of another student, is however, an Honor Code violation.
Other Policies
Programming projects may be weighted differently.
Documentation is required.
You will be given credit only for code that works. This means that you should code and test functions as you write them, not code the whole thing and then try to get it to work. Students may develop programs using any computer system they have available. Please note, however, that submitted projects must run on jGrasp, unless otherwise specified by your instructor.
You are expected to backup and submit/resubmit your program as you get different pieces working. The submit program keeps
the last version you submit. Failure to do this may result in your getting
a zero on a program instead of partial credit if last minute problems occur.
Note that accidently deleting your program, having problems connecting, etc.,
will not be accepted as excuses. It is important that you not touch your
programs once you have done your final submission: If there are submission
problems, consideration for credit will only be given if it can be verified that the programs
were not changed after being submitted.