COMPUTER SCIENCE A - Introductory programming

Spring 2005, Block II

 

This course description 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 and at Fridays the teaching takes place 0915-1200, both days in Datastue 42.1 (room 42.1.39). Note that the teaching at Fridays begins at 0915, not at 0900. The room is close to the entrance of Building 42.1, just turn right after entering the building. Further information can be found at the course plan.

 

Main lecturer:  Torben Braüner (torben@ruc.dk).

 

Aim of the course:  To introduce the students to programming.  The objective is for the students to acquire knowledge about basic computer science tools and techniques, and obtain practical experience in programming towards design and implementation of a well-structured smaller program.

 

More concretely, the students have to master the following central topics from imperative programming:

* Control statements (for-, if- and while statements, nested loops)

* Variables and data types (integers, boolean values, floating-point numbers, strings)

* Data structures (array lists, arrays, two-dimensional arrays)

* Methods (parameter passing, primitive types, objects/references, return values)

 

From object oriented programming the students have to master the following elementary topics:

* Objects (new, fields, methods)

* Inheritance (extension of classes with fields and methods)

 

Besides, the students have to have knowledge of input/output, exceptions, and generic methods.

 

Content: Programming is one of the most fundamental topics in computer science, and many other disciplines in computer science build on the skills and knowledge obtained by learning to program. The course will cover basic structures and techniques that are characteristic for imperative programming. Furthermore, the course will give an introduction to object oriented programming. In general, practical use of basic programming techniques will be emphasized.

 

The programming language used in the course is Java, which is a modern high-level programming language. Apart from being a generally applicable programming language, Java is characterized by having facilities that ease the construction of graphical user interfaces and is moreover very suitable for the development of internet-based programs.

 

Prerequisites: No particular requisites in relation to the content of the course.

 

Form of lessons:  The course encompasses 24 sessions of 3 hours consisting of lectures and supervised practical programming in groups. The groups typically have two students and the course facilities encompass one computer for each two students.

 

Evaluation criteria: During the course 10 assignments are given of which 5 have to be solved satisfactorily. The last of the 10 assignments is a larger programming exercise involving a mini-project and this has to be among the satisfactorily solved assignments. All assignments except the final one are solved in groups with up to three participants. The final assignment has to be solved individually and there is furthermore a 15 minutes oral test where the solution to the final assignment is presented to the teachers of the course. The final assignment, that is, the mini-project, comes in two parts, one in the middle of the semester and one at the end of the semester.

 

Size of classes:  24 students.

 

Teaching material: Cay Horstmann: Computing Concepts with Java Essentials, Third Edition. Wiley, 2003. Supplementary notes will be handed out or made available via the homepage of the course.

 

Supplementary teaching material

 

SUN Microsystems Java Tutorial

SUN Microsystems Java Source

A brief introduction to Java at Computer Science/En kort introduktion til Java pĺ Datalogi

CCJ3’s homepage

JCreator’s homepage