Introduction to programming

lsinf1101  2017-2018  Louvain-la-Neuve

Introduction to programming
6 credits
30.0 h + 30.0 h
Q1
Teacher(s)
Bonaventure Olivier; Pecheur Charles coordinator;
Language
French
Main themes
Basics of programming
  •      Values'', variables, assignment
  •      Primitive types, representation of numbers
  •      Expressions and statements, conditions and loops
  •      Methods, parameters, results and calls
  •      specifications
  •      Edition, compilation and execution of programs
Object-oriented programming
  •      Classes, objects, instances
  •      Class variables and instance
  •      Visibility, scope and lifetime of a variable
  •      Interfaces and implementations
  •      Extending a class and inheritance, polymorphism
Functionality and data structures
  •      Strings
  •      Files and Input-Output
  •      Exception mechanisms
  •      Simple tables and multidimensional arrays
  •      Working with Packages
  •      Linked structures
Programming methodology
  •      Analysis of a computer problem
  •      design, specification and implementation of a solution
Aims

At the end of this learning unit, the student is able to :

1

Given the learning outcomes of the "Bachelor in Engineering" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:

  • S1.I2
  • S2.2, S2.4

Students completing this course successfully will be able to

  • demonstrate an in-depht understanding of the concepts and methodology of object-oriented programming ,
  • good use elements of a object-oriented language such as Java,
  • analyze a simple problem and propose a software solution to solve it and implement it in Java.

Students will have developed skills and operational methodology . In particular, they have developed their ability to:

  • decompose a simple problem into sub-problems;
  • express the resolution of a problem as an algorithm ;
  • define and specify rigorously and precisely the features expected of a computer program ;
  • read and understand existing programs;
  • use of IT tools to support programming;
  • exploit the technique of computer language documentation;
  • make a small computer application as good quality Java program ;
  • identify test cases for the validation of a simple program.
 

The contribution of this Teaching Unit to the development and command of the skills and learning outcomes of the programme(s) can be accessed at the end of this sheet, in the section entitled “Programmes/courses offering this Teaching Unit”.
Content
The first chapter of the course addresses the construction of algorithms. Primitive objects are given with primitive operations upon them. It is shown how arbitrarily complex algorithms acting on the objects can be built using sequential, conditional, and iterative composition of algorithms. The emphasis is put on specifications and on the use of assertions to derive correct code. The Java programming language is used in a controlled way as a tool to make the algorithms amenable to execution by a computer.
The second chapter is concerned with the representation of data. Decimal, binary, octal and hexadecimal notations are reviewed as well as conversion algorithms from one notation to another. The two's complement representation for negative numbers is explained as well as the representation of floating point numbers. ASCII and Unicode representations for characters are described and discussed.
In the third chapter, the CPU of a simple computer is described together with its machine language. Students are taught how to write programs in this simple machine language. The design of subprograms with standard conventions for subprogram calls and returns as well as parameter passing is discussed in details as it allows the student to better understand procedure calls and parameter passing methods in higher level programming languages.
The fourth chapter addresses programming languages concepts in a more systematic way. The Java programming language is used to illustrate the concepts but no attempt is made to provide a global overview of Java. In contrast, a limited number of topics are studied with care and in details : primitive data types, literals, variables, arrays, the String class, static methods, expressions, a small subset of composed statements, primitive type conversions, method overloading. Classical algorithms for searching and sorting are build with this subset of Java.
Teaching methods
The methods used will encourage active student learning.
The detailed arrangements for implementing an active student participation in learning are left to tenured, in accordance with the educational guidelines of the Faculty.
Evaluation methods
A middle evaluation takes place in the middle of the first period. The note for this exam takes account of 1/3 of the final grade only if it is greater than the examination mark.
The end of first period exam aims to test not only the knowledge, but also the ability to apply this knowledge to write simple Java programs, but correct
Bibliography
Le cours s'appuie sur l'ouvrage de référence suivant (en anglais):
D. Eck, Introduction to Programming Using Java, Sixth Edition, 2013, http://math.hws.edu/javanotes/
Faculty or entity
INFO


Programmes / formations proposant cette unité d'enseignement (UE)

Title of the programme
Sigle
Credits
Prerequisites
Aims
Master [120] in Linguistics

Master [120] in Anthropology

Bachelor in Mathematics

Bachelor in Computer Science

Master [120] in data Science: Statistic

Minor in Statistics and data sciences

Minor in Computer Sciences

Additionnal module in Mathematics

Additionnal module in Statistics and data science

Additionnal module in Mathematics