Transcript
Page 1: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Ladan Tahvildari, PEng, SMIEEE Associate Professor

Software Technologies Applied Research (STAR) Group

Dept. of Elect. & Comp. Eng.

University of Waterloo

ECE250: Algorithms and Data Structures

Welcome

Page 2: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 2

Instructor

Ladan Tahvildari, PEng, SMIEEE Associate Professor Software Technologies Applied Research Group http://www.stargroup.uwaterloo.ca/ Email: [email protected] Room: EIT-4136 Office Hours: Tuesday 12:30-1:30pm

Page 3: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 3

Lab Instructor

l  Tiuley Alguindigue Ø  Email: [email protected] Ø Room: E2-2360A Ø Office Hours: By Appointment

Page 4: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 4

Teaching Assistants l  Mahsa Emami Taba

Ø  PhD Candidate Ø  Email: [email protected] Ø  Room: DC-3574

Ø  Task: Marking Assignments

Ø  Office Hours: ü  Monday: 12:30-1:30pm ü  Wednesday: 12:30-1:30pm

Page 5: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Teaching Assistants l  Jun Zhao

Ø  Master’s Student Ø  Email: [email protected] Ø  Room: DC-3574

Ø  Task: Covering Tutorials

Ø Office Hours ü  Mondays 5:30-6:30pm ü  Thursdays 12:30-1:30pm

Lecture 1 ECE250 5

Page 6: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 6

Teaching Assistants l  Hua Fan

Ø  PhD Student Ø  Email: [email protected]

Ø  Task: Lab/Project TA

Page 7: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 7

Teaching Assistants

l  Olivier Nguyen

Ø  Master’s Student Ø  Email: [email protected]

Ø  Task: Lab/Project TA

Page 8: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 8

About You J l  2A EE/CE Students; Class 2021

l  You have taken –  ECE150: Fundamentals of Programming

•  so you know how to program

–  ECE155: Engineering Design with Embedded Systems •  so you know the engineering design and analysis principles

–  MATH117: Calculus 1 for Engineering •  so you know polynomial, exponential, and logarithmic functions

Page 9: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 9

About This Course J

l  Algorithms and Data Structures

l  Focus on ADTs (Abstract Data Type)

l  Considerable amount of Math

Page 10: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 10

Course Objectives

l  To study effective and efficient data structures and algorithms in a language-independent setting

l  To develop an appreciation of techniques for constructing algorithms and data structures

l  To build upon the notion of levels of abstraction

l  To give the students greater experience in program design

l  To emphasize on mathematical aspects of program efficiency

Page 11: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 11

General Information l  Recommended Books Ø  Cormen, Leiserson, Rivest, Stein (CLRS), Introduction to Algorithms, MIT Press, 2009. Ø  Mark Allen Weiss, Data Structures and Algorithm Analysis in C++, Addison Wesley, 2014.

l  Course Web Site: http://stargroup.uwaterloo.ca/~ece250

Note: First Tutorial; Monday, September 11, 2017

Lecture Ø  Tue Wed Thu; 10:30-11:20am; DC-1350

Extra Lecture Ø  Monday; September 11 & 25; October 30; B1-271

Tutorial Ø  Monday; 4:30-5:20pm; MC-2065

Page 12: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 12

Course Topics

l  Asymptotic and Algorithm Analysis (5hrs) l  Elementary Data Structures (2hrs)

l  Hashing (3hrs)

l  Search Trees, Balanced BSTs, B-Trees (7hrs)

l  Heaps, Priority Queues (2hr) l  Sorting Algorithms (3hrs)

l  Algorithmic Paradigms (3hrs) l  Graphs (7hrs) l  NP-Completeness (3hrs)

Page 13: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 13

Course Mark Weight

Final Exam* 50 Midterm* 20 Homework Assignments** 10 Lab Projects** 20

Note: To pass the course, you must achieve a weighted average of at least 50 for the exams* AND a weighted average of at least 50 for the lab projects and assignments**.

Page 14: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 14

Homework Assignments

l  There will be three homework assignments during the term: –  A1: Wednesday, September 27 (weight 3%) –  A2: Wednesday, November 1 (weight 3%) –  A3: Wednesday, November 29 (weight 4%)

l  All are due @11pm and should be submitted through LEARN

l  Late submissions are NOT allowed

NOTE: Full Description; Course Web Site

Page 15: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 15

Lab Projects

l  There will be four lab projects during the term: –  P1: Sunday, October 8 (weight 3%) –  P2: Sunday, October 22 (weight 5%) –  P3: Sunday, November 12 (weight 6%) –  P4: Sunday, November 26 (weight 6%)

l  All are due @11pm and should be submitted through LEARN

l  Late submissions are NOT allowed

NOTE: Full Description; Course Web Site and LEARN

Page 16: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 16

ECE250 Labs

l  Goal: To provide support for completing course projects l  Attending lab (RCH-108) helps you to complete your course

projects successfully. l  Lab Topics:

–  Lab 0: Arrays in C++ (September 14 & 15; September 19 & 20) –  Lab 1: Stacks/Queues (September 28 & 29; October 3 & 4) –  Lab 2: Hash Tables (October 17-20) –  Lab 3: Trees (November 7-10) –  Lab 4: Graphs (November 21-24)

NOTE: Full Description; LEARN

Page 17: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 17

l  You will be using the C++ programming language to demonstrate your knowledge in this course –  C++ developed by Bjarne Stroustrup starting in 1979 at Bell Labs

l  This course does not teach C++ programming

l  Sources of help in C++ are: –  The first two weeks of tutorials (September 11 & 18) –  Online tutorials:

•  http://www.tutorialspoint.com/cplusplus/ •  http://www.cplusplus.com/ •  http://www.learncpp.com/

–  The Teaching Team: lab instructor, TAs, course instructor

C++

Page 18: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 18

l  You will also be exposed to the Unix environment –  All the projects will be marked in Unix

l  Unix Tutorial: –  http://www.tutorialspoint.com/unix/ –  http://www.unixtutorial.org/

l  You can develop your code on Windows or Apple, but you are responsible for testing your code on Unix

Unix

Page 19: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

Lecture 1 ECE250 19

Plagiarism

l  Projects will be submitted to MOSS (Measure Of Software Similarity) for plagiarism detection –  MOSS was hosted on a Stanford University server and is based on the paper

“Winnowing: Local Algorithms for Document Fingerprinting” by Saul Schleimer, Daniel S. Wilkerson, and Alex Aiken

l  Recommendations to avoid any potential plagiarisms: –  If you viewed another code (from books or lecture notes), you must include a reference

and cite it in your project

–  You can not share code with any other students by transmitting completed functions to your peers

–  You may discuss projects together and help another student debug his or her code; however, you cannot dictate or give the exact solution

Page 20: Ladan Tahvildari, PEng, SMIEEE - University of …stargroup.uwaterloo.ca/~ece250/materials/notes/Lecture1-Welcome.pdfUniversity of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2

The First Quiz

Pre-Assessment Quiz

on C++ Concepts and Programming

Lecture 1 ECE250 20


Recommended