<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Nicolas Gry - Courses</title><link href="https://grybouilli.github.io/" rel="alternate"/><link href="https://grybouilli.github.io/feeds/courses.atom.xml" rel="self"/><id>https://grybouilli.github.io/</id><updated>2026-09-07T00:00:00+02:00</updated><subtitle>PhD Student in Computer Science · Inria de Lyon</subtitle><entry><title>Introduction to Programming</title><link href="https://grybouilli.github.io/introduction-to-programming.html" rel="alternate"/><published>2026-09-07T00:00:00+02:00</published><updated>2026-09-07T00:00:00+02:00</updated><author><name>Nicolas Gry</name></author><id>tag:grybouilli.github.io,2026-09-07:/introduction-to-programming.html</id><summary type="html">&lt;h1&gt;About&lt;/h1&gt;
&lt;p&gt;"Introduction to Programming" is a class I teach at the Université Jean Monnet de Saint-Étienne, to first year Master students in the &lt;a href="https://master-digicrea.univ-st-etienne.fr/en/index.html"&gt;Digicrea Master&lt;/a&gt; and the &lt;a href="https://www.univ-st-etienne.fr/fr/formation/master-XB/master-XB/master-arts-parcours-creation-contemporaine-et-nouvelles-technologies-option-realisateur-en-informatique-musicale-option-arts-numeriques-KX4SMCQZ.html"&gt;RIM Master&lt;/a&gt;. The students primarily come from an artistic background and have supposedly no knowledge in computing, and very light background in mathematics …&lt;/p&gt;</summary><content type="html">&lt;h1&gt;About&lt;/h1&gt;
&lt;p&gt;"Introduction to Programming" is a class I teach at the Université Jean Monnet de Saint-Étienne, to first year Master students in the &lt;a href="https://master-digicrea.univ-st-etienne.fr/en/index.html"&gt;Digicrea Master&lt;/a&gt; and the &lt;a href="https://www.univ-st-etienne.fr/fr/formation/master-XB/master-XB/master-arts-parcours-creation-contemporaine-et-nouvelles-technologies-option-realisateur-en-informatique-musicale-option-arts-numeriques-KX4SMCQZ.html"&gt;RIM Master&lt;/a&gt;. The students primarily come from an artistic background and have supposedly no knowledge in computing, and very light background in mathematics.&lt;/p&gt;
&lt;p&gt;The class aims to introduce the foundation of programming by learning the basics of C++. The class tackles notions of variables, types and scope, boolean operations and logic, conditional statements and loops, functions, as well as data structure such as matrices, arrays and vectors. A part of the class focuses on developers' tools such as compilation with clang, library linking, and build system with cmake as an example. Scripting languages are lightly covered, with Javascript as an example.&lt;/p&gt;
&lt;p&gt;The practise examples and assignment revolve around image processing and audio / music, so as to make a direct link with the rest of their curriculum.&lt;/p&gt;
&lt;h1&gt;Course content&lt;/h1&gt;
&lt;h2&gt;Lectures&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Slides&lt;/th&gt;
&lt;th&gt;Exercises&lt;/th&gt;
&lt;th&gt;Assignment&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/l1/main.pdf"&gt;Lecture 1&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p1/1_about_variables.pdf"&gt;Sheet 1&lt;/a&gt; &lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p1/2_booleans.pdf"&gt;Sheet 2&lt;/a&gt; &lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p1/3_cond_statements.pdf"&gt;Sheet 3&lt;/a&gt; &lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p1/4_switch_enum.pdf"&gt;Sheet 4&lt;/a&gt; &lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p1/5_loops.pdf"&gt;Sheet 5&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/a1/assignment.pdf"&gt;Assignment 1&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/l2/main.pdf"&gt;Lecture 2&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p2/1_functions.pdf"&gt;Sheet 1&lt;/a&gt; &lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p2/2_main_global_and_local.pdf"&gt;Sheet 2&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/a2/assignment.pdf"&gt;Assignment 2&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/l3/main.pdf"&gt;Lecture 3&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p3/1_matrices.pdf"&gt;Sheet 1&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/a3/assignment.pdf"&gt;Assignment 3&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/l4/main.pdf"&gt;Lecture 4&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p4/1_exercises.pdf"&gt;Sheet 1&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/a4/assignment.pdf"&gt;Assignment 4&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/l5/main.pdf"&gt;Lecture 5&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p5/1_pointers.pdf"&gt;Sheet 1&lt;/a&gt; &lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p5/2_stl_iterators.pdf"&gt;Sheet 2&lt;/a&gt; &lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p5/3_txtfiles.pdf"&gt;Sheet 3&lt;/a&gt; &lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p5/4_audio_files.pdf"&gt;Sheet 4&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/a5/assignment.pdf"&gt;Assignment 5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/l6/main.pdf"&gt;Lecture 6&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p6/1_classes.pdf"&gt;Sheet 1&lt;/a&gt; &lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p6/2_generic_functions.pdf"&gt;Sheet 2&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/a6/assignment.pdf"&gt;Assignment 6&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Extras&lt;/h2&gt;
&lt;h4&gt;Exercises resources&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Practise&lt;/th&gt;
&lt;th&gt;Problem&lt;/th&gt;
&lt;th&gt;Resource&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Practise 8&lt;/td&gt;
&lt;td&gt;Problem B.1&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p3/landscape.xlsx"&gt;landscape.xlsx&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Practise 9&lt;/td&gt;
&lt;td&gt;Problem 1.3&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p9/1.3.alice.zip"&gt;Archive&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Practise 9&lt;/td&gt;
&lt;td&gt;Problem 2.2&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p9/2.2.alice.zip"&gt;Archive&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Practise 9&lt;/td&gt;
&lt;td&gt;Problem 3.1&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p9/3.1.alice.zip"&gt;Archive&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Practise 9&lt;/td&gt;
&lt;td&gt;Problem 4.1&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p9/4.1.alice.zip"&gt;Archive&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Practise 13&lt;/td&gt;
&lt;td&gt;Whole sheet&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/p5/practise13.zip"&gt;Archive&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;Assignment resources&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Assignment&lt;/th&gt;
&lt;th&gt;Resource&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Assignment 4: Exercise 1&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/a4/windows/problem1.zip"&gt;Windows&lt;/a&gt; &lt;a href="https://grybouilli.github.io/courses/intro_to_programming/a4/macos/problem1.zip"&gt;MacOS&lt;/a&gt; &lt;a href="https://grybouilli.github.io/courses/intro_to_programming/a4/macos/problem1.zip"&gt;Linux&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Assignment 4: Exercise 2&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/a4/windows/problem2.zip"&gt;Windows&lt;/a&gt; &lt;a href="https://grybouilli.github.io/courses/intro_to_programming/a4/macos/problem2.zip"&gt;MacOS&lt;/a&gt; &lt;a href="https://grybouilli.github.io/courses/intro_to_programming/a4/macos/problem2.zip"&gt;Linux&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Assignment 5&lt;/td&gt;
&lt;td&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/a5/assignment5.zip"&gt;Resource&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;Documentation&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://grybouilli.github.io/courses/intro_to_programming/windows_build_tools_installation_steps.pdf"&gt;Guide to install CLang and CMake on Windows&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Programs&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://grybouilli.github.io/extra/image_exporter.html"&gt;image_exporter&lt;/a&gt;: a web interface to convert image files to .xlsx files and back.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grybouilli.github.io/extra/img_visualizer.html"&gt;img_visualizer&lt;/a&gt;: a web interface to visualize images from their pixel values. B/W and RGB mode available.&lt;/li&gt;
&lt;/ul&gt;</content><category term="Courses"/></entry></feed>