INFO0902 - Data structures and algorithms
There are two ways to write error-free programs; only the third one works.
Alan Perlis, 'Epigrams on Programming'
|Project Tutorial||12 Feb. 2016|
|Ex.||19 Feb. 2016||
Exercise session 1: Pseudo-code and recursion
|Deadline||25 Feb. 2016||Optional project deadline|
|Project Ex. Feedback||26 Feb. 2016||
Exercise session 2: Analysis tools
|Ex.||4 Mar. 2016||
Exercise session 2: Analysis tools
|Ex.||11 Mar. 2016||Exercise session 3: Stacks, Queues, Lists, Vectors and Sequences|
|Project Ex.||18 Mar. 2016||
Exercise session 4: Heaps, Priority queues and Trees
|Deadline||25 Mar. 2016, 23h59||Don't forget to submit your result for the first project on the submission platform|
|Q&A||25 Mar. 2016||Question and Answers on the projects|
|/||1 Apr. 2016||Easter holiday|
|Ex.||8 Apr. 2016||
Exercise session 5: Dictionaries
|Project Ex.||15 Apr. 2016||
Bring an internet-enabled device with you.
17 Apr. 2016, 23h59
Don't forget to submit your result for the second project on the submission platform
[EDIT 7 Apr.] Deadline pushed back to 17 Apr.
|Ex.||22 Apr. 2016||Exercise session 8: Problem solving (dynamic programming and greedy algorithms)|
|Ex.||29 Apr. 2016||
Exercise session 8: Problem solving (dynamic programming and greedy algorithms)
|/||06 May 2016||
Theoretical course only
|Ex.||13 May 2016||
13:30 - Exercise session 9: Graphs
15:30 - Correction of some exercises from previous exam. + Q&A
15 May 2016, 23:59
Don't forget to submit your result for the third project on the submission platform
[EDIT 12 May] dealine extended
|Project||6 Jul. 2016|
|Deadline||14 Aug. 2016, 23h59||
Don't forget to submit your result for the second session project on the submission platform
FAQ for the 3rd project
l_maxmust greater than the longest word in the original text. A value of
20should be enough.
FAQ for the 2nd project
freeContentis set to
false: the function must free all the memory associated to the BST but not the string themselves. This ensures that a user can free the BST and still use the strings that were put in (this is the default expected behavior). This also makes it possible to delete all the words, since only one is present in the BST for every identical words.
true: the function must free both the memory associated to the BST and the strings it contains. This is a shortcut provided to the user.
intersectfunction whereas the compiler is expecting
const SequentialSet**(i.e. the
constis missing). For some reason, the compiler is unable to infer the const.
Consequently, you should cast it explicitely:
intersect((const SequentialSet**) myseqSetArray, nbSets);
%dshould turn it off.
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:
loginby your actual login and
xxby 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
rsync: a command line utility to synchronize remote files
sshfs: a command line utility to "mount" a remote directory
- 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.
- Submission platform (Cicada)
- Mark criteria
- Pseudo-code LaTeX package of the reference book
- A working example of the LaTeX package and its result
The Enigma Tower Riddle
The riddle requires the player to light on the nine plates by moving around the 3x3 plate grid.