ISMG 3200 - Data Structures with Java
Fall 2004
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
Online Course Web Site: http://dawngregg.com/ucd/ismg3200
Course Description
Provides an understanding of algorithm development, programming, computer
concepts, and the design and application of data and file structures. It
includes an understanding of the logical and physical structure of both
programs and data. The "JAVA" programming language will be used as the vehicle
for investigating a variety of data structure topics.
Topics include: data structures and representation; characters, records,
files, multimedia; precision of data; information representation, organization
and storage; algorithm development; object representation compared to
conventional data flow notation; programming control structures; program
correctness, verification, and validation; file structures and representation.
Prerequisites
This course requires some prior programming experience.
ISMG 2200 (or equivalent)
Required Materials
|
Java: An Introduction to Computer Science & Programming,
3/e
Walter Savitch
ISBN 0-13-101378-5 |
|
Data Structures & Algorithms in Java
Robert Lafore
ISBN 0-672-32453-9 |
-
In addition, there are lecture notes
available. You will need to print them out, they will be helpful on the
exam!!!.
Software
- You will need a Java editor and compiler. There are multiple sources
for free Java compilers. See software.html
for download sites and preliminary instructions on how to use them.
Computer Lab
Methods
-
Be Prepared:It is assumed that you will read the assigned chapters each
week.
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.
-
Cheating:
All quizzes, tests and programs are to be done individually. Academic Dishonesty is not tolerated and will result in a zero on the assignment,
and a one letter grade reduction in the course and
reporting of the incident to the College's Internal Affairs Committee. The
following are considered Academic Dishonesty:
-
Copying the
work of current or past ISMG 3200 students
-
Working
collaboratively on individual assignments except to provide debugging
assistance
- Providing
assignment solutions (total or partial) to any other ISMG 3200 student!
- Copying the code or design of a past or current ISMG 3200 project
- Copying the code or design of internet sites or other sources without crediting the source
- Using a tutor or any other person to write all or part of your code for
you.
I reserve the right to ask any student to explain the logic used in their
programs purpose of each line of code it their assignments. If a student
can not explain what they have done, it will be assumed that they did not do
their assignment themselves.
Cheating on an exam will result in an automatic F
for the course! The penalty for
subsequent academic dishonesty incidents can involve removal from the IS program
and/or from CU Denver.
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!
- 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 checked for completeness only. It is important for students to try and hand in
every homework assignment - even if it does not work 100% correctly!
- Programming Project: There is a semester long
Programming Project that will be completed in three major sections. This
is a larger scale program designed to resemble real
programs that might be used in a business setting. Each programming project
segment
generally requires 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.
Program Code: 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).
All project segments build on prior
projects so skipping a project will make it difficult to complete subsequent
projects. 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.
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.
Program Quizzes: Following the
completion of each project you will be asked to complete a short quiz (ten
questions) about what you did in the project
. The
results of the quiz will be multiplied by you grade on the project to obtain
your final project grade. The quiz is designed so that if you code your
project yourself you should be able to get 100% on the quiz.
- 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.
You will be allowed to bring one page of notes into the exam (8 1/2" by 11)
written on both sides of the paper. No other notes may be used during the exam
and 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 classwork & homework
problems, three individual projects, a midterm and a final exam. Weightings
will be applied as follows:
A. Class Participation |
10% |
B. Homework |
10% |
C: Programming Projects (3) |
30% |
D: Midterm Exam |
25% |
E: Final Exam |
25% |
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 class should generally fall within the
following range: 2.3 (C+) to 3.0 (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.