Table of Contents

1. Introduction 1.1
1. Objectifs 1.1.1
2. Enseignant 1.1.2
2. Contenu 1.2
1. Semaine 01 - Syllabus 1.2.1
2. Semaine 02 - Histoire 1.2.2
3. Semaine 03 - UNIX 1.2.3
4. Semaine 04 - Python 1 1.2.4
5. Semaine 05 - Python 2 1.2.5
6. Semaine 06 - Python 3 1.2.6
7. Semaine 07 - Python 4 1.2.7
8. Semaine 08 - Relâche 1.2.8
9. Semaine 09 - SQL 1 1.2.9
10. Semaine 10 - SQL 2 1.2.10
11. Semaine 11 - Visualisation 1 1.2.11
12. Semaine 12 - Visualisation 2 1.2.12
13. Semaine 13 - Visualisation 3 1.2.13
14. Semaine 14 - Tutorat 1.2.14
15. Semaine 15 - Présentations 1.2.15
3. Travaux 1.3
4. Annexes 1.4
1. Politique #16 1.4.1
2. Règlement #18 1.4.2
3. Politique #23 1.4.3

2
Introduction

Introduction
EDM5240
Technologies de l'information appliquées au journalisme - Session
d'automne 2016
Ce syllabus est accessible en ligne à partir de l'URL jhroy.gitbooks.io/edm5240-a2016/
Certains éléments de ce document, dans ses versions en ligne ou PDF, sont en anglais. Veuillez
m'en excuser, je n'ai pas trouvé la façon de les franciser sur le service dont je me suis servi pour
le diffuser.

L'informatique est partout. Dans le creux de vos mains. Au bout de vos doigts. Du matin jusqu'au
lendemain, vos vies dépendent d'interminables suites de 0 et de 1 enregistrées sur des supports
numériques. Vos choix de cours, votre compte de banque, votre dossier médical, les contrats de votre
municipalité, votre journal, votre Facebook ont tous le même point commun: ce sont des bases de
données.

L'information, aujourd'hui, se trouve dans des bases de données et y puiser est de plus en plus
considéré comme une compétence fondamentale du métier. Les « news-getters » de demain sont ceux
qui seront capables d'aller chercher l'information numérique là où elle se trouve.

Ce cours va vous y aider en vous montrant quelques-unes des technologies de l'information qui
peuvent être appliquées au journalisme.
Il aurait pu s'intituler « Journalisme de données ». Mais nous craignions que cette appellation
vieillisse mal, un peu comme « Journalisme assisté par ordinateur », qui fait très 1990.

Le contenu de ce cours, en fait, colle davantage à ce qu'on appelle, dans le monde anglo-saxon, du
Computational journalism. C'est l'application de l'informatique au journalisme. Ce syllabus même est
un exemple de ce qu'on peut faire avec ces technologies. Il repose sur un système appelé git, qui
permet de collaborer à plusieurs sur un même projet. C'est l'une des nombreuses technologies que l'on
verra au cours de la session.

3
Objectifs

Objectifs
Objectifs du cours
L'objectif principal de ce cours est donc de vous initier aux techniques et technologies utiles dans le
journalisme informatique, ou « de données », tel qu'il est actuellement pratiqué partout dans le
monde, incluant dans un nombre de plus en plus important de médias au Québec.

Plus concrètement, vous apprendrez :

Les principes fondamentaux de la programmation avec le langage Python.
Comment analyser d'imposantes bases de données en vous servant de MySQL.
À faire des visualisations simples, grâce à différents outils en ligne dont se servent plusieurs
médias.

4
Enseignant

Enseignant
Enseignant
Nom Jean-Hugues Roy
Local J-4185
Courriel roy.jean-hugues@uqam.ca
Tél. 514/987-3000, 6102
Cell 514/778-6102
Twitter @jeanhuguesroy
Local du cours J-4315
Horaire du cours Mercredi, de 14h00 à 17h00
Du 7 septembre au 14 décembre 2016

5
Contenu

Contenu
Calendrier
Dans les prochaines pages, on verra comment le cours est structuré et comment la matière sera
dispensée au fil des semaines. En voici le résumé dans un magnifique tableau :

# Date Contenu Travail à faire ou à remettre (s'il y a lieu)
01 7 sept. Syllabus
02 14 sept. Histoire du « journalisme quantitatif » Abonnement à Cloud9
03 21 sept. Intro à UNIX
04 28 sept. Python 1
05 5 oct. Python 2
06 12 oct. Python 3
07 19 oct. Python 4
Script python,
08 26 oct. Semaine de relâche abonnement à Github et
installation de SQL
09 2 nov. SQL 1
10 9 nov. SQL 2
11 16 nov. Visualisation 1
12 23 nov. Visualisation 2
13 30 nov. Visualisation 3
14 7 déc. Tutorat
Travail final +
15 14 déc. Présentations
Making-of

Le graphique ci-dessous montre tous les outils mentionnés par des journalistes informatiques
québécois lors d'entrevues que j'ai réalisées en 2015. Il est impossible de les voir tous. On abordera
cependant les plus importants. En passant - histoire de vérifier si vous lisez réellement ce syllabus - si
vous trouvez le clin d'œil générationnel que j'ai caché dans sa version en ligne, tel un « easter egg »,
prévenez-moi par courriel et hop! deux points boni seront ajoutés à votre total à la fin de l'année. Or,
donc, voici le graphique dont je parlais :

6
Contenu

7
Semaine 01 - Syllabus

Semaine 01 - Syllabus
Cours 01 - Le syllabus
7 septembre 2016

J'y décrirai le syllabus, mais je compte également sur vous pour me dire quelles sont vos attentes.

J'ai déjà donné des éléments de journalisme informatique dans un cours appelé Initiation au
technologies numériques (EDM5050), qui ne fait plus partie du programme de journalisme. J'ai
souvenir que certains étudiants avaient beaucoup de difficulté à suivre...

Reste que les deux tiers du contenu de ce cours sont donnés pour la première fois cette session-ci. Je
vais pousser les apprentissages assez loin. Qui plus est, on va commencer par ce qu'il y a de plus
difficile.

L'avantage, c'est qu'au fur et à mesure qu'on va avancer dans le cours, la matière devrait
progressivement devenir moins compliquée. Vous aurez en quelque sorte été « initiés » dans la
première moitié de la session.

J'ai confiance que vous pourrez y arriver. Dites-moi si le rythme est trop intense (ou trop lent). Je ne
veux pas vous assomer. Je veux vous accompagner sur la route du journalisme informatique.

Je vais tâcher d'adapter mon rythme au vôtre. Dites-moi, aussi, ce que vous êtes curieux d'apprendre
et je vais tenter de vous aider. Mon objectif, c'est de vous fournir des outils qui, j'ose le croire, vous
serviront durant toute votre vie professionnelle, même si vous choisissez de faire autre chose que du
journalisme.

Retour au calendrier

8
Semaine 02 - Histoire

Semaine 02 - Histoire
Cours 02 - L'histoire du journalisme quantitatif
14 septembre 2016

Même si le journalisme informatique est une pratique récente, il s'inscrit dans une longue histoire de
ce qu'on peut appeler le « journalisme quantitatif ».

On verra notamment que cette pratique remonte au XIXe siècle, comme le montre ce graphique des
pertes de l'armée de Napoléon au cours de la campagne de Russie, réalisé en 1869.

Dans ce deuxième cours, je vous montrerai aussi quelques exemples québécois, nord-américains et
européens. Je vous demanderai de m'en montrer, également!

On verra enfin les différentes étapes du journalisme informatique, étapes qui structurent le contenu de
ce cours.

Retour au calendrier

9
Semaine 03 - UNIX

Semaine 03 - UNIX
Cours 03 - UNIX
21 septembre 2016

Avec son interface héritée de l'époque de vos grands-parents, j'avoue qu'UNIX est à première vue
complètement rébarbatif.

C'est pourtant un outil puissant qui aide encore de nombreux journalistes dans leurs tâches de tous les
jours.

On va y voir les commandes les plus utiles dans le métier que vous avez choisi, dont, entre autres:

cd
ls
cat
grep
curl
wget

Comme ce n'est pas tout le monde qui a accès à un ordinateur MacOSX et à son application Terminal
(illustrée ci-dessus), nous allons nous servir d'un outil en ligne très bien fait appelé Cloud9. Il nous
permettra d'avoir tous le même environnement, ce qui sera utile tout au long de la session.

10
Semaine 03 - UNIX

Retour au calendrier

11
Semaine 04 - Python 1

Semaine 04 - Python 1
Cours 04 - Python 1
28 septembre 2016

À partir de votre compte sur Cloud9, nous allons nous tremper les orteils dans le langage de
programmation Python). On va commencer par les concepts de base:

variables et types de variables
listes et dictionnaires
boucles et conditions

Retour au calendrier

12
Semaine 05 - Python 2

Semaine 05 - Python 2
Cours 05 - Python 2
5 octobre 2016

On poursuit notre apprentissage de python:

lecture et écriture de fichiers
interaction avec des API

Retour au calendrier

13
Semaine 06 - Python 3

Semaine 06 - Python 3
Cours 06 - Python 3
12 octobre 2016

La moisson. Julien Dupré. 1882. Musée Mildred Lane Kemper, Washington University, Saint-Louis (MO).

Ce qu'on appelle en anglais du scraping peut être traduit en français par du moissonnage. On va
rapidement voir des outils simples pour moissonner des données, comme import.io.

14
Semaine 06 - Python 3

Mais on va s'y mettre surtout à l'aide de la bibliothèque Python BeautifulSoup.

Retour au calendrier

15
Semaine 07 - Python 4

Semaine 07 - Python 4
Cours 07 - Python 4
19 octobre 2016

On termine par quelques exercices avec Python en vue du travail pratique à remettre après la
traditionnelle semaine non-officielle de soi-disant relâche (description du travail à la prochaine page).

On va également apprendre les bases du système git. Je vais vous demander de vous abonner à Github
et de faire un « fork » de mon répertoire EDM5240. Ce fork vaut à lui seul 5 autres magnifiques
points!

16
Semaine 07 - Python 4

ATTENTION

Il y a autre chose que j'attends de vous durant cette semaine-là. Voir la page suivante.

Image: Professortocat, par James Kang

Retour au calendrier

17
Semaine 08 - Relâche

Semaine 08 - Relâche
Semaine de relâche
26 octobre 2016

Deux activités durant la relâche.

1

D'abord, rédigez un script python qui fait du moissonnage de données directement sur un site web ou
par le biais d'un API. Plus de détails dans la section Travaux.

Tombée: Avant 23h59, le 31 octobre 2016. Pour me remettre votre script, créez sur votre compte
Github un « repo » appelé EDM5240. Je vais automatiquement « forker » votre « repo » à 23h59 le
31 octobre. Ce qu'il contiendra sera votre travail.

2

Pour se faciliter la vie dans les cours suivants, je vais vous demander d'installer MySQL sur votre
ordinateur.

Mais ATTENTION, votre installation dépendra du type d'ordinateur que vous avez.

Sous WINDOWS:

Installez MySQL en suivant les instructions se trouvant ici (en inglés, discúlpame...). Assurez-
vous de cocher l'option vous permettant d'installer également un utilitaire appelé MySQL
Workbench, reconnaissable par l'icône ci-dessous (si l'utilitaire ne s'installe pas
automatiquement, vous pouvez aller le chercher à partir de sa page de téléchargement):

18
Semaine 08 - Relâche

Sous MacOSX:

Installez le « Community Server » de MySQL à partir de sa page de téléchargement. Vous aurez
également l'option d'utiliser MySQL Workbench. Mais je préfère, de loin, un autre utilitaire
appelé Sequel Pro (téléchargement). On le reconnaît par son icône ressemblant à une pile de
crêpes avec du beurre fondu. Miam!

Un courriel avec une ou des capture(s) d'écran me prouvant que vous avez installé ces logiciels vaut 5
points si vous me l'envoyez avant le 31 octobre! Re-miam!

Notez qu'à ce stade, il n'est pas nécessaire de les faire fonctionner. Rien ne vous interdit d'essayer. Je
vous demande seulement de les installer.

Je vous demande de procéder à ces installations au préalable, car les activités avec SQL seront un peu
plus longues vu que je devrai constamment faire des aller-retour entre la version Windows et la
version Mac (les options de MySQL Workbench ne sont pas les mêmes dans les deux versions; une
option importante est absente de la version MacOSX, par exemple...)

Retour au calendrier

19
Semaine 09 - SQL 1

Semaine 09 - SQL 1
Cours 09 - SQL 1
2 novembre 2016

Après avoir vérifié si tout le monde a pu installer MySQL, on va d'abord voir:

Comment une base de données SQL fonctionne.
Les interfaces de MySQL Workbench et de Sequel Pro.
Comment on y importe des données.

Retour au calendrier

20
Semaine 10 - SQL 2

Semaine 10 - SQL 2
Cours 10 - SQL 2
9 novembre 2016

Les principales commandes du langage SQL:

SELECT
UPDATE
GROUP BY
ORDER BY

Et si on a le temps:

JOIN

Comment exporter, aussi, des données et des bases de données. « Dumper », disent les spécialistes.

Retour au calendrier

21
Semaine 11 - Visualisation 1

Semaine 11 - Visualisation 1
Cours 11 - Visualisation 1
16 novembre 2016

Outils simples de visualisation interactive, dont:

Infogr.am
Datawrapper
Plot.ly

Peut-être qu'on aura le temps de voir Tableau.

Retour au calendrier

22
Semaine 12 - Visualisation 2

Semaine 12 - Visualisation 2
Cours 12 - Visualisation 2
23 novembre 2016

Cartographie interactive à l'aide de Carto (autrefois connu sous le nom de CartoDB).

Mais auparavant, je vous demanderai quelques minutes pour remplir le formulaire en ligne
d'évaluation des enseignements.

Retour au calendrier

23
Semaine 13 - Visualisation 3

Semaine 13 - Visualisation 3
Cours 13 - Visualisation 3
30 novembre 2016

Nous aurons l'honneur d'avoir la visite de Naël Shiab, diplômé du programme de journalisme à
l'UQAM en 2011 et journaliste de données à L'actualité.

Dans la première moitié du cours, il viendra vous faire une démonstration de la bibliothèque de
visualisation Data-Driven Documents, ou D3 pour les intimes, écrite en JavaScript.

Dans la seconde moitié, j'aborderai ensuite quelques bibliothèques Python pour faire de l'analyse de
données et de la visualisation :

24
Semaine 13 - Visualisation 3

Matplotlib
Pandas
Seaborn

Voici d'ailleur un exemple de ce que peut faire Seaborn:

Retour au calendrier

25
Semaine 13 - Visualisation 3

26
Semaine 14 - Tutorat

Semaine 14 - Tutorat
Semaine 14 - Tutorat
7 décembre 2016

Cette semaine-là, je donne une séance dans le cours EDM1400 (Méthodologie de la recherche en
journalisme) avec les étudiants de première année. Il y a conflit d'horaire puisque ce cours a lieu les
mercredis après-midi...

Je serai cependant disponible durant toute la semaine pour répondre à vos questions sur votre travail
final et/ou pour vous épauler dans sa réalisation.

Retour au calendrier

27
Semaine 15 - Présentations

Semaine 15 - Présentations
Semaine 15 - Présentations
14 décembre 2016

Vous présentez, en moins de 10 minutes, votre projet final.

Retour au calendrier

28
Travaux

Travaux
Éléments d'évaluation
Les travaux à remettre ont été mentionnés brièvement dans les pages précédentes. Je vous donne, ci-
dessous, un peu plus de détails sur chacun de ces éléments d'évaluation.

Abonnement à Cloud9
Il suffit de me prouver que vous avez votre compte en vous rendant sur la page suivante
(https://ide.c9.io/jeanhuguesroy/edm5240-test) et de me faire signe en cliquant sur les mots « Request
Access », en haut, à droite de la page. Faites-le avant 23h59, le 18 octobre 2016.

Abonnement à Github
Ne tardez pas trop. « Forkez » mon « repo » EDM5240 avant 23h59, le 23 octobre 2016.

Installation de MySQL
Envoyez-moi votre capture d'écran avant 23h59, le 30 octobre 2016.

Script python
Vous devrez rédiger un script python qui moissonne des données d'un site de votre choix ou qui se
connecte à un API de votre choix. Il faut, bien sûr, que le site ou l'API soient différents de ceux qu'on
a vus en classe. Votre script doit :

Contenir suffisamment de commentaires pour que je comprenne ce qu'il fait

Afficher suffisamment d'information dans le terminal pour qu'on puisse en suivre le
déroulement

Produire un fichier CSV

Vous devez déposer votre script (fichier .py) dans votre compte Github. Plus précisément, placez-le
dans un « repo » que vous baptiserez EDM5240. Tombée : avant 23h59 le 31 octobre 2016.

Projet final
Pour votre projet final, vous avez deux options. Vous pouvez faire :

un reportage ou
un outil

Si vous choisissez l'option reportage, vous pouvez le faire sur un sujet de votre choix (conditonnel à
mon approbation). Vous avez aussi le choix de la forme de ce reportage: il peut s'agir d'un article,
d'un reportage radio, d'un reportage télé ou d'un reportage web.

29
Travaux

Dans la production de ce reportage, vous devrez utiliser au moins deux des trois grandes compétences
qu'on a apprises au cours de la session :

Programmation
Gestion et/ou traitement d'une base de données avec SQL
Visualisation

Si vous choisissez l'option outil, vous avez aussi une grande latitude. Un outil est quelque chose que
vous avez programmé vous-même et qui peut avoir une utilité dans un contexte journalistique. Il peut
s'agir d'un robot sur Twitter, d'un processus qui permet faciliter le travail de vos collègues, d'une
bibliothèque python originale; vous n'êtes limités que par votre imagination. Parlez-m'en auparavant
et si c'est l'option qui vous tente, je pourrai vous offrir un coup de main dans la mesure de mes
capacités. Ici, il est impératif qu'il y ait de la programmation, mais il n'est pas nécessaire que vous
vous serviez de SQL ou que vous fassiez de la visualisation.

Making-of
Votre travail final doit être accompagné d'un texte (en format PDF) comptant entre 3 000 et 6 000
caractères et décrivant votre démarche :

Pourquoi ce sujet?
Quelles technologies avez-vous utilisées?
Pourquoi les avoir choisies?
Comment vous ont-elles servi?
Quels problèmes avez-vous éprouvés (s'il y a lieu).

Ce texte devra être accompagné de :

Tous les scripts (fichiers .py ou .rb ou .js) que vous avez écrits et/ou
Un fichier « dump » (format .sql) de toutes les bases de données que vous avez utilisées.

Vous m'envoyez tout cela par courriel avant le début du dernier cours (14h00, le 14 décembre 2016).

Ventilation des éléments d'évaluation
Élément Points
Abonnement à Cloud9 5
Abonnement à Github 5
Installation de MySQL 5
Script python 25
Projet final 40
Making-of 20

30
Annexes

Annexes
Annexes
Différents services et unités de l'UQAM nous demandent d'ajouter les informations qui suivent dans
nos plans de cours afin de vous rappeler certains règlements et politiques de l'Université.

31
Politique #16

Politique #16
Politique #16
Harcèlement sexuel

Les comportements suivants sont considérés par la Politique #16 de l'UQAM comme du harcèlement
sexuel :

Manifestations persistantes ou abusives d’un intérêt sexuel non désirées
Remarques, commentaires, allusions, plaisanteries ou insultes persistants à caractère sexuel
portant atteinte à un environnement propice au travail ou à l’étude
Avances verbales ou propositions insistantes à caractere sexuel non désirées
Avances physiques, attouchements, frôlements, pincements, baisers non désirés
Promesses de récompense ou menaces de représailles, implicites ou explicites, représailles liées
à l’acceptation ou au refus d’une demande d’ordre sexuel
Actes de voyeurisme ou d’exhibitionnisme
Manifestations de violence physique à caractère sexuel ou imposition d’une intimité sexuelle
non voulue
Toute autre manifestation à caractère sexuel offensante ou non désirée.

Pour plus d’information :

http://www.harcelement.uqam.ca/

Pour rencontrer quelqu'un ou effectuer un signalement :

514-987-3000, poste 0886.

32
Règlement #18

Règlement #18
Règlement #18
Infractions de nature académique

Tout acte de plagiat, fraude, copiage, tricherie ou falsification de document commis par une étudiante,
un étudiant, de même que toute participation à ces actes ou tentative de les commettre, à l’occasion
d’un examen ou d’un travail faisant l’objet d’une évaluation ou dans toute autre circonstance,
constituent une infraction au sens de ce règlement.

La liste non limitative des infractions est définie comme suit :

la substitution de personnes;
l’utilisation totale ou partielle du travail d’autrui en le faisant passer pour sien ou sans
indication de référence;
la transmission d’un travail pour fins d’évaluation alors qu’il constitue essentiellement un
travail qui a déjà été transmis pour fins d’évaluation académique à l’Université ou dans une
autre institution d’enseignement, sauf avec l’accord préalable de l’enseignante, l’enseignant;
l’obtention par vol, manœuvre ou corruption de questions ou de réponses d’examen ou de tout
autre document ou matériel non autorisés, ou encore d’une évaluation non méritée;
la possession ou l’utilisation, avant ou pendant un examen, de tout document non autorisé;
l’utilisation pendant un examen de la copie d’examen d’une autre personne;
l’obtention de toute aide non autorisée, qu’elle soit collective ou individuelle;
la falsification d’un document, notamment d’un document transmis par l’Université ou d’un
document de l’Université transmis ou non à une tierce personne, quelles que soient les
circonstances;
la falsification de données de recherche dans un travail, notamment une thèse, un mémoire, un
mémoire-création, un rapport de stage ou un rapport de recherche.

Les sanctions reliées à ces infractions sont précisées à l’article 3 du Règlement no 18. Elles peuvent
aller jusqu'à l'expulsion de l'UQAM.

33
Politique #23

Politique #23
Politique #23
Évaluation des enseignements

Une période d'une quinzaine de minutes devra être consacrée en classe à l'évaluation du cours durant
la prochaine session. Cette période devra avoir lieu à la douzième ou à la treizième semaine. Comme
pour l'évaluation papier qui était faite auparavant, l'évaluation en ligne sera faite en classe par les
étudiants présents, mais à l'aide d'un ordinateur, d'une tablette ou d'un téléphone intelligent. Les
étudiants absents au cours pourront cependant faire cette évaluation durant le reste de la période
prévue à cette fin. Il sera important de prévoir et d'inscrire cette séance d'évaluation des
enseignements lors de la ratifcation de l'entente d'évaluation conclue avec les étudiants en début de
session.

Pour remplir le formulaire d'évaluation et dire votre façon de penser à l'enseignant, c'est par ici.

34

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer: Get 4 months of Scribd and The New York Times for just $1.87 per week!

Master Your Semester with a Special Offer from Scribd & The New York Times