COSC 20203-50       Techniques in Programming           Spring 2008

          

                    Instructor:   Dr. Antonio Sanchez

                          Meets:   MWF from 13:00-13:50

                            Office:   TTC 332

                            Phone:   257-7057 

               Office Hours:   10:00-11:00, Mon & Wed & Fri (and other times)

                                             13:00-14:00,  Tue & Thur (and other times)

 

                      Textbook:   Big Java by Cay Horstmann 3ed.

 

                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–12 of Big Java 3ed Edition)

 

¥ write sophisticated Java applications

á    using Vectors/ArrayLists, Hashtables/Maps, and arrays appropriately

á    using Files and Streams

á    using recursion

á    using Threads

á    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

 (Chapters 15–19, 23, 24, L, and M of Big Java 3ed Edition)

 

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-50 Techniques in Programming   

 

      Weekly Schedule: Spring 2008

 

Week

Date

Lec #

Lecture Topic

Exam/Lab

 

Wed - Jan 14

1

Java Review

 

 

Wed - Jan 16

2

Java Review

 

#1

Fri - Jan 18

3

Java Doc

 

#2

Mon - Jan 22

 

No Class

 

Wed - Jan 23

4

 Internal Representation

Lab 1 Assign

Fri - Jan 26

 

No class

 

#3

Mon - Jan 28

5

Exceptions

 

Wed - Jan 30

6

Review

 

Fri - Feb 01

7

File and Streams

 

#4

Mon - Feb 04

8

Stream IO

Lab 1 DUE

Wed - Feb 06

9

Tokenizer

 

Fri - Feb 08

10

Random Objects

Lab 2 Assign

#5

Mon - Feb 11

11

Vector

 

Wed - Feb 13

12

Hash Table

 

Fri - Feb 15

13

Encryption

 

#6

Mon - Feb 18

14

Cyphers

 

Wed - Feb 20

15

EXAM 1

 

Fri - Feb 22

16

Interfaces

 

#7

Mon - Feb 25

17

Cloning

 

Wed - Feb 27

18

Software Contracts

Lab 2 DUE

Fri - Feb 29

19

Software life Cycle

 

#8

Mon - Mar 03

20

Recursion

Lab 3 Assign

Wed - Mar 05

21

Simple stacks

 

Fri - Mar 07

22

Recursion Efficiency

 

#9

Mon - Mar 10

 

Spring Break

 

 

Wed - Mar 12

 

NO CLASSES

 

 

Fri - Mar 14

 

Spring Break

 

#10

Mon - Mar 17

23

Mutual or circular

 

 

Wed - Mar 19

24

Review

 

 

Fri - Mar 21

 

No Class

 

#11

Mon - Mar 24

25

Searching

 

 

Wed - Mar 26

26

Hard problems

Lab 3 DUE

 

Fri - Mar 28

27

Enumeration

Lab 4 Assign

#12

Mon - Mar 31

28

Rational Problems

 

 

Wed - Apr 02

29

EXAM 2

 

 

Fri - Apr 04

30

Threads & Multitasking

 

#13

Mon - Apr 07

31

Running Threads

 

 

Wed - Apr 09

32

Terminating

 

 

Fri - Apr 11

33

Race Conditions

Lab 4 DUE

#14

Mon - Apr 14

34

Synchronization

Lab 5 Assign

 

Wed - Apr 16

35

Review

 

 

Fri - Apr 18

36

Networking

 

#15

Mon - Apr 21

37

Internet Protocol

 

Wed - Apr 23

38

Application level<