COSC 20203-50       Techniques in Programming           Spring 2009

          

                    Instructor:   Dr. Antonio Sanchez

                          Meets:  Tuesday and Thursday 11:00-12:20

                            Office:   TTC 332

                            Phone:   257-7057 

               Office Hours:   0:00-11:00, 12:00-13:00 Mon & Wed & Fri

                                         

 

                      Textbook:   Head First Java by Kathy Sierra and Bert Bates 2nd Ed

                Prerequisite:   COSC 10403 Introduction to Programming

 

Before attempting the course,

students must be able to:

After completing the course,

students will be able to:

 

write Java applets using the AWT classes and the 1.1 event model

 

 (Chapters 1–5 of Head First Java )

 

write sophisticated Java applications

1.     using Vectors/ArrayLists, Hashtables/Maps, and arrays appropriately

2.     using Files and Streams

3.     using recursion

4.     using Threads

5.     using network protocols

develop software having a user-friendly interface

demonstrate an understanding of the overall software design and development process

explain binary representation, two's complement representation, and ASCII/Unicode encoding

compare elementary data structures

discuss application of the ACM Code of Ethics

                                                

 

Course Topics:


Internal representation

Exceptions and I/O classes

Collection classes

Cloning

Recursion

Threads and client-server applications

Programming style

Debugging and testing techniques

Linear data structures

Issues in computer ethics


 

Grading:

Exams (2)                                                       20% each

Programming Assignments (5)                    8% each

Final Exam (Comprehensive)                      20%

 

 

 

 

 

 

COSC    20203    Techniques      Weekly Schedule: Spring 2009

Week

Date

Lec #

Lecture Topic

Lab/Exam

 

#1

Tue - Jan 13

1

Java Review

 

 

 

Thur - Jan 15

1

Applications

 

 

Tue - Jan 20

 

Inheritance

 

 

#2

Thur - Jan 22

1

 

 

 

#3

Tue - Jan 27

4

 Internal Representation

Lab 1 Assignment

 

Thur - Jan 29

5

Exceptions

 

#4

Tue - Feb 03

6

File and Streams

 

 

Thur - Feb 05

7

Stream IO

 

#5

Tue - Feb 10

8

Tokenizer

Lab 1 due

 

Thur - Feb 12

9

Random Objects

 

#6

Tue - Feb 17

10

Vector

Lab 2 Assignment

 

Thur - Feb 19

11

Hash Table

 

#7

Tue - Feb 24

12

Encryption

 

 

Thur - Feb 26

13

Cyphers

 

#8

Tue - Mar 03

14

Review

 

 

Thur - Mar 05

15

EXAM 1

 

 

#9

Tue - Mar 03

16

 

 

 

Thur - Mar 05

17

Cloning

 

 

#10

Tue - Mar 10

18

Recursion

Lab 2 due

 

Thur - Mar 12

19

Hard problems

 

#11

Tue - Mar 17

 

Spring Break

 

 

Thur - Mar 19

 

 

 

#12

Tue - Mar 24

20

Rational Numbers

Lab3 Asignment

 

Thur - Mar 26

21

Interfaces

 

#13

Tue - Mar 31

22

Review

Lab 4/5 Assignment

 

Thur - Apr 2

23

Networking

 

#14

Tue - Apr 7

24

Threads

Lab 3 due

 

Thur - Apr 9

25

EXAM 2

 

#15

Tue - Apr 14

26

Servers

Lab 4 due

 

Thur - Apr 16

27

Turnin Server

 

#16

Tue - Apr 21

28

Object IO

 

 

Thur - Apr 23

29

Review

 

#16

Tue -Apr 28

28

Review

Lab 5 due

 

 

 

 

 

Final

 

 

Thur - May 7

COSC 20203  Section 50 (11:30-2:00)


Attendance

 

You will be held responsible for all material presented in class. If you choose to miss class, you should be aware that this could adversely affect your performance on tests. It is your responsibility to obtain all materials missed and to make up all lectures, discussions, etc. without the aid of the instructor.

 

The seemingly innocuous behavior of being consistently tardy is not so innocent. It is quite understandable that once in a while a person will arrive late to class. However, there is no excuse for consistently arriving late. It is not fair to your fellow classmates or your instructor since such behavior disrupts class. Inevitably, the individuals who are consistently tardy are the ones who ask for material to be repeated. Your instructor will assume that consistently tardy arrival indicates a total lack of motivation or interest in the material.

 

 

 

Exams

 

Exams must be taken at the scheduled times. Make-up exams (which may be oral) will be given only in the event of university approved absence or as a result of MAJOR difficulties which have been approved by the Dean of Students. Reasons such as weddings, car trouble, illness, etc. will not be accepted unless approved by the Dean of Students.

 

Final Exam

 

The final exam will be given at the scheduled time. ALL STUDENTS MUST TAKE THE FINAL AT THE SCHEDULED TIME (arrange your travel plans accordingly).

 

Labs

 

Programming assignments will be turned in electronically. An assignment must be submitted before midnight of the day the lab is due; otherwise it will be considered late. A penalty of 10% per day (including weekends) will be assessed for late programs.

 

If you want help on a programming assignment, you are expected to have made a legitimate effort to write the program on your own prior to seeking help.

 

The computer and/or network is occasionally down due to failures, routine maintenance, upgrades, etc. You should allow sufficient time for such contingencies and plan on getting your lab assignments completed in advance of the due date. A similar caveat applies to such difficulties as slow response times, all of the computers being in use, being unable to reach your instructor to ask questions about an assignment, etc.

 

You should keep all graded and returned assignments until you have received your final course grade in case a question arises about an assignments grade.

 

 

 

Plagiarism

 

The definitions and possible sanctions for plagiarism and other forms of academic misconduct are described in the section Academic Conduct Policy on pages 49–50 of the TCU Undergraduate Studies Bulletin. You are encouraged to seek the help of others (including classmates) to understand how to use the computer, the principles of programming, or the intent of an assignment. You may discuss the algorithms and general programming techniques used to solve a problem; you may give and receive aid in debugging; you may discuss and compare program output. However, you may NOT use, even temporarily, the source code of another personÕs program while developing your own.

 

 

Instructor Office Hours

 

I will make every effort to be available during the hours listed; however, committee meetings and other obligations may occasionally take precedence. Thus, if you wish to ensure that I will be available at a specific time, please call the office for an appointment. Appointments can be made for times other than those listed, and you are welcome to drop by at other times.

 

 

Software

 

Any development environment except MS Visual J++ can be used. Eclipse is an open-source effort fostered by IBM and it is used in the ACM Programming Contest. Other freeware products include NetBeans and JCreator LE.

 

 

Disclaimer

 

The policies, schedules, etc. are subject to change at the instructorÕs discretion.