ITI 1521.
Introduction à l’informatique II
Exigences du cours
by
Marcel Turcotte
Version du 6 janvier 2020
Préambule
Préambule
Objectifs d’apprentissage
Objectifs d’apprentissage
Informer sur les exigences du cours.
Expliquer les objectifs d’apprentissage généraux dans ce cours.
Connaître les règlements universitaires sur la fraude scolaire.
Lectures :
Ce document, ainsi que ceux-ci :
Plan de cours
Intégrité dans les études
1 55
Préambule
Plan du module
Plan
1 Préambule
2 Plan de cours
3 Intégrité dans les études
4 Contenu
5 Épilogue
6 Prologue
2 55
Marcel Turcotte : en bref
1965- Né à Montréal
1995 Ph. D. en informatique, Université de Montréal
1995–97 Université de la Floride (É.-U.), Département de Chimie
1997–00 Imperial Cancer Research Fund, Londres, Angleterre
2000- Université d’Ottawa
2006–08 Coordonnateur du programme coop pour l’informatique
2010–11 Coordonnateur du programme de maîtrise en
bio-informatique
2012–18 Vice-doyen aux études de premier cycle
3 55
Source : blog.f1000.com
Marcel Turcotte : en bref
1. ARN et ADN, régulation de l’expression des gènes, structure secondaire, inférence de
motifs, algorithmique du texte
2. Logiciels : MC-Sym (co-auteur), eXtended-Dynalign, Profile-Dynalign, Seed,
ACSEA, ModuleInducer, RiboFSM, MotifGP, Seedw
3. Conception d’algorithmes et de structures de données, intelligence artificielle
appliquée et apprentissage machine
5 55
Source : QIAGEN/CLC bio
Plan de cours
Contenu du cours
Computer
Architecture
Object-oriented programming
Abstract Data Types
(ADT)
7 55
Contenu du cours
Memory
CPU
Computer
Architecture
Compilation
Program
execution
Variables
Object
Class
Object-oriented programming Interface
Inheritance
Generic
Exception
Stack
Queue
Abstract Data Types
(ADT)
List
Binary Search Tree
8 55
Contenu du cours
Memory
Computer
CPU
Architecture
Compilation Reading
Program
Writing
execution
Fetch-Execute-Cycle
Types
Local
Variables Parameters
Instance variables
Class variables
Instance variables
Object Instance methods
Encapsulation
Class variables
Class Class methods
Interface Nested classes
Object-oriented programming Inheritance
Generic ArrayStack
Exception DynamicArrayStack
Stack LinkedStack
Applications
LinkedQueue
Queue CircularQueue
Applications
ArrayList
SinglyLinkedList
List DoublyLinkedList
Abstract Data Types
(ADT)
Binary Search Tree CircularList
Recursion
Iterator
9 55
Contenu du cours
Memory
Computer
CPU
Architecture
Compilation Reading
Program
Writing
execution
Fetch-Execute-Cycle
Primitive
Types
Reference
Local
Parameters
Variables
Instance variables
Class variables
Instance variables State
Object Instance methods
Encapsulation Visibility modifiers
Class variables
Class Class methods
Interface Nested classes
Object-oriented programming Inheritance
Generic
Exception ArrayStack
Stack DynamicArrayStack
LinkedStack
System
Applications
Syntactical Analysis
LinkedQueue
Queue CircularQueue Simulations
Applications Systems
ArrayList State-space-search
SinglyLinkedList
List DoublyLinkedList
Abstract Data Types
(ADT)
Binary Search Tree CircularList
Recursion
Iterator
10 55
Prenez note !
« Le professeur doit fournir un plan de cours lors de la première rencontre avec les
étudiants au début de chaque cours. » (Réglèment scolaire 8.5)
Ce plan de cours demeurera inchangé pour tout le reste du semestre !
12 55
Évaluations
Examen mi-session : 25 %
Examen final : 40 %
Devoirs (4) : 25 %
Laboratoires (10–12) : 10 %
Vous devez obtenir au moins 50% aux examens pour passer le cours, un échec aux
examens entraînera un échec pour le cours !
13 55
Examens
Mi-session Dimanche 1 mars 2020, 10 h à 12 h
Livres fermés
Final Livres fermés
14 55
Intégrité dans les études
Ceci s’applique à tout le monde
L’an passé, plus de 40 étudiants ont eu une allégation de fraude contre eux pour les
devoirs 1 . . .
16 55
Ceci s’applique à tout le monde
. . . et 2 !
Chaque lien montre la relation entre une paire de soumissions.
Les étiquettes indiquent le degré de similitude et le nombre de lignes de code (entre
parenthèses).
17 55
Intégrité dans les études
Fraude scolaire : « (. . . ) tout acte commis par un étudiant qui peut avoir pour résultat
la falsification de son évaluation scolaire ou de celle d’un autre étudiant.
Voici des exemples :
remettre un travail fait par quelqu’un d’autre ou faire le travail pour quelqu’un
d’autre ;
falsifier une évaluation scolaire ;
présenter un travail acheté sur Internet ;
plagier les idées.
Règlements :
http://www.uottawa.ca/administration-et-gouvernance/
reglement-scolaire-14-autres-informations-importantes
18 55
Bonnes pratiques
Ne publiez jamais votre code source sur GitHub publiquement avant la date limite
pour la soumission du devoir.
Vous pouvez publier votre solution après la date limite de soumission.
Cependant, vous devriez retirer votre numéro d’étudiant de l’Université d’Ottawa, car
quelqu’un d’autre pourrait utiliser cette information à mauvais escient.
Vous devez aussi être prudent, dans certains cas vous publiez du code source qui n’est
pas le vôtre.
En particulier, vous pourriez publier le code source qui a été développé par les
instructeurs.
19 55
Vous êtes la victime
La première victime en copiant la solution de quelqu’un d’autre, c’est vous.
Vous n’apprendrez pas «comment apprendre».
Peut-être comprenez-vous la solution que vous avez copiée.
Cependant, vous n’aurez pas réussi à apprendre comment créer ces solutions en
premier lieu.
Bien sûr, cela aura un impact sur votre capacité à passer les examens.
Mais cela aura aussi un impact sur votre capacité à trouver l’emploi de vos rêves.
Les entrevues pour les postes en génie logiciel et en informatique sont très approfondies.
On vous demandera de résoudre des problèmes qui pourraient en fait être similaires à
ceux que l’on trouve dans nos devoirs.
20 55
Soyez extrêmement prudent, dans certains cas, les
étudiants ne savaient pas que leur solution
avait été copiée, ce qui rend ce message
important pour tous.
Fraude scolaire : scénarios
Levez la main, si vous avez l’intention de tricher dans ce cours !
Quelqu’un vous demande l’accès à votre devoir
c’est un ami
il est trop tard, il ou elle ne terminera pas dans les temps. . .
tous les intervenants obtiennent la note 0
Vous êtes bloqué
vous choisissez de collaborer avec une ou plusieurs équipes
tous les intervenants obtiennent la note 0
Autres sanctions, les dossiers sont transmis au vice-doyen aux études de premier
cycle : l’étudiant obtient 0, pour ce devoir, pour tous les devoirs, pour le cours,
suivre un cours d’étique, expulsion de l’université, etc.
22 55
Analogie avec les sports de haut niveau
23 55
Politique sur l’utilisation des appareils
électroniques
24 55
Opinion (que je partage) de Jacques Nantel
des HEC
«[V]ous êtes devenus les fiduciaires des [dollars] confiés par les
contribuables dans l’espoir que vous puissiez contribuer à améliorer
notre société. Vous avez donc l’obligation de travailler fort,
d’apprendre et de sortir plus instruits que vous ne l’étiez en y
entrant.»
«La place que vous occupez», Opinion de Jacques Nantel des HEC publiée dans l’édition
du 5 avril 2016 de La Presse+, Section débats, écran 6
25 55
Contenu
Contenu
Devoirs
27 55
Devoirs
28 55
Devoirs
29 55
Devoirs
30 55
Devoirs
31 55
Samuel Bostock 2010 Liam Shea Williams 2010
Quentin Smith 2011
32 55
Olivier Gagnon 2012 (LVM Modifiée)
Olivier Gagnon 2012
33 55
Liban Osman 2012
Liban Osman 2012
34 55
Matthew Horton 2012
Matthew Horton 2012
Matthew Horton 2012
35 55
Jonathan Ermel 2012
36 Jonathan Ermel 2012 55
William Pearson 2014
Matthew Pollex 2015
Matthew Pollex 2015 (AI Pong)
38 55
Objectifs d’apprentissage du cours
L’objectif principal du cours est de savoir implémenter et utiliser les types abstraits
de données, et en particulier, les listes, les piles, les files et les arbres binaires de
recherche.
Afin de développer des solutions élégantes et robustes, des connaissances suffisantes
de la programmation orientée objet sont nécessaires : encapsulation, héritage et
polymorphisme.
Nous traiterons aussi des entrées-sorties, interfaces usager, et JUnit.
39 55
Difficultés
Les concepts de haut niveau sont simples
La difficulté principale consiste à traduire les idées de haut niveau en
implémentation concrète
40 55
Difficultés
Google en mode croissance à Montréal
La Presse, publié le 1er février 2011
(http://bit.ly/zspirb)
« (. . . ) de très fortes habiletés de programmation (. . . ) On ne veut pas seulement
des gens qui ont des idées. On veut quelqu’un capable de s’asseoir et de coder »
« La directive qu’on a reçue est d’engager autant de bons employés qu’on peut en
recruter. II n’y a pas de quota sur la quantité, mais nous avons un seuil de qualité très
élevé. »
« Les équipes de Toronto, Ottawa et Waterloo bénéficieront aussi d’un coup
d’accélérateur »
41 55
We tend to look at the teacher/learner relationship the wrong way
around : it’s not that the teacher teaches ; it’s that the student
learns.
Pragmatic Thinking and Learning — Andy Hunt
Difficultés
Ne faites pas de copier-coller, écrivez le code vous même !
Faites tous les devoirs !
Faites tous vos laboratoires !
Ayez une attitude positive face à la programmation !
Souriez !
43 55
Difficultés (suite) : ITI1521 2016
20 19% A+
4 4% A
11 10% A-
3 3% B+
5 5% B
6 6% C+
3 3% C
1 1% D+
1 1% D
6 6% E
3 3% F
4 4% EIN
3 3% ABS
38 35% Abandon
44 55
Livre du cours
E. B. Koffman, P. A. T. Wolfgang. Data
Structures : Abstraction and Design
Using Java. John Wiley & Sons, 3e
edition, 2016.
45 55
Livre du cours
E. B. Koffman and P. A. T. Wolfgang.
Data Structures : Abstraction and
Design Using Java. John Wiley & Sons,
2e edition, 2010.
46 55
Livre du cours (alternative)
Pourriez-vous recommander un volume
plus abordable ?
E. Koffman and P. Wolfgang (2005)
Objects, Abstraction, Data Structures
and Design : Using Java Version 5.0.
Wiley, 880 pages. (ISBN :
0-471-69264-6)
47 55
Livre du cours (alternative)
Pourriez-vous recommander un livre plus
abordable ?
E. Koffman and P. Wolfgang (2005)
Objects, Abstraction, Data Structures
and Design : Using Java. Wiley, 864
pages. (ISBN : 0-471-46756-1)
48 55
Livre du cours (alternative)
Pourriez-vous recommander un livre encore plus abordable ?
Java Structures : Data Structures in Java for the Principled Programmer by Duane
A. Bailey
www.cs.williams.edu/∼bailey/JavaStructures/Book.html
49 55
Livre sur Java
Je ne connais pas le langage de
programmation Java !
P. Sestoft. Java Precisely. The MIT
Press, 3e edition, August 2016. (∼ 40 $)
50 55
Épilogue
Netiquette
Piled Higher and Deeper by Jorge Cham www.phdcomics.com
title: "How To Write An E-mail To Your Instructor Or Teaching Assistant" - originally published 4/22/2015
51 55
Prologue
Résumé
Vous devez obtenir au moins 50% pour la portion examens
Faites tous les devoirs
Faites tous les laboratoires
Ne succombez pas au plagiat
52 55
Prochain module
Introduction à la programmation orientée objet
53 55
References I
E. B. Koffman and Wolfgang P. A. T.
Data Structures : Abstraction and Design Using Java.
John Wiley & Sons, 3e edition, 2016.
E. B. Koffman and Wolfgang P. A. T.
Data Structures : Abstraction and Design Using Java.
John Wiley & Sons, 2e edition, 2010.
P. Sestoft.
Java Precisely.
The MIT Press, 3e edition, 2016.
54 55
Marcel Turcotte
[email protected]
École de science informatique et de génie électrique (SIGE)
Université d’Ottawa
55 / 55