COMP 249 Programming Methodology

Fall 2008

Course Outline

 

Section

Instructor

Email

Office

 

Yuhong Yan

yuhong@cse.concordia.ca

EV 3.227

 

 

Course Objective

As a student, one rarely has the opportunity to write applications that exceed a few hundred lines of source code. In this context, it is entirely possible to produce acceptable software programs that require no more experience than that obtained in an introductory programming course. However, for those of you who will eventually move on to industrial programming environments, where code bases typically run into tens of thousands or even millions of lines, you will quickly see that “programming in the largeis an entirely dierent undertaking. Specifically, it is important -if not required -that your code be more modular, more robust, and more flexible. In COMP 249, we will begin to look at the concepts and elements that support more sophisticated software applications.

Background Knowledge You should have some previous experience of programming in Java such as that provided in COMP 248 or a similar course. In particular, you should have a good understanding of expressions, statements, methods, parameters, and arrays. You should also know the basic concepts of objects, classes, and packages.

Required Text Book

Absolute Java by Walter Savitch, 3rd Edition, Addison Wesley, 2008. (The same book you used in COMP 248.)

Computing Facilities

You will be using the same computing facilities and the same computer account you used in COMP 248. If you did not take COMP 248 or do not have a computer account, you can obtain it from the help desk at H–960.

If you have a computer at home and prefer to use it, you may do so, but be aware that your programs must compile and run with Java 6. Feel free to experiment with any of the open source/publicly available IDEs/editors listed on the home page.

Tutorials

The tutorials will reinforce the material seen during the lectures with examples and exercises. The quizzes will also be done during the tutorials and the assignments will be explained.

Web Page

Many resources for the course (slides, assignments, example programs, . . . ) will be available on the Moodle Web site available through the MyConcordia portal www.myconcordia.ca.

Evaluation Scheme

5 Assignments 15% (5 * 3%)
6
Quizzes 15% (best 5 out of 6, 5* 3%)
2
Midterm exams 30% (2*15%)
1 Final exam 40%

Notes:

In order to pass the course, you must achieve satisfactory performance in the non-assignment evaluation (i.e. quizzes, midterms and final).

 

I will do my best to ensure that final grades correspond in a predictable way to marks; however, there is no standard relationship between percentages and letter grades assigned.

 

Although I encourage discussion of the assignment questions among students, you should be aware of the University regulations concerning plagiarism described in 16.3.14 of the Undergraduate Calendar. In cases where cheating or plagiarism is suspected, the case will be forwarded directly to the appropriate university oce for consideration.

 

 

Tentative Schedule

Day

Material

Chapters

Special Event

Sept. 3

Review of Arrays

6

 

Sept. 8

Inheritance

7

 

Sept. 10

Inheritance

7

Assig. 1 given

Sept. 15

Polymorphism and Abstract Classes

8

Quiz 1

Sept. 17

Polymorphism and Abstract Classes

8

 

Sept. 22

Exception Handling

9

Quiz 2

Sept. 24

File I/0

10

Assig. 1 due & Assig. 2 given

Sept. 29

Recursion

11

Quiz 3

Oct. 1

Recursion

11

 

Oct. 5

 

 

Midterm 1

Oct. 8

Interfaces and Inner Classes

13

Assig 2. due & Assig 3. given

Oct. 13

Thanks given – no class

 

 

Oct. 15

Interfaces and Inner Classes

13

 

Oct. 20

Swing and Applets

17 & 18

Quiz 4

Oct. 22

Swing and Applets

17 & 18

 

Oct. 27

Generics and the ArrayList Class

14

Assig. 3 due &Assig. 4 given

Oct. 29

Generics and the ArrayList Class

14

 

Nov. 3

 

 

Midterm 2

Nov. 5

Linked Data Structures

15

 

Nov. 10

Linked Data Structures

15

Assig. 4 due & Assig. 5 given

Nov. 12

Linked Data Structures

15

 

Nov. 17

Collections and Iterators

15

 

Nov. 19

Collections and Iterators

16

 

Nov. 24

Collections and Iterators

16

Quiz 6

Nov. 26

Collections and Iterators

16

 

Dec. 1

Catch up and/or Review

 

Assig. 5 due

Dec. 3

Make-up class if necessary