2023-2024 / INFO0027-2

Programming techniques

Algorithmics

Software patterns

Duration

Algorithmics : 14h Th, 14h Pr, 40h Proj.
Software patterns : 10h Th, 10h Pr, 30h Proj.

Number of credits

 Bachelor of Science (BSc) in Computer Science5 crédits 
 Master of Science (MSc) in Data Science5 crédits 
 Master of Science (MSc) in Computer Science and Engineering5 crédits 
 Master of Science (MSc) in Data Science and Engineering5 crédits 
 Master in mathematics (120 ECTS)6 crédits 

Lecturer

Algorithmics : Laurent Mathy
Software patterns : Laurent Mathy

Coordinator

Laurent Mathy

Language(s) of instruction

English language

Organisation and examination

Teaching in the second semester

Schedule

Schedule online

Units courses prerequisite and corequisite

Prerequisite or corequisite units are presented within each program

Learning unit contents

Algorithmics

This first part addresses algorithmic problem solving and describes examples of advanced algorithms, using C as the reference programming language. The second part provides an introduction to programming design patterns, using Java as the reference programming language.
Specifically, the first part content comprises the following topics: programming as problem solving; advanced sorting; balanced search; radix search; external algorithms; algorithms on graphs.

Software patterns

This first part addresses algorithmic problem solving and describes examples of advanced algorithms, using C as the reference programming language. The second part provides an introduction to programming design patterns, using Java as the reference programming language.
Specifically, the first part content comprises the following topics: programming as problem solving; advanced sorting; balanced search; radix search; external algorithms; algorithms on graphs.

Learning outcomes of the learning unit

Algorithmics

In this course, the students learn: - the principles of complex program decomposition; - to write efficient programs - knowledge of advanced algorithmic techniques - to apply programming patterns

Software patterns

In this course, the students learn: - the principles of complex program decomposition; - to write efficient programs - knowledge of advanced algorithmic techniques - to apply programming patterns

Prerequisite knowledge and skills

Algorithmics

Knowledge of basic algorithms. Practical knowledge of the C and Java programming languages.
INFO0902 or INFO2050
INFO0062

Software patterns

Knowledge of basic algorithms. Practical knowledge of the C and Java programming languages.
INFO0902 or INFO2050
INFO0062

Planned learning activities and teaching methods

Algorithmics

Inverted classroom, involving problem solving in class. The students carry out several assignments: some individual  programming assignments and some group mini-projects. The exact number and type of assignment varies depending on the year, although the student workload is kept similar.

Software patterns

Inverted classroom, involving problem solving in class. The students carry out several assignments: some individual  programming assignments and some group mini-projects. The exact number and type of assignment varies depending on the year, although the student workload is kept similar.

Mode of delivery (face to face, distance learning, hybrid learning)

Algorithmics

Blended learning


Additional information:

Q2. Inverted classroom.
Depending on the covid-19 situation, the weekly meet-up could be moved online.

Software patterns

Blended learning


Additional information:

Q2. Inverted classroom.
Depending on the covid-19 situation, the weekly meet-up could be moved online.

Recommended or required readings

Algorithmics

Optional recommended readings: Introduction to algorithms; Cormen, Leiserson, Rivest and Stein; MIT press.
Algorithms in C; Sedgewick; Addison Wesley.
Design patterns; Gamma, Helm, Johnson, Vlissides; Addison-Wesley.

Software patterns

Optional recommended readings: Introduction to algorithms; Cormen, Leiserson, Rivest and Stein; MIT press.
Algorithms in C; Sedgewick; Addison Wesley.
Design patterns; Gamma, Helm, Johnson, Vlissides; Addison-Wesley.

Algorithmics

Written exam and assignments.The assignments count towards 40% of the final mark, while the exam counts towards 60% of the final mark. Each part of the course bears equal weight in the final mark.
During the written exam, the students can use the lecture and practical notes that were officially distributed on the myULiege course page (and only those).
Students who do not submit at least half the projects receive an absence mark for the corresponding exam session.
All resubmissions are individual. There is no guaranteed support for projects to be resubmitted for the resit session.

Software patterns

Written exam and assignments.The assignments count towards 40% of the final mark, while the exam counts towards 60% of the final mark. Each part of the course bears equal weight in the final mark.
During the written exam, the students can use the lecture and practical notes that were officially distributed on the myULiege course page (and only those).
Students who do not submit at least half the projects receive an absence mark for the corresponding exam session.
All resubmissions are individual. There is no guaranteed support for projects to be resubmitted for the resit session.

Work placement(s)

Organisational remarks and main changes to the course

Contacts

Algorithmics

  • Coordinator: L. Mathy, Laurent.Mathy@uliege.be
  • Assistant:
  • Loïc Champagne, lchampagne@uliege.be

Software patterns

  • Coordinator: L. Mathy, Laurent.Mathy@uliege.be
  • Assistant:
  • Loïc Champagne, lchampagne@uliege.be

Association of one or more MOOCs