4002-219
Programming for Information Technology
III
Fall (021)
Quarter Credit
Hours: 4
Prerequisites: 4002-217
and 4002-218
Instructor: Dr. Jai W. Kang
Office: Bldg 70-2289
Phone: 475-5362
Email: jwk@it.rit.edu
Office Hours: TR 3-5PM
Web: www.jkang.com
Overview:
This is the third
course in the introductory programming sequence required for all students
majoring in Information Technology.
Topics include advanced user interface concepts, data structures for
programming, programming utilities and reusability, introductory project design
and management concepts and other concepts as time permits. Emphasis is placed on the development of
problem-solving skills. Large
programming assignments are required
Class 5, Lab 0,
Credit 4
·
To provide students with an introduction to the advanced
concepts and skills needed to support the programming requirements of up-stream
courses in the IT curriculum.
·
To encourage students to continue to develop their problem
solving skills
·
To encourage students to begin building a “logical toolkit”
of algorithms and data structures
·
To enable students to understand the benefits of reusability
·
To assist students to understand program design and
construction
By the end of this course a
student should have demonstrated:
1. The ability to implement one or more moderately large
programming projects individually and/or in a team
2. an understanding of advanced GUI interface concepts through
completing one or more programming projects
3. proficiency with constructing and reusing objects
4. a working knowledge of the basic data structures used in
computer programming
5. their ability to fully implement data structures as well as
to use language-supplied utility classes
6. a conceptual understanding of the details of data
representation
7. an understanding of and ability to utilize and to create
application programming interfaces (APIs) and Java interfaces
8. an understanding of and ability to use threads
9. an understanding of and ability to use standard programming
design patterns in problem analysis
10. an understanding of basic project design and management
concepts
11. an understanding of basic network programming and network
concepts as they relate to Java.
“Big
Java” by Cay Horstmann, published by John Wiley & Sons, Inc., 2002. ISBN
0-471-40248-6
Note: This is the NOT the same text that was used
last year
Lecture preps will
be made available to you as part of the course materials stored in FirstClass. However,
they will not be collected and graded. By this time in your college career you
should recognize the advantages of reading the material prior to class.
A certain amount of
in-class work will be given during most class sessions. Like the lecture preps, these will not be
collected and graded. However, failure to do the in class exercises will affect
you when you take the practicum and do the projects required for this course.
Bring an IBM formatted 3 ˝’’
diskette or 100MB Zip disk with you to every class to save your work. Make sure your name and
section # are clearly marked on your disk.
Programming assignments will be
provided as part of this course. This work is done outside of the usual class
hours. In general, these programs will be more complicated and larger than the
in-class exercises. Homework assignments will be due according to the schedule
(see below) with the exact date and time they must be submitted specified by
the instructor. Homework assignments may
not be submitted late.
There will be one
in-class practicum given during the quarter to assess the student’s programming
skills during live programming sessions in front of the course
instructor(s). Notes, textbooks and calculators
will not be allowed during these times (unless special accommodations permit
them).
Missing the
practicum will result in a grade of zero
unless the student contacts the instructor at least 24 hours in advance of that
practicum. If student's reason is valid (documentation may be required), the
student will be allowed to take a different make-up practicum at a later time.
Two examinations will be given during class periods. The exams will be based on the material in the units of the preceding weeks and involve writing some code. The exams are closed book, closed notes. No calculators are allowed. Access to the Java docs stored on the lab machines will be allowed.
Missing an exam will result in a
grade of zero for that exam unless the
student contacts the instructor at least 24 hours in advance of that exam. If
student's reason is valid (documentation may be required), the student will be
allowed to take the exam at another time.
A final project will be part of this course. Your
final project will be the creation of a virtual robot using the RoboCode
package developed by IBM’s Alphaworks group.
This will be a group effort, with small groups
performing the design, implementation and testing of the necessary code. Design
documentation and a users manual will be required deliverables, in addition to
fully commented source code and test cases.
In addition to the actual coding, you will be
expected to deliver a presentation to the class, where your group will discuss your
design, implementation and testing processes. You will also cover lessons
learned while doing this project. This presentation will be in place of a final
exam. All group members are expected to participate in the presentation.
The weighting on the different parts of the course, explained above, is summarized in the table below:
Component |
Percentage |
Lecture Preps |
0% |
In-Class Exercises |
0% |
Homework |
15% |
In-Class Practical |
25% |
Exam 1 |
20% |
Exam 2 |
20% |
Final Project |
10% |
Final Presentation |
10% |
The following scale is used for grading:
Average |
Grade |
90.0% to 100% |
A |
80.0% to 89.9% |
B |
70.0% to 79.9% |
C |
60.0% to 69.9% |
D |
Less than 60% |
F |
Academic Honesty:
Please
read over the attached page entitled “Academic Dishonesty Policy Department
Information Technology”. Unless
otherwise stated in the assignment requirements, all in-class and homework
assignments are individual projects. Any group efforts will be treated as
collusion and will be handled as stated in the department’s policy. [Exception:
the final project is expected to be a group effort.]
Office Hours:
Office hours provide the opportunity to get questions answered or for additional help with programming problems. My office hours are TR 3-5PM.
Tentative
Course Schedule: (May be changed as required by the instructor)
Wk |
Day |
Topic |
Reading |
Other |
1 |
1 |
Course Introduction, 218 Review |
Review 218 notes |
HW#1 out |
|
2 |
Inner Classes |
Pg 376-386 |
|
2 |
1 |
GUI |
Ch 10 & 12 |
|
|
2 |
Applet |
Ch 4 |
HW#1 due, HW#2 out |
3 |
1 |
Threads |
Ch 21 |
|
|
2 |
Threads |
Ch 21 |
|
4 |
1 |
Threads |
Ch 21 |
HW#2 due, HW#3 out |
|
2 |
Exam #1 |
|
|
5 |
1 |
Network Programming |
Ch 22 |
|
|
2 |
Network Programming |
Ch 22 |
|
6 |
1 |
Practicum #1 |
|
|
|
2 |
Data Structures & Algorithms |
Ch 19-20 |
HW#3 due HW#4 out |
7 |
1 |
Collection Framework |
Ch 19-20 |
|
|
2 |
Specialized IO |
Pg 595-614 |
|
8 |
1 |
Unicode & Internationalization |
Liang Ch 12 |
EXAM #2 HW#4 due HW#5 out |
|
2 |
Sorting/Searching/Comparators |
Ch 18 |
|
9 |
1 |
Project Planning/ design final
project |
|
|
|
2 |
Testing Strategies/ Work on final
project |
|
HW#5 due |
10 |
1 |
Presentation Skills/ Work on final
project |
|
|
|
2 |
Complete/Test final project |
|
|
11 |
? |
Final/Presentation |
|
|
RIT’s Academic Dishonesty
Policy
Plagiarism[1],
and other academic actions contrary to RIT’s code of conduct and the IT
Academic Dishonesty Policy will be addressed in accordance with these policies.
Department of Information Technology
ACADEMIC DISHONESTY POLICY
The following statement is
the Policy on Academic Dishonesty for the Department of Information Technology:
The
Department of Information Technology does not condone any form of academic
dishonesty. Any act of improperly representing another person’s work as one’s
own (or allowing someone else to represent your work as their own) is construed
as an act of academic dishonesty. These acts include, but are not limited to, plagiarism
in any form or use of information and materials not authorized by the
instructor during an examination or for any assignment.
If
a faculty member judges a student to be guilty of any form of academic
dishonesty, the student will receive a FAILING
GRADE FOR THE COURSE. Academic dishonesty involving the abuse of RIT
computing facilities may result in the pursuit of more severe action.
If
the student believes the action by the instructor to be incorrect or the
penalty too severe, the faculty member will arrange to meet jointly with the
student and with the faculty member’s immediate supervisor. If the matter
cannot be resolved at this level, an appeal may be made to the Academic Conduct
Committee of the college in which the course is offered.
If
the faculty member or the faculty member’s immediate supervisor feels that the
alleged misconduct warrants more severe action than failure in the course, the
case may be referred to the Academic Conduct Committee. The Academic Conduct
Committee can recommend further action to the dean of the college including
academic suspension or dismissal from the Institute.
The following definitions
will be used to clarify and explain unacceptable conduct. This is not
intended to be an exhaustive list of specific actions but a reasonable
description to guide one’s actions.
CHEATING
includes knowingly using, buying, stealing, transporting or soliciting in whole
or parts the contents of an administered/unadministered test, test key,
homework solution, paper, project, software project or computer program, or any
other assignment. It also includes using, accessing, altering, or gaining entry
to information held in a computer account or disk owned by another.
COLLUSION
means the unauthorized collaboration with another person in preparing written
work or computer work (including electronic media) offered for credit. Final
work submitted by a student must be substantially the work of that student.
Collaboration on an assignment is expressly forbidden unless it is explicitly
designated as a group project.
When there is any doubt, a
student should consult the instructor (NOT ANOTHER STUDENT) as to whether some
action is considered cheating and/or collusion.
Whenever there is any question as to whether a particular action is considered academic dishonesty, the instructor should be consulted prior to commencing that action.