At the end of this course, each student will be capable of:
* Analysing a simple problem;
* Structuring a problem in terms of classes and methods;
* Creating a simple Java program that is correct, modular, readable and well-documented;
* Using a programming environment (BlueJ): editor, compiler, debugger, file management system;
* Using tests to verify program correctness;
* Collaborating in a team with one or more other persons to achieve a non-trivial programming project.
Main themes
The goal of this "laboratory" is to give the students a first experience with developing an object-oriented program and giving them the occasion to construct a simple application from its specification until its implementation. More specifically, the goals of this laboratory are to:
* Give a more precise idea of how computer science can be used as a means to solve problems;
* Let the students experience a software development process which includes the analysis of a simple problem, the construction of a solution to that problem, and the implementation of this solution using a set of software development tools;
* Make the students familiar with the use of web technology (iCampus) as a communication tool;
* Acquaint the students with working on a project in small groups.
Content and teaching methods
This course is conceived as a programming project, with three obligatory evaluations throughout the semester. During the third and "final" evaluation, which replaces the traditional course exam, the final course mark will be determined. The programming project will be conducted by small groups of students. Each such group will have to:
* Analyse the problem;
* Design the application to be implemented;
* Implement the application (in Java);
* Document the application (preconditions, postconditions, invariants, alternative solutions, algorithms used, manual);
* Test the application;
* Write a report;
* Defend and give a demonstration of the final application.
Other information (prerequisite, evaluation (assessment methods), course materials recommended readings, ...)
Prerequisites:
SINF1160 et SINF1161 - Introduction à l'algorithmique et la programmation (partie 1 et 2) - B. Le Charlier.
The basics of programming introduced in the courses SINF1160 and SINF1161 are a prerequisite for the course SINF1151 where these basics will be put into practice.
References:
The course notes and reference books used for the courses SINF1160 and SINF1161 remain valid for this course, as well as any other introductory books or other reference material on programming in Java.
Support:
* The course details and modalities, as well as all other practical information related to the course will be made available on iCampus (http://www.icampus.ucl.ac.be/claroline/course/index.php?cid=LINF1151)
* iCampus will also be the preferred means of communication between the students and their teachers.
Programming Environment
The programming environment that will be used is the same as the one used for the courses SINF1160 and SINF1161, i.e. BlueJ (www.bluej.org).
Evaluation
Different intermediate evaluations will contribute to the final mark of this course (one single mark for the entire course):
* Two intermediate evaluations on the progress of the programming project during the second semester;
* The reports that need to be submitted before each of the different evaluations;
* A final evaluation near the end of the semester, where every team will have to defend its programming project and demonstrate their final application. This evaluation replaces the traditional exam.
* Absence to any of these evaluations implies absence to the final evaluation of the course.
The evaluations held throughout the semester will no longer contribute to the final mark in September.
* Students who participated but did not succeed in the evaluations organised throughout the semester, will have to finish and improve the same programming project, but will additionally have to implement a non-trivial extension to the programming project.
* Students who did not participate in the course or in the evaluations will also be required to implement the entire programming project, as well as a non-trivial extension to that project.
* The final mark for the September session will depend only on the quality of the produced code and its documentation, and will be evaluated based on a report and a project defence, as for the June session.