Course
Syllabus
COCS4301 (Programming
for Graduate Students)
Spring 2013
Instructor:
Dr. Hikyoo Koh, Professor of
CS
Office:
MA68
Phone:
880-8779 (Cell Phone: 8082554901, you can call any time, day and
night)
E-mail:
hkoh@lamar.edu (or HKPK32@Yahoo.Com)
Web:
galaxy.cs.lamar.edu/~hkoh
Office
hours:
MW:
14:00 --- 15:30
TTh:
15:45 --- 16:45
Sat:
11:00 --- 14:00 (About every other Saturday, with appointments
preferred)
Required
textbook:
Absolute
Java, 5/E, Walter Savitch, Pearson,
2013
Other
useful resources:
1.
Java
Programming: A Comprehensive Introduction, by Herbert Schildt and Dale Skrien, McGraw
Hill, 2013.
2.
Introduction
to UNIX, 2/E, by David Schwartz, Prentice Hall, 2006.
3.
UNIX
Unbounded: A Beginning Approach, 5/E, Amir Afzal,
Prentice Hall, 2008.
Catalog
Description:
Algorithms,
pseudocode, structured techniques of problem solving
and program design using Java. Data
Sorting and searching techniques. Object-oriented
design.
Learning
Outcomes:
By completing this course, students will
be able to
1.
perform
some basic UNIX functions in (a) developing/running Java programs, (b) file
creation/editing and other managements and (c) communications and file
transfer.
2.
design
and run java programs based on object-oriented approach utilizing Java packages
and user defined classes and their objects and
methods.
3.
gain
good understanding of program design skills including recursion, inheritance and
exception handling.
4.
gain
practical understanding of some basic data structures including stacks, queues,
dynamic arrays, binary trees and linked lists.
5.
design
some graphical user interfaces using components, events and
listeners.
Topics to
cover:
1.
Introduction to basic language topics
a.
Language Primitive Data types
b.
Control structures
c.
Input/output
d.
Functions
e.
Introduction to Classes and objects
2.
Introduction to Linux/Unix environment
a.
Compilation
b.
Editing
c.
Execution
d.
Submission
e.
File System and movement
f.
Other Linux topics as time allows
3.
Some basic programming techniques.
a.
Constructors and Copy constructors
b.
Shallow and deep copying
c.
public versus private
d.
Polymorphism
e.
Exception handling
f.
Debugging techniques
4.
Aggregate processing
a.
Arrays (Including dynamic arrays)
b.
Simple searching and sorting
c.
Strings and string processing
d.
Multi-dimensional
e.
Array based DS using classes
Test-1
5.
Recursion
a.
Direct
b.
Mutual
c.
Characteristics of a valid recursive algorithm
6.
Some advanced programming techniques.
a.
Inheritance
b.
Interfaces
c.
Generics
d.
Overloading by refinement
7.
Binary trees and tree algorithms
a.
BST, insertion and removal
b.
Huffman Code
c.
Tree traversals
d.
Heaps and heap sort
Test-2
8.
Advanced Topics
a.
Multithreading
Programming
b.
Applet
Applications
c.
Javascript
Applications
d.
UML
and Design Pattern
Grading
methods:
2 tests (OPEN):
200
points
Final Exam (OPEN): 200
points
Occasional Quizzes:
50
points
10 or more programs: 200
points
{ Programs include:
1.
Screen
input/output and Loop iteration counting
2.
Sorting
(Select and Quick)
3.
Character methods,
Palindrome testing and File Inputs
4.
Class
Matrix design, Determinant and Inverse calculation and File
Outputs
5.
Linked
list operations such as Insertion, Deletion and Copying
6.
Binary
Search Tree methods such as Insertion, Deletion, Copying and Locating a target element.
7.
Stack
and Postfix evaluation
8. MultiThreading Application
9.
Applet
and Animation
10. Javascript
for Form elements and Event Handling
}
--------------------------------------------------------------------
TOTAL MAX:
650 points
If
your class average
is:
88% or higher:
A
Else 78% or higher:
B
Else 68% or higher:
C
Else:
D
Online
Course Evaluations.
Lamar University encourages students to evaluate online the courses they take
and the instruction they receive via a contract with a national company,
OnlineCourseEvaluations.com.
The evaluation instruments themselves were developed by LU faculty and administrators.
Evaluation windows for fall and spring courses open two weeks before the final
examination period and close at the end of the last class day.
The student is notified of the specific dates at his/her myLAMAR e-mail address.
If course evaluations are given during summers, mini semesters, and other
compressed terms, evaluation windows are extended past the last class meeting.
Evaluations are completely anonymous, and neither LU faculty nor LU administrators
have the ability to determine the name of the student who completed a specific
evaluation form.
The primary purpose of course evaluation is the improvement of instruction.
That is, after the semester has ended and grades have been awarded, I am able to access
the results of my course evaluations, to include all student comments.
I analyze the data and read the comments, and often use student observations and
suggestions to make changes in course content and delivery.
The results of course evaluations are also used by chairs and deans as one factor
in decisions involving merit pay, tenure, and promotion.
Both the administration and I take your input via course evaluations very seriously,
and I encourage you to participate in this process.
Any questions or comments you have about the process should be addressed to
Dr. Tom Matthews, University Assessment Coordinator, at 409-880-2385 or
tom.matthews@lamar.edu. Thank you.
Students
with Disabilities:
It is the policy of Lamar University to accommodate students with disabilities pursuant to federal and state laws and the University’s commitment to equal educational opportunities.
This course complies with the University Policies on Disability, Accommodations and Academic
Honesty as published in the Student Handbook and also in the Computer Science Department
Policy (on Academic Honesty). Student needing accommodations must first have them approved
through the Office of Services for Students with Disabilities, Communication Building Room 105, phone number 409-8808347.
Please notify the instructor during the first week of class regarding accommodations needed
for the class.
University
Policy on Academic Honesty:
The University expects all students to engage in all academic pursuits in a manner that is above reproach.
“Cheating” include:
· Copying from another student’s paper, report, computer files, data listings, and/or programs.
· Using (during an exam) materials not authorized by the instructor giving the exam.
· Collaboration, without authorizations, with another person during an examination or in preparing academic work.
· Knowingly, and without authorization, using, buying, selling, stealing, transporting, soliciting, copying, or possessing in whole part, the contents of an unadministered test.
· In the taking of an examination or in the preparation of academic work to be submitted for academic credit, (1) Substituting for another student, (2) permitting any other person, (3) or otherwise assisting any other person to substitute for oneself or another student.
· Bribing another person to obtain an unadministered exam or information about an unadministered exam.
· Purchasing (or acquiring) and submitting as one’s own work any research paper or other writing assignment prepared by an individual or firm. This does not apply to the typing of the rough and/or final versions fo an assignment by a professional typist.
“Plagiarism”: The appropriation of another’s work or idea and the unacknowledged incorporation of that work or idea into one’s own work offered for credit.
“Collusion”: The unauthorized collaboration with another person in preparing work offered for credit.
Course
Attendance Policy:
It is the student’s responsibility to make sure that you are officially enrolled in this course. If at any point in time, you decide to drop the class, it is your responsibility to officially drop. The instructor will do everything possible to help you. Any student who stops attending the class and does not officially drop the course will be given an “F” as the final grade.
Regular class attendance is critical to your effective learning. Hence each time you miss the class without the instructor’s authorization, your final grade will be lowered by one letter grade.
Please view the Lamar University web page for dates for drops and withdrawals.
Student
Services:
Student services information can be found at: students.lamar.edu.
NOTE:
1. The first violation of the above specified University Policy on Academic Honesty will get a grade of 0 and the second violation will get a final grade of F.
2. Furthermore, everything you turn in to the instructor to be graded is expected to be your own work at least for the most part.
In particular, NO solution programs available on a computer locally or through the INTERNET should be copied without the instructor's prior approval.
3. All programs will be accepted only in class and only when they are due. No sooner or no later.
4. It is to your advantage if you highlight output statements such as Java System.out.print() or System.out.println() of your programs to clearly indicate where in your program outputs are being actually done.
5. A program is normally due in a week and half after it is assigned.
6. Every four unexcused absences from class will lower your final grade by one letter grade.
7. Each program must have a comment at the VERY beginning of the program.
Without this comment, a program will not be graded at all.
This comment must include:
a. Your full name
b. Course Number and program number
c. Program title
d. Your own assessment of the program that includes, among others:
i. whether or not the program produces expected correct outputs.
ii. if not, why you think the program is not producing the expected
correct outputs.
iii. if not, whether or not the program was compiled at all.
8. If the language allows, the main program/function/method must appear at the very end of the program.