ISMG 6140 - Distributed Object System Development
Fall 2005
Instructor: Dr. Dawn Gregg
Office Location: 1380 Lawrence St., Suite 390, Office P
Office Phone: (303) 315-8449
Email:
dawn.gregg@ucdenver.edu
Home Page:
http://dawngregg.com/ucd
Course Description
This course is designed to provide a thorough introduction to
distributed object systems engineering. The object-oriented programming language, Java, is
studied as a means of implementing distributed systems. The fundamental concepts,
principles and methods for business object system implementation are covered. Coverage
includes distributed object architectures and standards: JDBC (Java Data Base
Connectivity), Java Servlets, Java Server Pages, Enterprise Java Beans and Java
Web Services.
Students are required to apply this knowledge through a series of programming
exercises. These exercises involves computer programming, system installation
and server administration.
Course Objectives
By the end of this course the student should:
- Have the
ability to program in the Java programming language
- Be able to problem solve and develop program logic
- Understand of how distributed systems differ from traditional
non-distributed systems
- Understand how distributed systems are evolving and how that may change the
way business is conducted in the future.
Prerequisites
This course requires knowledge of C# and relational database concepts.ISMG
6020 and ISMG 6080, or the equivalent.
Required Materials
|
Java for Programmers
Douglas Lyon
© 2004
ISBN: 0-13-047869-5
Includes most Java Programming topics |
|
Web Services a Technical Introduction
Deitel, Deitel, DuWaldt, and Trees
© 2003
ISBN: 0-13-046135-0
This book shows how to design and implement distributed Web Services based
on XML and SOAP. |
-
In addition, there are lecture notes
available. You will need to print them out and bring them to class.
Software
- You need a Java Software package that includes the Enterprise Edition of
Java.
-
software.html contains details on the different sources for software as
well download locations, installation instructions and how to use each
platform.
Computer Lab
Methods
-
Be Prepared: It is assumed that you
will read the assigned chapters before each class. The topics covered in this
course are difficult to master without substantial amount of effort. You will
need a great deal of time for experimenting and practicing code. Read the manual
for the Java software you are using. Your computer and compiler are good
teachers. Be prepared to try out things by yourself. Use the debugger, dig into
texts, try on-line help.
- Late work: Projects and
Assignments will not be accepted late. There will be group discussions regarding
the assignments immediately after they are due and thus it is imperative that
work be completed
ON TIME. Assignments received after the
due date will receive a 0 - no exceptions.
Email: My courses can be difficult and often students get to places in their
assignments where they do not know what to do next. I encourage you to ask
questions in class, office hours and via email. Always include the course
number (ISMG 6140) and your name in the email.
When asking a question via email please do the following:
- Clearly give me a specific question.
- If you have an error message(s) you do not understand put a copy of the
error message(s) in the email and attach your code so I can see where it occurs.
- If your code compiles but runs strangely describe the behavior and attach
your code (e.g. I input the id and then nothing happens)
- If you do not understand what is expected - explain what parts of the
assignment you do not understand.
- If you are having difficulty deciding how to approach a problem - describe
to me what you think you should be doing and I will let you know what you have
right & where you might be wrong.
- DO NOT email me and say here is what I have so far what do I do next...
Typically, I allow students to turn in assignments via
email. However, it is the student's responsibility to ensure that I
actually received the assignment. I recommend that students CC themselves
when emailing an assignment to me so they know the email was actually sent.
In addition, if you do not receive a reply indicating that I received the
assignment within 24 hours the student will need to resend the assignment and/or
bring it in by hand. An assignment that is received late due to an email
problem is still considered late. Students need to get a reliable email
provider if they intend on submitting assignments via email.
- Getting behind: This is a
difficult course and requires a significant amount of work. DO NOT
GET BEHIND. New concepts build on earlier concepts and if you skip even
one week you can find yourself so far behind that you can not catch up with the
rest of the class. Students who miss class or skip assignments usually
wind up failing the course.
Course Assignments and Requirements
Learning to decompose a problem and develop a software solution involves
doing. Students cannot just listen to a lecture and know how to develop code. To
improve students’ ability to program I have numerous short assignments and
longer projects that give students practice developing and debugging business
programs. This is graded and returned as soon as possible so students know how
they are doing in my class. This section outlines in great detail and fully explains the course
assignments and requirements. I urge you to read it carefully and more
than once!
- Class Participation: To increase the effectiveness of my homework assignments and to allow students
to learn from one another I have students discuss their approach to the
project in small groups after the project has been completed. This requires
students think about the program individually to a point where they understand
how the problem can be solved but also allows students to discover alternative
ways of approaching problems that they might use in future assignments or in
industry. I feel this maximizes student understanding of the material and
provides for a more stimulating classroom environment.
- Homework: You will
complete several short homework assignments during the
course of the semester. The goal for homework is for
you to become comfortable with different programming concepts and become
familiar with how the Java development environment you are using works.
These assignments will be graded but the emphasis will be placed on effort as
opposed to perfection. It is important for students to try and hand in
every homework assignment - even if it does not work 100% correctly!
- Programming Projects:
Programming Projects are larger scale programs designed to resemble real
programs that might be used in a business setting. Programming projects
generally require a substantial amount of effort on the part of students (15 -
40 hours per project depending on the student) so please allow enough time to
complete the project before the due date. All projects build on prior
project so skipping a project will make it difficult to complete subsequent
projects.
Programming Projects will be evaluated based on three major criteria:
Compliance with project requirements, Quality of the source code and Program
performance. A grading sheet, distributed with each project’s
specifications, will specify the distribution of points for the project.
- Compliance: Projects will be evaluated to determine whether the
code meets all of the requirements set forth in the assignment. That
is - did the student write code to do all of the tasks the program needs to
perform?
- Quality: Program quality consists of several factors including:
- Program Flow: The program should be laid out logically such that
the order that the activities that are performed make sense in the context
of the problem.
- Variable Names: Use variable names with a clear meaning in the context of the program whenever possible.
- Format: Include adequate white-space in the program to improve readability. Insert blank lines to group sections of code. Use indentation to improve readability of control flow. Avoid confusing use of opening/closing braces.
- Internal Comments: Main program comments should describe overall purpose of the program. Function comments should describe their purpose and other pertinent information, if any. Compound statements (control flow) should be commented. Finally, see that commenting is not overdone and redundant.
- Modularity in Design: Avoid accomplishing too many tasks in one function; use a separate module. Also, avoid too many lines of code in a single module; create more modules. Design should facilitate individual module testing. Use automatic variables instead of external variables whenever possible.
- Solution Quality: The solution chosen should be clear and
concise. Is the solution chosen excellent, better than average,
average or worse than other ways of approaching the given problem?
- Performance: A good program needs to compile, run and produce the
correct output. A program that does not compile will receive a zero for
program performance. The program will be tested with a variety of
inputs. To maximize your score your program should not crash for any
expected input and it should produce the correct answer. The program
should also facilitate repeated use when used interactively and should allow easy exit. Requests for interactive input from the user should be clear. Incorrect user inputs should be captured and explained. Outputs should be well-formatted
(e.g. in a table with headings, labeled, or formatted as currency if
appropriate).
Projects are typically turned in in class on a floppy disk or submitted via
email. When submitting a project, it is the students responsibility to
submit all related classes necessary for the project (or else I can not test
your code!). If you are using a class provided by the instructor - and have
not changed it in any way, you are not required to include that file with your
project submission. Failure to include all the required .java
files will result in some loss of credit. Please see my email policies
if you are submitting a project via email.
If you are not satisfied with your grade, you may request a re-evaluation.
Do not change the relevant files on your disk. Re-evaluation may result in a
higher or a lower score for the Programming Project.
- Exams: There will be one
mid-term exam and one Final exam. The exam will be given in class only on the
mentioned dates. Question Formats include: fill-in-the-blank, short
essay questions, writing of algorithms,
filling key steps in incomplete algorithms, writing Java programs or functions.
The exams will be open book and open note, unless otherwise specified.
However, electronic devices of any kind (e.g. cell phones, calculators, laptop
computers, dictionaries etc.) must be turned off and properly stored during
the examination period.
Failure to attend your exam will result in a zero for the examination.
In cases of extremely extenuating circumstances (i.e. documented circumstances
clearly beyond the student's control) a make-up exam may be given.
However, the student must request the make-up exam in writing within 24 hours
of the original exam date.
If you know in advance that you will not be able to attend an exam because of
extenuating circumstances beyond your control you may request a make-up exam.
Requests for make-up exams must be made in writing at least 1 full week prior
to the class section in which the exam is scheduled to be given. If the
request for a make-up exam is approved, a make-up exam will then be scheduled.
24 hours prior to a scheduled make-up exam, it is the student's responsibility
to confirm via email that they still plan on attending the make-up exam at the
given date and time. If the student no longer needs to take a make-up
exam - the student must cancel the make-up exam via email 24 hours in advance
of the scheduled make-up exam time. Failure to attend a make-up exam
will result in a 0 for the exam.
Note: although you will not be permitted to keep any of the examinations, I
will bring the examinations to class period following the exams to allow
students to review their answers. I will also make exams available for
students to review during my office hours.
Grading
Final Grades for this class will be based on your performance in class work,
discussions & homework
problems, three individual projects, a midterm and a final exam. Weightings
will be applied as follows:
A: Class Participation & Homework |
30% |
B: Programming Projects |
30% |
C: Midterm Exam |
20% |
D: Final Exam |
20% |
Letter Grades are typically assigned as follows:
A |
(4.0)
|
93% - 100% |
superior/excellent |
A-
|
(3.7) |
90% - 92.999% |
|
B+ |
(3.3) |
87% - 89.999% |
|
B |
(3.0) |
83% - 86.999%
|
good/better than average |
B- |
(2.7) |
80% - 82.999% |
|
C+ |
(2.3) |
77% - 79.999% |
|
C |
(2.0) |
73% - 76.999% |
competent/average |
C- |
(1.7) |
70% - 72.999% |
|
D+ |
(1.3) |
67% - 69.999% |
|
D |
(1.0) |
63% - 66.999% |
minimum passing |
D- |
(0.7) |
60% - 62.999% |
|
F |
(0.0) |
0% - 59.999% |
failing |
Note: Grading policies of the CU Denver Business School state that the
average GPA across all students in a MS elective class should generally fall within the
following range: 3.3 to 3.6 (B+) on a 4.0 scale. Therefore, if
necessary, the ranges above will be modified so the average GPA across all
students in the class falls with in the recommended range.
Updated 7/2/2005
by Dawn G. Gregg