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.