Computer Science A, Introductory Programming (Fall 04)

This course description extends and supplements the course description at the homepage of the Basic Studies Programme in the Natural Sciences. The curriculum is indicated in the course plan below (all references are to the textbook, CCJ3). All notes in CCJ3 marked "Advanced Topic" are excluded. The integrated development environment JCreator is used at the course.

 

At Tuesdays the teaching takes place 1300-1600 in Usability Lab (room 43.1.02) and at Fridays the teaching takes place 0930-1200 in Datastue 42.1 (room 42.1.39). Both rooms are close to the entrance of Building 42.1, just turn right after entering the building.

Lecturer

Torben Braüner (torben@ruc.dk).

Aim of the course

To introduce the students to programming.  The objective is that the student acquires knowledge about basic computer science tools and techniques, and obtains practical experience in programming towards design and implementation of a well structured smaller program.

Content

Theoretical and practical introduction of the key structures in imperative programming languages and of associated basic programming techniques.  The main topics in the course are programming, data structures, algorithms, and program design. The programming language used is Java.

Lessons

Lectures (36 hours) and practical programming (36 hours).

Evaluation

During the course a number of assignments are presented. At least 50%, including the final assignment, which is a larger programming exercise, must be solved satisfactorily. All assignments except the final one are solved in groups (max. 3 participants). The final assignment has to be solved individually and there is furthermore an oral test (duration 15 minutes) where the solution to the final assignment is presented to the teachers of the course.

Teaching material

Cay Horstmann: Computing Concepts with Java Essentials, Third Edition (CCJ3). Wiley, 2003.

Supplementary teaching material

SUN Microsystems Java Tutorial

SUN Microsystems Java Source

En kort introduktion til Java pĺ Datalogi

CCJ3’s homepage

JCreator’s homepage

Course plan (subject to change)

WEEK 36

FRIDAY 3/9 Course presentation 1000-1030 and 1030-1100, Hus 13.1-Plenum A.

WEEK 38

TUESDAY 14/9 Introduction, CCJ3 chapter 1. Slides for chapter 1. Review exercises R1.1-R1.6, R1.8, R1.9, R1.11, R1.13, R1.14. Programming exercises P1.1-P1.6.

FRIDAY 17/9 21/9 Objects and classes, CCJ3 chapter 2. Slides for chapter 2. Review exercises R2.1-R2.18.

WEEK 39

TUESDAY 21/9 Introduction to JCreator. Programming exercises P2.5-P2.9, P2.16.

WEEK 40

TUESDAY 28/9 Fundamental data types, CCJ3 chapter 3. Slides for chapter 3. Review exercises R3.6-R3.12, R3.16-R3.19. Programming exercises P2.11, P2.12, P3.1, P3.2. First home assignment, Exercise P2.10 is to be handed in (hint: see HOWTO 2.1, page 62).

 

FRIDAY 1/10 Decisions, CCJ3 chapter 5. Slides for chapter 5. Review exercises R5.1, R5.2, R5.6, R5.9, R5.12, R5.14. Programming exercises P3.4, P3.5, P3.11, P5.4.

WEEK 41

TUESDAY 5/10 Iteration, CCJ3 chapter 6 except section 6.5. Slides for chapter 6. Review exercises R6.3-R6.6, R6.13. Programming exercises P5.13, P5.15, P6.1 as well as exercises from last lecture. Second home assignment: Exercise P3.6 is to be handed in.

FRIDAY 8/10 Programming exercises P5.16 and P6.5 as well as exercises from last lecture.

WEEK 42

TUESDAY 12/10 LECTURE CANCELLED

FRIDAY 15/10 LECTURE CANCELLED

WEEK 43

TUESDAY 19/10 Exercises from last lecture as well as this exercise. Third home assignment: Exercise P5.12 is to be handed in. Fourth home assignment, Exercise P5.10 is to be handed in (hint: see the solution to Exercise P3.6).

FRIDAY 22/10 Exercises from previous lectures as well as this exercise.

WEEK 44

TUESDAY 26/10 Designing classes, CCJ3 chapter 7. Slides for chapter 7. Review exercises R7.19, R7.20, R7.22, R7.26. Fifth home assignment, Exercise P6.10 is to be handed in.

FRIDAY 29/10 Interfaces, polymorphism, and arrays, CCJ3 chapters 9 and 13 except sections 9.4 and 9.5. Slides for chapter 9 and slides for chapter 13. Review exercises R9.1-R9.4, R13.1, R13.2, R13.5, R13.7, R13.13, R13.14.

WEEK 45

TUESDAY 2/11 Programming exercises P6.11, P7.1, P9.4, P13.1, P13.2. Sixth home assignment, Exercise P6.12 is to be handed in.

FRIDAY 5/11 Inheritance, CCJ3 chapter 11. Slides for chapter 11. Review exercises R11.1-R11.5. Programming exercises P11.1, P13.3, P13.5, P13.6, P13.10, P13.16.

WEEK 46

TUESDAY 9/11 Exception handling and input/output, CCJ3 chapters 14 and 15 except sections 14.6, 15.3, 15.4, 15.5, and 15.7. Slides for chapter 14 and slides for chapter 15. Review exercises R14.1-R14.8, R15.1, R15.13. Seventh home assignment, Exercise P13.4 is to be handed in (in some old versions of CCJ3 there is an error in the formulation of P13.4, the word "append" has to be replaced by "transfer"). The mini-project is handed out.

FRIDAY 12/11 Discussion of the mini-project.

WEEK 47

TUESDAY 16/11 Discussion of the mini-project.

FRIDAY 19/11 Discussion of the mini-project.

WEEK 48

TUESDAY 23/11 Discussion of the mini-project.

FRIDAY 26/11 Discussion of the mini-project.

WEEK 49

TUESDAY 30/11 The mini-project has to be handed in.

WEEK 1

TUESDAY 4/1 Discussion of oral test (in Datastue 42.1).

FRIDAY 7/1 Oral test (in Datastue 42.1).