Ladan Tahvildari, PEng, SMIEEE - University of ece250/materials/notes/Lecture1- of Waterloo ECE250: ... Welcome . Lecture 1 ECE250 2 Instructor Ladan Tahvildari, PEng, SMIEEE ... Midterm*

  • View
    243

  • Download
    2

Embed Size (px)

Text of Ladan Tahvildari, PEng, SMIEEE - University of ece250/materials/notes/Lecture1- of Waterloo ECE250:...

  • 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

  • Lecture 1 ECE250 2

    Instructor

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

  • Lecture 1 ECE250 3

    Lab Instructor

    l Tiuley Alguindigue Email: talguindigue@uwaterloo.ca Room: E2-2360A Office Hours: By Appointment

  • Lecture 1 ECE250 4

    Teaching Assistants l Mahsa Emami Taba

    PhD Candidate Email: msemamit@uwaterloo.ca Room: DC-3574

    Task: Marking Assignments

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

  • Teaching Assistants l Jun Zhao

    Masters Student Email: jun.zhao@uwaterloo.ca Room: DC-3574

    Task: Covering Tutorials

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

    Lecture 1 ECE250 5

  • Lecture 1 ECE250 6

    Teaching Assistants l Hua Fan

    PhD Student Email: hua.fan@uwaterloo.ca

    Task: Lab/Project TA

  • Lecture 1 ECE250 7

    Teaching Assistants

    l Olivier Nguyen

    Masters Student Email: olivier.nguyen@uwaterloo.ca

    Task: Lab/Project TA

  • 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

  • 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

  • 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

  • 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

  • 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)

  • 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**.

  • 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

  • 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

  • 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

  • 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++

  • 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

  • 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

  • The First Quiz

    Pre-Assessment Quiz

    on C++ Concepts and Programming

    Lecture 1 ECE250 20