Intermediate Computing - 810:053
Fall 2009
Dr. Ben Schafer
316 ITTC Building
schafer@cs.uni.edu
273-2187
Office Hours (my schedule)
Time and Place:
Required Text:
Modern Software Development Using Java by Paul Tymann and Michael Schneider (ISBN 978-1-4239-0123-5)
Course Description
This course aims to help you develop an understanding of current design methodologies for developing computer programs in an object oriented language and model - programs written using collections of independent objects that collaborate to achieve some goal. This course does so by giving you the opportunity to design, critique, and implement OO solutions in Java.
Your skill as a programmer depends largely on how many ways you can think about problems and solutions. At the most abstract level, flexibility allows you to be creative. At a more concrete level, flexibility allows you to learn new kinds of programming languages more effectively. And, at the most concrete level, such flexibility allows you to use individual programming languages more effectively.
Outcomes
By the end of the semester you should have a solid grasp of the object-oriented approach to software development. You should:
Know the basic features of OO techniques
Know the vocabulary of OO modeling
Be able to analyze a real-world situation in an object-oriented way
Be able to design an object-oriented model containing multiple classes and collaborations
Be able to implement such a model in Java using OO programming techniques.
Be able to consider multiple designs for solving the same problem and understand the tradeoffs between these alternate designs.
Class Website
http://www.cs.uni.edu/~schafer/courses/053/
Most course materials will be made available on the course web page during the semester. You are responsible for checking this site frequently for reading assignments, prep activities, lecture notes, announcements and supplemental class materials.
Class Mailing List
810-053-01-FALL@uni.edu
I will use this to send breaking news and to answer common questions. Furthermore, I encourage you to use this mailing list to ask questions of me and/or your fellow students. By default, mail to this list will go to your @uni.edu address and mail sent by you to this list will be rejected unless it comes from that address. Talk to me if this is a problem. Again, you are responsible for checking your email to be aware of announcements.
The final letter grade you earn in this course will be based on points accumulated over four activities as described below. The following expected point system will be used in calculating final grades. Please note that I reserve the right to modify these points based on the number of class sessions and programming assignments.
|
Activity |
Number |
Adjusted Score |
| Attendance and Participation | ~45 | 100 |
| Assignments |
~15 worth varying points |
400 |
| Midterm exams | 2 | 150 each |
|
1 |
200 |
Notice that points are weighted. Thus, even though you may earn 50 actual points for a midterm exam, it would be scaled to 150 points.
Final grades will be assigned based on cut off points no “higher” than:
There are a few exceptions to this:
Class Attendance and Participation
Socrates reportedly said that the best learning takes place on a log, with the teacher on one end and the student on the other. In other words, learning is most effective if it is an interactive process. To be interactive, we must have two things - attendance and participation.
Although I will often use the term "lecture," this course will rely less on the "lecture" you may be used to, and more on an open discussion between instructors and students. Regular class sessions will be aided significantly by your participation in discussions, as well as your willingness to ask questions and share your experiences with your classmates. To encourage this, I will take attendance, and I will try to evaluate how much effort you seem to be putting into participating in the process.
To encourage attendance I will begin each day by taking attendance. Right off the bat, you can earn 2 points :
On top of that, you will be assigned points based on your participation in the whole-class "lecture" and various small group activities. These points will be assigned as :
This means you can have a score anywhere from 0 to 4 each day.
At the end of the semester, you will be assigned an overall "attendance and participation" grade based on the total number of points you have earned. The formula for this is based on the idea that perfect attendance with "some participation" each day (averaging 3 points per day for each day of the semester) should earn you 100% of the points in this category.
It is always worth pointing out that you can participate too much. Remember that I am trying to have dynamic interaction with slightly more than a dozen students at the same time. Students who participate too much cheat those other students of a chance to participate. Please feel comfortable participating, but also be aware of how doing so affects the class as a whole.
There will be at least two types of assignments this semester
It is expected that you will complete all assignments as an individual unless otherwise instructed (see section on scholastic conduct). If you have questions concerning an assignment, feel free to consult your instructor or a TA. In fact, if you spend more than 15 minutes staring at the book or computer trying to figure out what to do next, ask for help! I don't know what you are thinking if you don't tell me. Therefore, take advantage of the fact that I am willing to help you. However, plan your time wisely. Do not wait until the last minute or help may not be available.
Please note : there will be one or more assignments due during the last week of classes.
There are a total of three exams this semester.
Unlike the final exam (which will be a formal, written exam following the schedule established by the university) the time, place, and format of the "mid-term" exams has not been decided. These exams will be announced approximately one week prior to the exam, and exam specifics will be provided at that time. You are expected to be present for these exams unless you have made prior arrangements. Make-up exams will be offered under very limited circumstances. If you are aware of conflicts prior to the exam, please bring these to my attention as early as possible.
These exams are all closed-book exams. However, it is likely that each exam will allow you to bring "helper" materials either provided by me or constructed by you prior to the exam. Specific instructions regarding what will and will not be allowed for each exam will be published to the course website prior to each exam, and will be clearly indicated in the instructions for each exam. It is your responsibility to be aware of what is and is not allowed on a given exam.
I try to accommodate student needs whenever possible, but I can only do so if I know about them. If you ever have to make alternate arrangements for a class session, an assignment, or an exam, contact me in advance. The safest way to make such arrangements is by notifying me via e-mail or phone of your circumstances and of how you can be reached.
All assignments are due at their assigned date and time. In order to receive partial credit, always submit your best effort at that time. Late work may not be accepted for a grade.
Incompletes are awarded only in very rare instances when an unforeseeable event causes a student who has completed all the coursework to date to be unable to complete a small portion of the work in the last week or two of the semester (typically the final project or exam). Incompletes will not be awarded for foreseeable events including a heavy course load or a poorer-than-expected performance. Verifiable documentation must be provided for the incomplete to be granted, and arrangements for the incomplete should be made as soon as such an unforeseeable event is apparent.
You are responsible for being familiar with the University’s Academic Ethics Policies (http://www.uni.edu/pres/policies/301.shtml).
It would be easy if I could just state "copying and collaboration is wrong" But, in fact, that statement is partially inaccurate in a programming environment. There will be many times this semester when I will explicitly ask you to copy some starter code, and there are times when you may (and even should) discuss code with other students. In other words, under certain circumstances, copy and collaboration is not only ok, it is expected.
General guidelines regarding "copying"
General guidelines regarding collaboration
In addition to the activities we can all agree are cheating (plagiarism, bringing unauthorized notes to a closed book exam, etc), assisting or collaborating on cheating is cheating (providing answers to exam questions, discussing test questions with a student who hasn't taken the exam yet). Cheating can result in failing the course and/or more severe disciplinary actions.
Remember: Discussing assignments is good. Copying code or answers is not.
We live in a technological society, and many of you now carry a variety of electronic distractions with you. These include cell phones, laptops, PDAs, MP3 players, etc. While you are welcome to own and use these, and other, electronic devices, their use in the classroom is forbidden without my explicit permission (In fact, this is now a University-wide policy).
A few exceptions do exist, and I reserve the right to approve these situations on a case-by-case basis with prior notification. For example, due to a family emergency it may be necessary to have your cell phone turned on. Unless we have discussed it in advance, all electronic devices should be turned off and left out of sight during class time. The inappropriate use of any of these devices will cause you to receive a participation grade of negative one point regardless of your participation otherwise. Multiple infractions may cause more extreme consequences, including removal from the course.
In compliance with the University of Northern Iowa policy and equal access laws, I am available to discuss appropriate academic accommodations that may be required for students with disabilities. Requests for academic accommodations are to be made during the first three weeks of the semester, except for unusual circumstances, so arrangements can be made. Students should register with Student Disability Services, 103 Student Health Center, to verify their eligibility for appropriate accommodations.
Once you have allocated the necessary time for this course, the following suggestions, compiled from student experiences, should help you plan your time use and prepare for the labs and exams:
Prepare for lecture! Read any assigned readings before the start of lecture.
Be on time. I will start promptly and will often start with important announcements.
Make use of the office hours early! Don't wait until late in the term to seek help.
Be specific in your questions when possible. Rather than asking for an explanation of a large or general topic, be prepared with specific questions or specific examples that raised your questions.
Write code on your own! Think of simple problems on your own (or from the text) and solve them.
Make sure that your code runs in the lab. This is especially important for those who complete portions of their work at home. Verify that code that runs on another machine actually runs in the lab so there are no surprises at grading time.
Realize that this is a class in design more than it is a course in programming. This is a change in ideas from your first two programming courses. It is no longer sufficient that your code simply runs. Thus, a significant part of your grade will be based on the quality of your code.
Finally, I encourage you to utilize the Academic Learning Center's free assistance with writing, math, reading, and learning strategies. UNI’s Academic Learning Center is located in 008 ITTC. Visit the website at http://www.uni.edu/unialc/ or phone 319-273-2361 for more information.