INFO0902 - Data structures and algorithms

Random CS quote

Playing with pointers is like playing with fire. Fire is perhaps the most important tool known to man. Carefully used, fire brings enormous benefits; but when fire gets out of control, disaster strikes.

John Barnes, Programming in Ada 2012, Cambridge University Press, 2014, p. 189

Informations

Schedule

Project Tutorial 10 Feb. 2017

Statement for project 0
Code

Tutorial: Let's C
Jean-François Grailet's page for the C tutorial

Ex. 17 Feb. 2017

Exercise session 1: Pseudo-code and recursion

YouTube More Sierpinsky's triangle-like shapes

Deadline 23 Feb. 2017

Note: Valgrind seems to have trouble on ms825, consider using an other machine

Optional project deadline

Feedback Ex. 24 Feb. 2017

Feedback on project 0

Exercise session 2: Analysis tools

Project Ex. 03 Mar. 2017

Statement for project 1
Code

Exercise session 2: Analysis tools (second part)

Ex. 10 Mar. 2017 Exercise session 3: Stacks, Queues, Lists, Vectors and Sequences
Ex. 17 Mar. 2017

Exercise session 4: Heaps, Priority queues and Trees

Deadline Project 24 Mar. 2017

Don't forget to submit your result for the first project on the submission platform

Statement for project 2
Code
Modified on 31th of March
Check out the FAQ of the second project

Exercise session 5: Dictionaries

Ex. 31 Mar. 2017

Exercise session 6: Data structures and dictionaries

Bring an internet-enabled device with you.

/ 7 Apr. 2017

Easter holiday

/ 14 Apr. 2017

Easter holiday

Deadline Project 21 Apr. 2017

Don't forget to submit your result for the second project on the submission platform
Check out the FAQ of the second project

Project 3:

Ex. 27 Apr. 2017 Exercise session 7: Exhaustive search and divide-and-conquer
Ex. 5 Mai. 2017 Exercise session 8: Dynamic programming
Ex. 12 Mai. 2017 Exercise session 9: Greedy algorithms
Ex.
Deadline
19 May 2017

13:30 -- Exercise session 10: Graphs

15:30 -- Mock exam

Don't forget to submit your result for the third project on the submission platform

Deadline 21 May 2017

Don't forget to re-submit your result for bonus on the submission platform

Project 03 Jul. 2017

Statement for project 4
Code

Deadline 14 Aug. 2017

Don't forget to submit your second session projectsubmission platform

FAQ for the second project

The warning is due to a portability issue of C. Replace '%lu' with '%zu' or simply ignore the warning.
Yes. We forgot to mention it in the statement. It is now fixed.

Misc.

Testing machines

The projects must compile on the ms8xx (xx=01..24) machines !

Firstly, you need to create an account through the registration page.

Then you can connect to the machines thanks to SSH with the following command:

  • ssh login@ms8xx.montefiore.ulg.ac.be
where you need to replace login by your actual login and xx by a machine number (xx=01..25). SSH will open a terminal on the remote machine. For windows user, the PuTTY utility will mimic SSH behaviour (an illustrated step-by-step tutorial can be found here).

Several solutions are available to ship source code to and from the ms8xx machines.

  • FileZilla: a graphic, cross-platform FTP client (an illustrated step-by-step tutorial can be found here)
  • scp: a command line utility to transfert file from/to remote hosts (it works much like the cp command)
  • rsync: a command line utility to synchronize remote files
  • sshfs: a command line utility to "mount" a remote directory
Those utilities might need some configuration/getting-used-to. A few hints to help you out:
  • Read the man page (so you can say you have)
  • Try the help flags -h, --help (you might even get useful information)
  • Google your questions or get a succinct tutorial (others have stumbled on the same difficulties, let them help you)
  • Script the data transferts, compilation steps, testing suite (human memory is the most expensive)

Oh, and be sure to chmod your home folder to prevent others from messing with your files.

Misc.

Last modified on July 03 2017 14:02