21
CSCA48 Summer 2018 Week 1: ADT Marzieh Ahmadzadeh University of Toronto Scarborough

CSCA48 Winter 2018 Week 1: ADT - University of … Winter 2018 Week 1: ADT ... • Attend on your tutorial only • No tutorial this week. ... Assignment, Lecture, Tutorial, etc.)

  • Upload
    lythuan

  • View
    283

  • Download
    5

Embed Size (px)

Citation preview

CSCA48 Summer 2018Week 1: ADT

Marzieh Ahmadzadeh

University of Toronto Scarborough

Welcome

2

• What is this course about?• More on ADT

• Data structures such as linked lists, trees, etc.• What does a data structure mean?

• What is the difference between a data structure and ADT?

• Algorithm Analysis

• Sorting and searching

• Recursion

Course Structure Break Abstraction

Where to find the course materials?

3

• https://mathlab.utsc.utoronto.ca/courses/csca48/

• Link to lecture notes, assignments, exercises, Piazza, Markus, announcement, course syllabus etc.

Course Structure Break Abstraction

Means of Communications

4

• Piazza• First point of contact• Link in course website• For any question about weekly assignments, technical problems or anything that

peers or TAs can answer.• But not for major assignments

• If you registered for the course but not in Piazza, drop me an email with your utorid, name and student number• Email me with your university email address.

• Be respectful • You may be anonymous for your peers but not for the instructors.

Course Structure Break Abstraction

Means of Communications

5

• Tutorials• To practice what you have learnt• To learn new materials• Smaller group of people• Once a week

• Attend on your tutorial only

• No tutorial this week.• If you haven’t registered yet, please do so asap.

• Practicals• To practice even more• Drop-in sessions• Attend as many sessions as you’d like• No practical this week.

• Office hours• Wednesdays 10-11, 14-15

Course Structure Break Abstraction

Lectures

6

• Lecture slides will be posted on course webpage

• Attendance is strongly recommended• The usefulness of slides is similar to having some (but not all) of the

ingredients of a Pizza without a dough

• Important announcement will be made

Course Structure Break Abstraction

References

7

• Online book: How to think like a computer scientist

• Textbook: Data structures and algorithms in Python by M. Goodrich

• Reading materials will be provided weekly on course webpage

Course Structure Break Abstraction

Assessment

8

Assessment Weight Comment

Term Tests 25% Written Exam. Two tests (2 x 12.5%).

Final 45% Comprehensive written exam.

Major Assignments 15% 2 Assignments ( 7% + 8%).

Weekly Assignments 10% 11 Assignments. Equal weight. One will be dropped.

Worksheets 5% In-class assignments

• Final mark calculation: (Final x .45 + max(TT1, TT2) x.125 + max (min(TT1, TT2), Final) x .125) + A x .15 + WA x.1 + W x .05• Assume that all are out of 100

• (Final x .45 + max(TT1, TT2) x .125 + max (min(TT1, TT2), Final) x .125) MUST BE >= 35 to pass the course.

Course Structure Break Abstraction

Important Dates

9

Uploaded DateDeadline

Date Time

Wee

kly

Exer

cise

s

1 11-May 18-May 5:00 PM

2 18- May 25-May 5:00 PM

3 21-May* 1-Jun 5:00 PM

4 1-Jun 8-Jun 5:00 PM

5 8-Jun 15-Jun 5:00 PM

6 15-Jun 22-Jun 5:00 PM

7 29-Jun 6-Jul 5:00 PM

8 6-Jul 13-Jul 5:00 PM

9 13-Jul 20-Jul 5:00 PM

10 20-Jul 27-Jul 5:00 PM

11 27-Jul 3-Aug 5:00 PM

Assignment 1 1-Jun 23-Jun 5:00 PM

Assignment 2 6-Jul 28-Jul 5:00 PM

Midterm 1 TBA

Midterm 2 TBA

Final TBA

*we would have a make up lecture in this weekInstead no lecture on Aug 6th.

Course Structure Break Abstraction

Collaboration

10

• Exercises are there to help you learn:• So I do encourage you to collaborate on exercises however everyone should

submit their own version.

• Assignments are there to evaluate you: • So NO collaboration on assignments are accepted.

• Plagiarism detectors will catch you!

Course Structure Break Abstraction

Late submission

11

• No late submission for exercises is accepted.

• Late submission for assignments are accepted if you have legitimate reason such as medical emergency.• Email me asap before the deadline

• Send me the illness verification form at most 24 hours after the deadline.

Course Structure Break Abstraction

Missed midterm

12

• If a midterm is missed• Your missed misterm will be replaced by your final mark.

• You can miss only one midterm.

Course Structure Break Abstraction

A08, 108, A20 and A48

13

• If you passed 108 or A20, you need to fill the gaps.• I don’t know, which part(s) you will need a help on. So ask questions and let

me know.

• If you passed A08, make sure you haven’t forgotten the key concepts.

Course Structure Break Abstraction

Academic Integrity

14

• Plagiarism - Using the words or ideas of another person without citing the source.

• Unauthorized Aids - Using unauthorized aids, which could be considered cheating on tests and exams.

• Unauthorized Assistance - Having someone else do the work for you.

• Forgery or falsification - Making a false statement, presenting a false document or signing someone else’s name on a document required by the University.

• Personation - Having someone else write an exam for you or writing an exam for someone else.

• Self- Plagiarism - Submitting work for credit in a course when you have submitted it in another course

Course Structure Break Abstraction

AccessAbility

15

• Diverse learning styles

• disability/health consideration that may require accommodations

• Feel free to approach me and/or the AccessAbility Services ASAP.

• AccessAbility Services: • Room SW302 • 416-287-7560 • [email protected].

• The sooner you let us know your needs the quicker we can assist you in achieving your learning goals in this course

Course Structure Break Abstraction

How to succeed in this course?

16

• Practice, practice, practice

• Do not miss anything in this course (i.e. Exercise, Assignment, Lecture, Tutorial, etc.)

• Do not just read the given codes, rewrite it yourself

• Ask questions!

Course Structure Break Abstraction

17

Course Structure Break Abstraction

The Story of Software Engineering

18

• Requirement Engineering

• Software Architecture Design

• Implementation

• Testing

• Maintenance

• Cost of change will dramatically increase in later stages.

Course Structure Break Abstraction

Why do we need an abstract class?

19

• Change will be easier with less cost.

• To focus on operations rather than implementation• To hide away implementation details

• To make the codes reusable:• Therefore ADT is closely related to inheritance concept

• It doesn’t make sense to instantiate some classes• abstract classes vs concrete classes

• It makes it possible to declare a method without implementing it.

Course Structure Break Abstraction

Defining an abstract class in Python

20

• Abstract classes inherits from ABC (Abstract Base Classes) module in Python.

• At least one of the methods should be decorated with @abstractmethod

• An abstract class can contain both abstract and non-abstract method

• An abstract method must be overrriden in all of the subclasses.

Course Structure Break Abstraction

What is an ADT?

21

• An abstraction of a data structure.

• Includes:• Data

• Operation

• Exceptions (almost always)

Course Structure Break Abstraction