SYLLABUS
ICS 141: PROGRAMMING WITH OBJECTS
Spring 2004
4 Semester Credits
Class Hours: Tuesdays,
Jan. 13 –
Instructor: Sue Fitzgerald
E-mail: sue.fitzgerald@metrostate.edu
Class web site: http://redhat.ics.metrostate.edu/~sue/courses.htm
Phone: 612-659-7143
Fax: 612-659-7160
Departmental support staff: Eddie Kramer, Mpls 305
612-659-7141
Office Hours: Mon.
Tues.
Tues.
Wed.
Wed.
Generally good times to reach me: Afternoons
My office hours are regular times during which I plan to be in my office, available to you. Of course you may call at any time, but these are the times when you will be most likely to reach me. Occasionally I will be unable to keep my office hours because of travel plans or unexpected meetings. I will make every effort to keep you informed of days when business takes me out of town.
I strongly encourage you to make an appointment if you wish to meet with me so that I can guarantee my availability. You can make an appointment by calling me. I prefer to make appointments for the times shown above if at all possible.
I will also be available in the classroom directly before and after class to answer questions. However, do not expect to ask questions and solve programming problems in the half hour before programs are due. This never works.
Text: Elliot B. Koffman and Ursula Wolz. Problem Solving with Java, second edition. Addison Wesley 2002. ISBN 0-201-72214-3.
Course Description: In this course, students continue to learn how to structure and design object-oriented computer programs. Topics include objects, classes, containment, inheritance and polymorphism. Students write programs involving multiple classes. Language features such as methods, parameter passing, arrays, arrays of objects, file handling, exceptions and strings are emphasized. Problem-solving and algorithm-design techniques are explored using pseudocode, Unified Modeling Language (UML) class diagrams, interaction diagrams and simple patterns. Design of good test cases and debugging techniques are highlighted. Searching and sorting algorithms are discussed.
Note: This class uses the Java programming language. It is designed for students who have had at least one course in Java programming. Credit is not given from more than one of ICS 141 Programming with Objects or ICS 180 Java for Transfer Students.
Competence statement:
Knows basic object-oriented programming constructs including objects, inheritance, overloading and polymorphism. Can design programs and implement them in Java using classes, methods, argument passing, arrays of primitive types and arrays of objects, event handling, inheritance and containment hierarchies, exception handling, file management, and graphical user interfaces. Can use a compiler and debug programs. Knows and employs programming style and documentation conventions. Is familiar with the concepts of top-down design, stepwise refinement, and modularity.
Absences: In this course you will be learning basic problem solving skills and programming concepts and techniques. I strongly recommend that you attend all classes so that you can observe the process of solving computer-based problems from start to finish. If you miss a class, email or talk to me as soon as possible and be sure to get notes from one of your classmates. Although I will provide handouts and answer questions, I will not give recap sessions for those who miss class. If a stressful work or home situation arises which is affecting your ability to perform well, please talk to me as soon as possible. I recommend that you exchange phone numbers with someone else in the class at the first break.
Government financial aid regulations require that we keep records of class attendance.
Prerequisites: ICS 140 Programming Fundamentals (or equivalent knowledge of Java) and Math 215 Discrete Math (may be taken concurrently)
Letter Grade: Your letter grade will be determined based on the percentage of possible points that you earn during the quarter. The following table relates the percentage to a letter grade:
|
Percentage |
Grade |
|
|
|
|
94 - 100 |
A |
|
90 - 93 |
A- |
|
87 - 89 |
B+ |
|
84 - 86 |
B |
|
80 - 83 |
B- |
|
76 - 79 |
C+ |
|
72 - 75 |
C |
|
69 - 71 |
C- |
|
60 - 68 |
D |
|
Below 60 % |
F |
If you have selected the S/N grading option, then to receive a satisfactory rating (S) you must earn at least 69% of the possible points. If you wish to elect S/N grading, you must inform the registrar before the second class meeting.
Points are allocated to different learning activities as indicated in the table below. There may be some slight variation in the number of labs, programming assignments and homework problem sets. So, the total possible points is an approximation to the final total.
|
Description of Item |
Number of Items |
Approximate Points per Item |
Total Maximum Possible Points |
|
|
|
|
|
|
Tests |
2 |
100 |
200 |
|
Final Exam |
1 |
150 |
150 |
|
Labs |
9 out of 10 (lowest one will be dropped) |
~15 |
~ 135 |
|
Programming Assignments |
7 out of 8 (lowest one will be dropped) |
~35 |
~ 245 |
|
Homework Problem Sets |
~5 |
~15 |
~75 |
|
|
|
|
|
|
Total |
|
|
Approx. 705 |
Evaluation: Your evaluation will be based on the following learning objectives:
Problem solving skills: Can predict the outcome of sample code and can solve simple programming problems on tests and homeworks.
Program design and implementation: Is able to design and write simple application programs in Java using concepts covered in class. Demonstrated through programming assignments.
Programming style: Can produce readable, well-documented code that conforms to style conventions, to be evaluated by computer programming assignments.
Responsibility: Attends class, turns in work and meets deadlines.
Time Requirements: For many students, computer programming is quite time-consuming. I know of no way to learn to program without extensive practice, so there will be both reading and programming work to be done outside the class period. The best way to become a good programmer is to practice at every opportunity.
The amount of time required to prepare for this class each week will vary from individual to individual. It takes time to complete the required reading assignments, problem sets and especially the programming assignments. Also, you will need to study for the tests. Some people estimate that it may take 3 hours of preparation outside of class for each hour spent in class. So you need to be prepared to spend at least that amount of time each week, and it may take more time than that. Of course, it may actually take less time than this for you.
Software: All programming assignments are to be done
in Java. The compiler discussed in class will be Sun’s jdk ** compiler, which
is available in
Note that for grading purposes, I must be able to compile and execute your program. You may use any compiler which is jdk ** compliant and runs under Windows 95 on a PC. If your alternate compiler causes grading problems, then I will ask you to use what is available in the lab. Technical support for other compilers will not be provided and assignment due dates will not be waived for compiler difficulties.
You may download the jdk compiler from http://java.sun.com. The Java Development Kit from Sun Microsystems is free.
Diskettes: You will need several blank high density diskettes for doing your lab and programming exercises. Most programming assignments will require that you turn in materials on disk; in addition you will need to keep backup copies of your assignments. It is important that you bring at least two blank disks to every class with a lab. Otherwise, you might be unable to perform the lab.
Except for true emergencies, do not email your programming assignments to me. Turn them in on diskette or CD.
Lab Assignments: There are ten planned lab assignments. Generally, the lab assignments will illustrate aspects of the topics being covered for the week. The lab assignments are to be done during designated class time in the lab. The labs are due at the end of the lab period. However, if you cannot finish your lab in the allotted time, you may turn it in up to one week late, no later than the beginning of the next class meeting with no penalty. Lab assignments later than one week will not be accepted. Your lowest lab score will be dropped. Unlike programming assignments, consulting and helping each other with lab assignments is acceptable and even encouraged.
Homework Problem Sets: There may be a number of homework problem sets assigned in class. They may be selected problems from the textbook and may be representative of future test questions. Written answers to them will be due at the beginning of the next class period. Because the answers will be given in class, no late homeworks will be accepted.
Programming Assignments: There are eight planned programming assignments. They are due at the beginning of the assigned class period. You are expected to keep your own backup copy of the contents of the disk.
The programs will each be worth approximately 35 points each. The grading of the programs will take into account programming style, design documentation and correctness. Point values associated with the factors will be indicated in the assignment cover sheet. Generally, correctness will be weighed most heavily. You are required to turn in the assignment cover sheet with each program. Your lowest programming score will be dropped.
Late programming assignments: Because it is essential that you keep up in this class, late programs will not be accepted. Programming assignments must be turned in at the beginning of the class period of the day on which they are due. DO NOT MISS CLASS IN ORDER TO WORK ON A PROGRAM. There will be no credit for late programming assignments. Simply turn in what you have done when the program is due.
No work will be accepted after the final class period.
Makeup Tests: Makeup tests will NOT be offered. If you have to miss a test due to illness, family or business concerns, the next test that you take will be doubly counted in order to replace the missed test. However, you must inform me of your valid reason for missing the test no later than one day following the particular test in question.
I strongly believe that all students should take the final exam at the designated time. This helps to ensure that all students are tested in a uniform manner. If you do convince me to write a separate final exam for you, it may be more difficult than the exam given to the rest of the class. I reserve the right to refuse to give you a makeup final exam.
Incompletes: From time to time I am asked to consider assigning a grade of incomplete. A grade of incomplete may be considered if the person requesting has successfully completed at least two-thirds of the class and is a student in good standing in the class. “Good standing” means that the requester is earning a minimum of a B grade and has attended class regularly. I reserve the right to say no to any request for an incomplete without justifying my position.
Academic Honesty: All programs and documentation must be individual and original work unless the assignment specifies otherwise. If your program closely resembles someone else’s, I will call it to your attention. Identical programs will be assigned 0 points. Two or more programs which closely resemble each other will be treated as one program and the possible points for one program will be divided among the students who submitted those programs. Repeated instances of similar or identical programs will result in a grade of F for the class.
To avoid having your programming assignments look similar to someone else's, you should not look at another person's design until you have written down your design; you should not look at someone else's code until you have written down your code.
If we have a group assignment, then the work turned in can be based on the contributions of the other group members. If such an assignment is made, it will be clearly indicated on the written assignment.
However, it is OK to ask for help. Learning to program can be an intensely frustrating experience unless you learn when to ask for help. In general, if you spend more than 15 minutes absolutely stuck on a problem, you should ask someone else to give you a hint. However, you should never copy someone else’s solution. Fortunately, programming tutors are available to help you in the lab. Exact hours will be announced in class.
Other instances of academic dishonesty may result in a score of 0 on an assignment, a grade of F for the class or expulsion from the university.
Learning Disabilities: If you have a documented learning disability, or if you suspect you have a learning disability that may have an impact on your opportunity to succeed in this course, please notify me before the second class so we can explore ways to reasonably accommodate your learning style. If you wish, you may work with Carolyn Roney, Disabilities and Special Services Coordinator. Her phone number is 651-793-1540. Note that I must receive adequate notice in order to honor requests.
Respect:
If you do not feel comfortable sharing your concern directly with me, please contact Jigang Liu, chairman of the Department of Information and Computer Sciences, at 612-659-7142 or Jigang.Liu@MetroState.edu.
Expectations: Sometimes difficulties arise when the expectations of students and teachers are different. Here is a brief summary of what I expect from you AND a summary of what you can expect from me.
What you can expect from me:
- I will share my technical knowledge with you as effectively as I know how.
- I will grade your work and return it quickly. In most cases I will grade your work and return it to you at the next scheduled class period (but not before). Occasionally I will take two class periods to return your work.
- I will provide you with written feedback on the quality of your work. If you do not understand why you were assigned a particular grade or if my comments are not clear, I will explain more thoroughly if you ask me to.
- I will show up for class. I will start and end class on time.
- I will return your phone calls and emails as quickly as possible. However, I may take more than one business day to do so. I do not check my phone or email messages on the weekends. If I plan to be out of my office for more than one day, I will leave a phone message on my voice mail explaining when I will be back.
- I will listen to you respectfully. I will answer your questions respectfully.
- I will provide you with a summary of the total points earned to date anytime that you ask for it.
What I expect from you:
- I expect you to read the syllabus and to know the class policies outlined there.
- I expect you to seek help if you are having difficulty with your course work. I expect you to talk to me if you are having problems. If a stressful work or home situation arises which is affecting your ability to perform well, please talk to me as soon as possible.
- If you do not understand why you received a particular grade, I expect you to approach me and ask questions. I expect you to treat me with respect even if you disagree with the grade you were assigned.
- I expect you to show up for class on time and stay for the entire session except when you have an unavoidable conflict. If you must miss class, assignments and most handouts can be obtained from the class web site.
- I expect you to turn in your assignments. I expect them to be submitted in a timely fashion. Late homework will not be accepted since answers will be given out at the beginning of the class period when the homework is due. Late programs will not be accepted. Labs must be turned in within one week of assignment.
- I expect you to turn in individual and original work. This means that what you turn in must be your own work and it cannot be work previously done for some other class. If you turn in work done by someone else, or work containing even a sentence or phrase copied from someone else, you may be assigned an F in this course. Repeated instances of academic dishonesty can result in expulsion from the University.
- I expect you to say no if another student asks you for a copy of your work. The penalty for permitting another student to copy your work is the same as if you yourself had turned in work that was not individual and original.
- I recommend that you complete the reading assignments before you come to class, particularly if you are having difficulty understanding the material.
Hot tips: Here a few suggestions for success.
1. Start programs as soon as they are assigned. Attempt to complete them one week early. This way you will be sure to find any problem areas in time to bring your questions to class before the program is due. NEVER wait until the night before a program is due to start it.
2. Find a study partner or group of partners. Exchange phone numbers and email addresses. Arrange times when the people in your group plan to work in the lab. Although I expect each of you to work independently and do your own work, the others in your group will be able to help you with syntax (compile) and logic errors. Besides, it’s more fun.
3. Don’t stay stuck!! If you cannot figure out a problem after 15 minutes of thought, ask for help. Don’t waste time on syntax errors.
4. Plan ahead. A good design will save you hours of coding and debugging. Do not sit down at the computer before you have thoroughly thought out the solution to the problem.
Tentative Schedule:
|
Week |
Date |
Topics and
Activities |
Required |
Due Dates,
Exams |
|
1 |
1/13 |
Syllabus,
review previous chapters. Lab
1: Review of simple program |
|
|
|
2 |
1/20 |
Arrays Lab
2: Arrays |
|
Assignment
1 due |
|
3 |
1/27 |
Arrays;
arrays of objects |
|
Assignment
2 due |
|
4 |
2/3 |
Multidimensional
arrays; Vectors, Wrapper classes Lab
3: Arrays |
|
Assignment
3 due |
|
5 |
2/10 |
Inheritance Exam 1
|
|
Exam
1 |
|
6 |
2/17 |
Go
over exam 1 Inheritance Lab
4: Inheritance |
|
|
|
7 |
2/24 |
Inheritance:
operations on a hierarchy Lab
5: Inheritance |
|
Assignment
4 due |
|
|
3/2 |
NO CLASS – CAUCUS |
|
|
|
|
3/9 |
NO CLASS – CAUCUS |
|
|
|
8 |
3/16 |
Inheritance;
operations on a hierarchy, Polymorphism, Interfaces |
|
|
|
9 |
3/23 |
Interfaces,
Abstract classes, packages Lab
6: Inheritance |
|
Assignment
5 due |
|
10 |
3/30 |
Graphical
User Interfaces Exam 2
|
|
Exam
2 |
|
11 |
4/6 |
Go
over exam 2 Graphical
User Interfaces (events) Lab
7: GUIs |
|
Assignment
6 due |
|
12 |
4/13 |
GUIs in applications, layouts Lab 8: GUIs |
|
|
|
13 |
4/20 |
Exceptions Lab
9: Exceptions |
|
Assignment
7 due |
|
14 |
4/27 |
Files Lab 10: Files |
|
Assignment
8 due |
|
15 |
5/4 |
Final Exam |
|
Final
Exam |
While every attempt will be made to keep this schedule, deviations may occur.