CS计算机代考程序代写 prolog data structure Bioinformatics Java algorithm junit ITI 1121. Introduction to Computing II – subtitle

ITI 1121. Introduction to Computing II – subtitle

ITI 1121. Introduction to Computing II
Course requirements

by

Marcel Turcotte

Version January 6, 2020

Preamble

Preamble

Learning objectives

Learning objectives

Inform about the course requirements.
Explain the general learning objectives in this course.
Know the university regulations on academic fraud.

Readings:
This document, as well as these:

Plan de cours
Academic Integrity

1 53

http://www.site.uottawa.ca/~turcotte/teaching/iti-1121/syllabus/index.pdf
https://www.uottawa.ca/vice-president-academic/academic-integrity

Preamble

Plan

Plan

1 Preamble

2 Syllabus

3 Academic integrity

4 Content

5 Epilogue

6 Prologue

2 53

Marcel Turcotte : short bio!

1965- Born in Montréal
1995 Ph. D. in Computer Science, Université de Montréal

1995–97 University of Florida (U.S.), Chemistry Department
1997–00 Imperial Cancer Research Fund, London, England

2000- University of Ottawa
2006–08 Coordinator for the coop program (computer science)
2010–11 Coordinator master in bioinformatics
2012–18 Vice-dean of undergraduate studies

3 53

Source: blog.f1000.com

F1000Prime Faculty Launch: Bioinformatics, Biomedical Informatics & Computational Biology

Marcel Turcotte : short bio!

1. RNA and DNA, regulation of gene expression, secondary structure, pattern inference,
text algorithmic

2. Software: MC-Sym (co-author), eXtended-Dynalign, Profile-Dynalign, Seed,
ACSEA, ModuleInducer, RiboFSM, MotifGP, Seedw

3. Designing algorithms and data structures, applied artificial intelligence and machine
learning

5 53

Source: QIAGEN/CLC bio

https://www.qiagenbioinformatics.com

Syllabus

Course content

Computer
Architecture

Object-oriented programming

Abstract Data Types
(ADT)

7 53

Course content

Computer
Architecture

Object-oriented programming

Variables

Object

Class

Interface

Inheritance

Generic

Exception

Abstract Data Types
(ADT)

Stack

Queue

List

Binary Search Tree

Memory

CPU

Compilation

Program
execution

8 53

Course content
Computer

Architecture

Object-oriented programming

Variables

Types

Local

Parameters

Instance variables

Class variables

Object

Instance variables

Instance methods

Encapsulation

Class

Class variables

Class methods

Nested classesInterface

Inheritance

Generic

Exception

Abstract Data Types
(ADT)

ArrayStack

DynamicArrayStack

LinkedStack

Applications

Stack

Queue

LinkedQueue

CircularQueue

Applications

List

ArrayList

SinglyLinkedList

DoublyLinkedList

CircularList

Recursion

Iterator

Binary Search Tree

Memory

CPU

Compilation

Program
execution

Reading

Writing

Fetch-Execute-Cycle

9 53

Course content
Computer

Architecture

Object-oriented programming

Variables

Types

Primitive

Reference

Local

Parameters

Instance variables

Class variables

Object

Instance variables

Instance methods

Encapsulation Visibility modifiers

Class

Class variables

Class methods

Nested classes

State

Interface

Inheritance

Generic

Exception

Abstract Data Types
(ADT)

ArrayStack

DynamicArrayStack

LinkedStack

Applications

System

Syntactical Analysis

Stack

Queue

LinkedQueue

CircularQueue

Applications

Simulations

Systems

State-space-search

List

ArrayList

SinglyLinkedList

DoublyLinkedList

CircularList

Recursion

Iterator

Binary Search Tree

Memory

CPU

Compilation

Program
execution

Reading

Writing

Fetch-Execute-Cycle

10 53

Take note!

“Professors must supply a course syllabus during the first meeting with the students
at the beginning of each course.” (Academic Regulation 8.5)
The course syllabus will remain unchanged for the rest of the semester!

12 53

Evaluations

Examen midterm: 25 %
Examen final: 40 %
Assignments (4): 25 %
Laboratories (10–12): 10 %

You must get at least 50% on the exams to pass the course. Failure on the exams will
result in failure on the course!

13 53

Examinations

Midterm Sunday March 1, 2020, 10:00 – 12:00
Closed books

Final Closed books

14 53

Academic integrity

This applies to everybody!

Last year, over 40 students were alleged to have committed an academic fraud for
their first assignment. . .

16 53

This applies to everybody!

. . . and second assignment!
Each link shows the relationship between a pair of submissions.

The labels indicate the degree of similarity and the number of lines of code (in
parentheses).

17 53

Academic integrity

Academic fraud: Any act by a student that may result in a distorted academic
evaluation for that student or another student.

plagiarising or cheating in any way;
submitting work not partially or fully the student’s own;
submitting the same work or a large part of the same piece of work in more
than one course;
falsifying or misrepresenting an academic evaluation, using a forged or altered
supporting document or facilitating the use of such a document;
taking any action aimed at falsifying an academic evaluation.

Regulation:
https://www.uottawa.ca/administration-and-governance/

academic-regulation-14-other-important-information

18 53

https://www.uottawa.ca/administration-and-governance/academic-regulation-14-other-important-information
https://www.uottawa.ca/administration-and-governance/academic-regulation-14-other-important-information

Good practices

Never publish your source code on GitHub publicly before the deadline for the
submission of the assignment.
You can publish your solution after the deadline.

However, you should withdraw your University of Ottawa student number, because
someone else could misuse this information.
You also need to be careful, in some cases you may be publishing source code that
isn’t yours.

In particular, you could release source code that was developed by the instructors.

19 53

You’re the victim

The first victim in copying someone else’s solution is you.
You won’t learn “how to learn.”
Maybe you understand the solution you copied.

However, you won’t have been able to learn how to create those solutions in the
first place.
Of course, that will impact your ability to pass the exams.
But it will also impact your ability to find your dream job.
Interviews for software engineering and computer science positions are very thorough.
You’ll be asked to solve problems that may in fact be similar to the ones we have in
our assignments.

20 53

Be extremely careful, in some cases, the
students didn’t know their solution had

been copied, which makes this message
important for everyone.

Academic fraud: scenarios

Raise your hand if you intend to cheat in this class!

Someone’s asking for access to your assignment.
This person is a friend.
It’s too late. This poor soul won’t finish in time. . .

You’re stuck.
You choose to collaborate with one or more teams. . .

The files are forwarded to the representative of the Dean: the student gets 0, for this
assignment, for all assignments, for the course, to take an ethics course,
expulsion from the university, etc.

22 53

Analogy with high-level sports

23 53

Policy on the use of electronic devices

24 53

Content

Assignments

25 53

Assignments

26 53

Assignments

27 53

Assignments

28 53

Assignments

29 53

Samuel Bostock 2010 Liam Shea Williams 2010

Quentin Smith 2011

30 53

Olivier Gagnon 2012

Olivier Gagnon 2012 (LVM Modifiée)

31 53

Liban Osman 2012

Liban Osman 2012

32 53

Matthew Horton 2012

Matthew Horton 2012

Matthew Horton 2012

33 53

Jonathan Ermel 2012

Jonathan Ermel 201234 53

William Pearson 2014

Matthew Pollex 2015
Matthew Pollex 2015 (AI Pong)

36 53

Learning objectives of the course

The main objective of the course is to learn how to implement and use abstract
data types

In particular, lists, stacks, queues and binary search trees.
In order to develop elegant and robust solutions, knowledge of the object-oriented
programming, encapsulation, inheritance and polymorphism are necessary.
We’ll also be learn about I/O, user interfaces, and JUnit.

37 53

Difficulties

The high-level concepts are simple!
The main difficulty consists of translating the high-level ideas into a concrete
implementation!

38 53

Difficulties

Google in Growth Mode in Montreal
La Presse, published February 1, 2011.

(https://bit.ly/2rYp9TV)

“(. . . ) very strong programming skills (. . . ) We don’t just want people who have
ideas. We want someone who can sit down and code.”

“The directive we’ve received is to hire as many good employees as we can recruit.
There is no quota on the quantity, but we have a very high quality threshold.”

“The teams from Toronto, Ottawa and Waterloo will also benefit from a jolt of the
accelerator.”

39 53

https://bit.ly/2rYp9TV

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

Difficulties

Don’t cut-and-paste source code, rewrite the examples by yourself!
Do all the assignments!
Do all the laboratories!
Keep a positive attitude towards programming!
Smile!

41 53

Difficulties (continued): a section from 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

42 53

Textbook

E. B. Koffman, P. A. T. Wolfgang.
Data Structures: Abstraction and
Design Using Java. John Wiley & Sons,
3e edition, 2016.

43 53

Textbook

E. B. Koffman and P. A. T. Wolfgang.
Data Structures: Abstraction and
Design Using Java. John Wiley & Sons,
2e edition, 2010.

44 53

(Alternative) textbook

Could you recommend an affordable
alternative?

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)

45 53

(Alternative) textbook

Could you recommend an affordable
alternative?

E. Koffman and P. Wolfgang (2005)
Objects, Abstraction, Data Structures
and Design: Using Java. Wiley, 864
pages. (ISBN: 0-471-46756-1)

46 53

(Alternative) textbook

Could you recommend an even more affordable alternative?
Java Structures: Data Structures in Java for the Principled Programmer by Duane A.
Bailey

www.cs.williams.edu/∼bailey/JavaStructures/Book.html

47 53

http://www.cs.williams.edu/~bailey/JavaStructures/Book.html

Book on Java

I am new to programming in Java!
P. Sestoft. Java Precisely. The MIT
Press, 3e edition, August 2016.
(∼ 40 $)

48 53

Epilogue

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

49 53

Prologue

Summary

You need to get at least 50% for the exam portion of the grades.
Do all the assignments.
Do all laboratories.
Don’t succumb to plagiarism.

50 53

Next Module

Introduction to object-oriented programming

51 53

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.

52 53

Marcel Turcotte
Marcel.

School of Electrical Engineering and Computer Science (EECS)
University of Ottawa

53 / 53

Marcel.

Preamble
Learning objectives
Plan

Syllabus
Academic integrity
Content
Epilogue
Prologue