SYLLABUS

ICS 141:  PROGRAMMING WITH OBJECTS

Spring 2004

4 Semester Credits


 

 

Class Hours:     Tuesdays, 6:00 - 9:20

                        St. Paul Campus, SJH L7

                        Jan. 13 – May, 4, 2004

 

Instructor:         Sue Fitzgerald

Metropolitan State University

                        730 Hennepin Ave., Room 301D (through 301)

                        Minneapolis, MN  55403-1897

 

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.    2:00-5:00         Mpls 301

                        Tues.    1:00-4:00         Mpls 301

                        Tues.    5:00-6:00         SJH L9 (lab)

Wed.    2:00-4:00         Mpls 301

Wed.    5:00-6:00         Mpls 301

 

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 Metro State computer labs.  The TextPad text editor is also available.

 

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:  Metro State is privileged to serve students from many different nations, racial, ethnic and religious backgrounds.  Students, staff and faculty practice a variety of lifestyles and come from many walks of life.  We expect our classrooms to be safe havens where the opinions, practices and beliefs of others are treated respectfully.  If you feel that you are not being treated appropriately by others in the class, I ask that you bring this to my attention so that the issues can be addressed.  If I offend you, I ask that you approach me to share your concern so that we can learn from each other how to live together with respect and honor.

 

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 Reading

Due Dates, Exams

1

1/13

Syllabus, review previous chapters.

Lab 1: Review of simple program

Ch. 5.1, 5.2

 

2

1/20

Arrays

Lab 2: Arrays

Ch. 5.1-5.3

Assignment 1 due

3

1/27

Arrays; arrays of objects

Ch. 5.4, 5.5

Assignment 2 due

4

2/3

Multidimensional arrays; Vectors, Wrapper classes

Lab 3: Arrays

Ch. 5.6, 5.7, 5.8

Assignment 3 due

5

2/10

Inheritance

Exam 1

Ch. 6.1

 

Exam 1

6

2/17

Go over exam 1

Inheritance

Lab 4: Inheritance

Ch. 6.1

 

7

2/24

Inheritance: operations on a hierarchy

Lab 5: Inheritance

Ch. 6.1, 6.2

Assignment 4 due

 

3/2

NO CLASS – CAUCUS

 

 

 

3/9

NO CLASS – CAUCUS

 

 

8

3/16

Inheritance; operations on a hierarchy, Polymorphism, Interfaces

Ch. 6.2-6.4

 

9

3/23

Interfaces, Abstract classes, packages

Lab 6: Inheritance

Ch. 6.3-6.5, 6.7

Assignment 5 due

 

10

3/30

Graphical User Interfaces

Exam 2

Ch. 7.1, 7.2

Exam 2

11

4/6

Go over exam 2

Graphical User Interfaces (events)

Lab 7: GUIs

Ch. 7.3

Assignment 6 due

 

12

4/13

GUIs in applications, layouts

Lab 8: GUIs

Ch. 7.4-7.7

 

13

4/20

Exceptions

Lab 9: Exceptions

Ch. 8.1

Assignment 7 due

 

14

4/27

Files

Lab 10: Files

Ch. 8.2, 8.3

Assignment 8 due

15

5/4

Final Exam

 

Final Exam

 

While every attempt will be made to keep this schedule, deviations may occur.