This course continues the development of programming and problem-solving skills, focusing on object-oriented programming and design (OOP/OOD), and improved programming practices. Topics include: an introduction to the Java programming language, encapsulation and information hiding, proper program and class design, inheritance, polymorphism, and generics. Other topics may be added, time permitting.
Programming projects for this course will use the Java programming language and the Eclipse programming environment.
Prerequisites: CMSC 201 (with a "B" or better) and MATH 151 (with a "C" or better)
The objectives of this course are:
- To learn and practice problem solving techniques
- To improve program design and coding skills
- To understand the fundamental programming concepts of abstract data types
- To learn the fundamentals of object-oriented programming
- To learn how to thoroughly and appropropriately conduct unit and system integration tests
CMSC 201/202 Sequence Rules
For students who enrolled in college for the first time in Summer 1998 or later, you have two choices: 1) pass both CMSC 201 and CMSC 202 with a grade of B or better, or 2) don’t graduate as a CMSC major. Additionally, the registrar has very specific rules about repeating courses in sequence. For example, if you were to receive a C in CMSC 201 and then take and pass 202, expecting to retake 201 later, you can’t. Since the classes form a sequence, you cannot retake an earlier class in the sequence once you’ve passed a later one. Also, note that all University deadlines (for adding or dropping courses, changing grading method, etc.) will be strictly enforced, so make sure you are familiar with them.
There is no required textbook for this course. If you have no experience with OOP/OOD or Java, then Absolute Java Third or Fourth Edition is highly recommended.
Addison Wesley Publishing, ISBN: 013608382X
Highly recommended for those with no prior OOP/OOD or Java experience.
Addison Wesley Publishing, ISBN: 0321487923 (Errata sheet)
Highly recommended for those with no prior OOP/OOD or Java experience.
O’Reilly Publishing, ISBN: 0596009208
An easy to read introduction to the basics of Java.
Prentice Hall Publishing, ISBN: 0131872486
The complete third edition is available FREE on-line at mindview.net/Books/TIJ/
The first 7 chapters of the fourth edition are available FREE on-line at mindview.net/Books/TIJ4
Also see the list of Java reference books
Lectures and Readings
You are expected to attend all lectures and labs for this course. Although all sections will cover the same general topics, you are responsible for the specifics given during your section. You are expected to attend all laboratory sessions, and you are responsible for all material presented there.
You are responsible for all material covered in class, even if not found in the on-line class presentation materials. If you should happen to miss a lecture or a lab, you are responsible for getting any missed notes or announcements from a classmate.
The online schedule includes lecture topics/notes, midterm and final exam dates, project due dates, and lab dates.
Your grade in this course is based on exams, lab assignments, and projects, as follows:
|2 Exams (15% each)||30%|
|1 Comprehensive Final Exam||20%|
|10 Lab Assignments (1% each)||10%|
|5 Projects (6, 7, 8, 9, 10%)||40%|
Letter grades will follow the standard scale: A ≥ 90, 90 > B ≥ 80, 80 > C ≥ 70, 70 > D ≥ 60, 60 > F.
Your grade is based on timely work accomplished during the semester. Incomplete grades will only be given for medical illness or other such dire circumstances (almost never).
Project grades will be mailed to your UMBC email account. The exams will be returned to you either in lecture or in lab.
Required lab sessions are designed to provide you with practice writing Java code, learning to use Eclipse, and other course and project related skills.
All required CMSC 202 lab sessions are led by your TA. Check the required lab schedule for the time and location of the lab session for your section. To recieve credit for attending the lab and completing the lab assignment, your work must be verified by your TA.
It is our intent to offer more than 10 lab assignments during the semester, schedule and weather permitting. If more than 10 lab assigments are offered, then your 10 best lab grades will be counted.
All lab assignments must be completed during your assigned lab time. You must attend your assigned lab section.
TAs will be present at your lab to explain the lab assignment, help with the assignment as needed, and record your successful completion of the assignment.
Lab assignments are graded on a scale from 0 to 3 at the discretion of your TA.
|3||Successfully completed the lab assignment|
|2||Made a legitimate attempt to complete the lab assignment|
|1||Attended the lab, but made no effort to complete the assignment|
|0||Did not attend the lab|
If you made a legitimate attempt to complete the lab assignment within the alloted time, but could not, you may complete the assignment on your own. Once completed, see your lab TA and show him/her your completed work. He/she will change your grade for the assignment from a 2 to a 2.5.
Lab Office Hours
In addition to the required labs described above, TAs from CMSC 202 and other courses will also hold drop-in office hours in ITE 240. During these times, TAs will be available for assistance on projects or just to answer your questions. Office hours are available to all CMSC 202 students and operate on a first-come, first-served basis.
ITE 240 is open to all students enrolled in any course where programming is taught or programming projects are required, such as CMSC 201, 202, 313, 341, 421, and possibly others. While most TAs can assist you with Java questions, only the CMSC 202 TAs will have specific knowledge about your programming assignments. We recommend that you plan to use ITE 240 when CMSC 202 TAs are scheduled. Note that instructional activities have priority and may cause the cancellation of some office hours.
Students using the lab must observe all the rules below:
- Observe all the University and Departmental policies regarding the use of the University’s and the Department’s computer and laboratory facilities.
- No food or drinks allowed in the lab. Absolutely! Never!
- Do not log in to multiple machines, especially when there are students waiting for access to the lab.
- Be respectful of others working in the lab. DO NOT create disturbances (e.g. don’t be noisy, don’t play audible music, etc).
- CMSC 421 related activities have priority. This is because they have special requirements that limit them to this lab, while there are designated OIT Labs across campus that provide general computer access.
- Observe the TA hours in the lab. Students are only allowed to work during the TA lab hours. Sign in with the TA when you arrive. You must leave the lab when the TA goes off duty — no excuses, no exceptions!
- Report offenders of lab rules to the instructional staff.
- Report any suspicious activity to the instructional staff or the campus police, as appropriate.
- The lab is provided to you by the University for your benefit. Take good care of it! Do not abuse it!
- Repeated offenses might result in shutting down the laboratory for everybody.
Failure to observe all the lab rules will result in suspending your lab access, as well as further disciplinary actions as determined by departmental and University policy.
The critical programming skills cannot be learned simply by attending the lectures. You should budget enough time to work on the projects as well. The due date and time for each assignment will be included with the project description. Please see the late project submission policy.
To be assigned a grade, a project must compile and show substantial effort. Please see the Project Grading page for details of project grading.
There will be five graded projects totaling 40% of your final grade. In addition, there is a mandatory ungraded project that you will do in Lab 1. The purpose of the Lab 1 project is to make sure you know how to use the submission system and to make sure that the submission system is prepared to accept projects from your account. If you fail to submit the project from Lab 1, no future project submissions will be possible and your grade for those projects (which ARE graded) will suffer.
Network and computer failures at UMBC are a fact of life. They are out of your control and out of our control. However, they are not an excuse for a project to be submitted late, nor are they a reason for project deadlines to be extended, even if the outage occurs on the due date. Plan accordingly. Waiting to submit your project until 5 minutes before your project is due is a recipe for disaster. In the event of network outages or computer failures, you are still responsible for submitting your projects on time. There are labs on campus even if your home internet or ResNet connection is down. Also, it is your responsibility to take care of any problems with your account, such as quota overages, which interfere with your ability to complete and submit projects for the course. Project extensions will not be given for such problems.
All projects must compile and run on UMBC’s Linux system using the javac compiler and run under GL’s JVM. UMBC's Linux servers are currently running version 1.6.x. To ensure you are accessing Linux, log on to linux.gl.umbc.edu. Do not develop your projects on other machines (e.g. irix.gl.umbc.edu, solaris.gl.umbc.edu). Different compilers may be installed on the two systems, and what compiles on one may not compile on the other. See the Program Compilation section of the Projects page for more details.
Getting Help on Projects
You should make every attempt to do as much work on each project as possible. If you get help from anyone, you must document their assistance in the comments section of your code. The TAs and the instructors are the best sources for assistance. See the Project Policy section of the Projects page for a description of OPEN and CLOSED projects.
Project Regrade Requests
There are two kinds of regrade requests. One carries a deduction and one does not.
If you feel the grader has made a mistake on your project or exam, you may choose to request a grade correction. Grade corrections must be discussed in person with your instructor within one (1) week of receiving your grade. Otherwise, the grade stands.
If you made a minor mistake that caused our automated project grading script to fail and you can correct it by changing a “few” lines of code, you may discuss the request with your instructor. Regrades are given at the discretion of the instructor. After each grade is returned, there is a grace period of one (1) week during which you may discuss any problems you have with your grade. After that time, your grade will stand. Regrades will incur a 10-point deduction. Regrades will only be considered if you could possibly improve your score by a letter grade (after the deduction).
Students in all sections must discuss grade changes in person with their instructor.
No grade change requests will be granted via email.
There will be three (3) exams — two during the semester and a comprehensive final exam. Exams during the semester must be taken with your lecture section. A common, comprehensive final exam will be given to all CMSC 202 students at the same time (see the course schedule for the time and place of your final). Make-ups for exams are given under only the most dire circumstances (such as hospitalization).
A picture ID is required to take/hand-in the exam.
Blackboard is available for all CMSC 202 students in all sections. Blackboard will be used to post student lab grades and to support course discussion forums. Discussion forums will be created for general questions about course material, Java, and for general questions about Eclipse. A discussion forum will also be created for each project in this course.
If you have difficulty accessing the CMSC 202 Blackboard site, e-mail your instructor.
Academic Conduct Policies
By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC’s scholarly community in which everyone’s academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are all forms of academic dishonesty, and they are wrong. Academic misconduct could result in disciplinary action that may include, but is not limited to, suspension or dismissal. To read the full Student Academic Conduct Policy, consult the Academic Integrity Resources for Students page, the Faculty Handbook (Sections 14.2-14.3), or for graduate courses, the Graduate School website.
For additional information see Academic Integrity Resources for Students.
If you need help with your project, see your instructor, your TA, the Computer Science Help Center (room ITE 201E), or tutors provided by the Learning Resource Center. We also encourage you to consult textbooks and the course web pages.
Please be careful of the following situations:
- Having someone else’s project (even a small part) in your possession, even briefly, is forbidden.
- Safeguard your account password; you are responsible for the actions of anyone else you may allow to log into your account.
- Safeguard hard copies of your programs; excuses such as “I must have left a copy of my code in the lab where someone else must have found it” will not be accepted.
Your project will be checked for similarities with all other student projects. If your project is found to be “substantially similar” to that of another student, or if it is determined that someone else wrote your project for you, then, at a minimum, you and the other student (if applicable) will receive a grade of zero for that project and a 10 point deduction (one letter grade) in your semester average. Furthermore, all parties concerned will have their prior projects re-checked for cheating. Any second incident will result in a grade of ‘F’ for the semester.
Note that checking for cheating may occur at any time during the semester. Therefore, if you cheated on Project 1, you may be confronted about that project at any time during the semester. Receiving a grade for a project does not mean that you are “in the clear.”
Any act of dishonesty WILL BE reported to the University’s Academic Conduct Committee for further action, which may include, but is not limited to, academic suspension or dismissal from the University.
Email is great — much better than voice mail. If you need to contact your instructor about this class outside of lecture and office hours, email is much better than the telephone. You should, however, observe the following etiquette.
- Email is good for lots of things, but it is horrible for debugging. Instead, if possible, use your instructor’s office hours, open lab hours, the TAs’ office hours or the Help Center for debugging help.
- When you send an email to your instructor, your instructor will reply to the address from which the email was sent.
- When your instructor wishes to initiate an email to you, it will be sent to your UMBC GL account. Therefore, you should check your email at that account on a regular basis, as it will be used when necessary to communicate with the class outside of normal lecture time. You may also choose to forward your UMBC mail to an outside account.
- Use your real name. Email from “Hot Stuff” gets deleted without being read.
- Use only the email addresses listed on the Staff Contact page. Mail sent to any other addresses may not be read.
- Include your name and section number in all email correspondence with course staff.
- Include a meaningful subject line, something like “CMSC 202 Project 2 Question.” Your instructor may teach more than one course, so don’t just refer to a project number.
- Send email in text format only (no HTML, MS Word attachments, etc.). Mail with suspicious attachments will not be read.
In addition, due to the volume of student email during each semester, please note the following:
- Although every attempt is made to respond to email promptly, do not expect responses during holidays or weekends, late in the evening, or on the evening a project is due. If you do not receive a response within a couple of business days, feel free to email them again, as your original email may have been lost or spam-filtered.
- Do not expect an immediate response to your mail. This means you should ask your project questions WELL BEFORE the due date if you expect an answer in time to help you.
- Do not wait to submit a project because you are waiting for a response to your email. Once you receive a response, you can resubmit an updated version of your project if you so choose (subject to the late penalties and policies outlined above).