1 Welcome Jeff Edmonds York University Lecture 1 COSC 3101 Jeff Edmonds \~jeff\courses\3101...
-
Upload
lauren-ferguson -
Category
Documents
-
view
226 -
download
0
Transcript of 1 Welcome Jeff Edmonds York University Lecture 1 COSC 3101 Jeff Edmonds \~jeff\courses\3101...
1
Welcome
Jeff Edmonds
York UniversityLecture 1 COSC 3101
Jeff Edmonds www.cse.yorku.ca\~jeff\courses\3101
[email protected] 3044, ext. 33295
416-538-7413
2
Steps, Assignments, Practice Tests, Unit Tests, Exam
Slides
Videos Of my lectures
Fall 2011Text
Extra Text: Cormen, Leiserson, Rivest, and Stein "Introductin to Algorithms",
Good to have, but not needed for this course.
Course Material
3
Course Material
www.cse.yorku.ca\~jeff\courses\3101\syllabus
4
Steps: • For each unit, I spoon feed you the key ideas from each unit
as a set of steps.• Learn them! Understand them!• With only them, you are on your way to passing.
Without them, you are on your way to failing.• Lectures consists of many examples of using these steps.
Assignments: Practice key ideas. Do them!
Practice Tests: Do them!
Text “How to Think about Algorithms”: Buy it and read it.
Course Material
5
• What do you think about 3101?
• Was by far the hardest course ever.• I got the worst midterm mark ever.• I almost gave up.• But opened a door to such an interesting
world for me.• Learned to see things abstractly and from
different angles• After working a few years, I realized that
3101 was the most useful course I took.
6
• What do you think about 3101?
Hey Jeff,Never thought I would say this but I missed you a little bit.I was able to solve some interesting business programming problems - all by myself by just thinking back to the course. The main thing I got out of the course is belief in higher self and the ability to relax.If taken professionally, you weren't kidding that the course would be helpful for us in life and not just academically.
7
It deeply saddens me when a third of the class does not learn the material
sufficiently to pass.
I will do everything in my power to help you learn this material.
I request that you do everything in your power.
A Contract to Learn
Everyone can learn it.
8
Last year and this summer, I threatened them every day.
They performed better than ever before!
And my course evaluations were better.
Tough Love
9
Think about Algorithms Abstractly
Devastated by the midterm
Change your thinking now.
This course requires completely changing the way you think about algorithms.
Though I keep warning people, they tend not to get it until they are
10
You spend 50hrs/week on your programming courses.
Study Now!
Study the material deeplybefore fail the tests.
11
We will work you HARD:• 6 assignments• 5 practice tests • 5 unit tests • Participation• An exam• Mark =
Marks
4%*5=20% 11%*5=55%
2% 10%
35% 78%
Σi=1..5 [ 0.04 Ti + 0.07 Max(Ti,E) ]
+ [ 0.02 P + 0.08 Max(P,E) ] + 0.35 E
0% -4% 0%
12
5 unit tests:
• Each unit test, half the class fails. “Fail early, fail often”
• Then almost everyone starts to listen and passes the exam.
• Don’t want to people who fail the midterms to give up
• Want people to work on the midterms
Marks
7% max(Ti,E)
4% Ti
4%*5=20% 11%*5=55%
13
Class Participation:
• Asking/Answering questions in class
• Attending office hours
• Talking to me outside of class
• Submitting a photo *
Marks
14
Marks
Σi=1..5 [ 0.04 Ti + 0.07 Max(Ti,E) ]
+ [ 0.02 P + 0.08 Max(P,E) ] + 0.35 E
% P1 P2
T1 4% 60 25
Max(T1,E) 7% 70 95
T2 4% 80 30
Max(T2,E) 7% 80 95
…
Participation 2% 90 20
Max(P,E) 8% 90 95
Exam 35%
70 95
15
I think it is important for people to not feel isolated with the material.
Together
16
You’re cool! Are you free sometime this weekend?
Yes!The best way to learn is to teach each other!
Together
17
Some students feel too intimidated to talk to the professor.
Actually, he is just a guywho has been doing this for
a while.
Together
18
Office hours: Before/after class tend to be the best time.Longer or private questions, when requested, can be taken back to my office, CSB 3044.
Together
19
Pros• Don’t have to take notes.• Lower fear level that you will miss something.• Flexible to miss a class or two
if working, parenting, sick, …• Read/watch ahead to be prepared for a good discussion.• Read/watch after to review and as a reference.
Together
20
Pros• REALLY good students might feel they don’t have to
come to class (some might be right).
Cons• Cocky students will think they don’t need to come class
but are wrong.• Lazy students will use them as an excuse to skip class
and then never really get to them. Test every other week!Cant be delayed.
Together
21
Please interact with me in class.
Help me know what people are not understanding
Slow down the slides
(Though we do have a lot of material to cover)
Together
22
Please ask questions!
To keep the flow going
• Wiggly hand: relevant to current slide.
• Stationary hand: question about past material.
• Avoid getting off topic.
Together
23
When I ask a question to the class.
Please don’t shout out answers. So others can think.
Together
24
In every class,there is one student
I don’t like.
The key when talking in class is
Together
Are you trying to help me and the class
or win some compitition?
25
Winter 06, the average of one section was much higher than the average of the other. (I taught them both)
My theory was that it was because a student, Gertruda, constantly asked great questions and everyone learned from them.
Ask questions for everyone’s sake.
Please ask questions!
Together
10% of your mark is class participation!
26
• What: • Submit a photo on line• Add a photo to your forum account• If you would like a better rapport with your emails,
please include a photo.• Why:
• I am very bad with names. (Sorry)• Emails and tests are effectively anonymous.• Needed for 10% participation mark. • You can see the class list.
• How:• Submit
- cp photo.jpg Smith_John.jpg - submit 2011 photos Smith_John.jpg (or line)
Submit a PhotoTogether
27
• I communicate to you via the Forum. • You are also encouraged to talk to each other this way. • To be sure that you know when something has been
posted, it is important to subscribe to the course forum.
Forum
• Be sure to subscribe to the course forum and not just to one of its topics
Together
28
When you email me something I need to make a note about send me your cse account. That way I can put it in epost notes and you can see that I have made it.
Together
29
May I have a letter of reference for grad school?
Two years from now:
I find it awkward to write letters for people that I
don’t recognize.
Make yourself KNOWN today to SOME professor.
Together
30Sorry email does not help as I don’t remember names
May I have a letter of reference for grad school?
Two years from now:
I find it awkward to write letters for people that I
don’t recognize.
Make yourself KNOWN today to SOME professor.
Together
31
• HATE that doctors charge you for a doctor's note.• And then it does not actually say that they know
you were sick enough to have missed a test.• So dont tell anyone, but dont pay for a note for me.
Together
32
So you want to be a computer scientist?
33
Is your goal to be a mundane programmer?
34
Or a great leader and thinker?
35
Original Thinking
36
Boss assigns task:
– Given today’s prices of pork, grain, sawdust, …– Given constraints on what constitutes a hotdog.– Make the cheapest hotdog.
Everyday industry asks these questions.
37
• Um? Tell me what to code.
With more sophisticated software engineering systems,the demand for mundane programmers will diminish.
Your answer:
38
Your answer:
• I learned this great algorithm that will work.
Soon all known algorithms will be available in libraries.
39
Your answer:
• I can develop a new algorithm for you.
Great thinkers will always be needed.
40
Course Content
• A list of algorithms. – Learn their code.– Trace them until you are convinced that they
work.– Implement them.– Worry about details.
class InsertionSortAlgorithm extends SortAlgorithm {
void sort(int a[]) throws Exception {
for (int i = 1; i < a.length; i++) {
int j = i;
int B = a[i];
while ((j > 0) && (a[j-1] > B)) {
a[j] = a[j-1];
j--; }
a[j] = B;
}}
41
Course Content• A survey of algorithmic design techniques.• Abstract thinking.• How to develop new algorithms for any
problem that may arise.
42
Study:
• Many experienced programmers were asked to code up binary search.
43
Study:
• Many experienced programmers were asked to code up binary search.
80% got it wrong
Good thing is was not for a nuclear power plant.
44
What did they lack?
45
What did they lack?
• Formal proof methods?
46
What did they lack?
• Formal proof methods?
Yes, likely
Industry is starting to realize that formal methods
are important.
But even without formal methods …. ?
47
What did they lack?• Fundamental understanding of the
algorithmic design techniques.• Abstract thinking.
48
Course Content
Notations, analogies, and abstractions
for developing,
thinking about,
and describing algorithms
so correctness is transparent
49
A survey of fundamental ideas and algorithmic
design techniques
For example . . .
50
Some Math
Recurrence RelationsT(n) = a T(n/b) + f(n)
Input Size
Tim
e
Classifying Functionsf(i) = nQ(n)
Adding Made Easy∑i=1 f(i).
Time Complexityt(n) = Q(n2)
Logic Quantifiers g "b Loves(b,g)"b g Loves(b,g)
Logs and Exps
2a × 2b = 2a+b
2log n = n
51
Iterative Algorithms Loop Invariants
i-1 i
ii0
T+1<preCond> codeA loop <loop-invariant> exit when <exit Cond> codeBcodeC<postCond>
9 km
5 km
Code Relay RaceOne step at a time
52
Recursive Algorithms
?
?
53
Graph Search Algorithms
54
Network Flows
55
Greedy Algorithms
NEED A PIC HERE (NOT POOH)
56
Recursive Back Tracking
57
Dynamic Programing
58
Reduction
=
Rudich www.discretemath.com
59
Course Material
www.cse.yorku.ca\~jeff\courses\3101\syllabus
60
Steps: • For each unit, I spoon feed you the key ideas from each unit
as a set of steps.• Learn them! Understand them!• With only them, you are on your way to passing.
Without them, you are on your way to failing.• Lectures consists of many examples of using these steps.
Assignments: Practice key ideas. Do them!
Practice Tests: Do them!
Text “How to Think about Algorithms”: Buy it and read it.
Course Material
61
End
Iterative AlgorithmsMath
62
Useful Learning Techniques
63
Read Ahead
You are expected to read the lecture notes before the lecture.
This will facilitate more productive discussion during class.
Like in an English class
Also please proof readassignments & tests.
64
Explaining
• We are going to test you on your ability to explain the material.
• Hence, the best way of studying is to explain the material over and over again out loud to yourself, to each other, and to your stuffed bear.
65
Day Dream
Mathematics is not all linear thinking.
Allow the essence of the material to seep into your
subconscious
Pursue ideas that percolate up and flashes of
inspiration that appear.
While going along with your day
66
Be Creative
•Ask questions. • Why is it done this way and not that way?
67
Guesses and Counter Examples
• Guess at potential algorithms for solving a problem.
• Look for input instances for which your algorithm gives the wrong answer.
• Treat it as a game between these two players.
68
Refinement:The best solution comes from a
process of repeatedly refining and inventing alternative solutions
Rudich www.discretemath.com
69
This term we will provide two hours a week of contact hours
with the TA.
Together
Ask me anything!• Class material• Help YOU solve the assignment
questions.• Material missed from previous
courses• Your love life
70
This term we will provide two hours a week of contact hours
with the TA.
Yes!I will be sure
to attend.
Together
We can have• Practice Tests• Lectures• One-on-one time• Group discussions
71
I will take attendance!
This will effect your participation mark!
Yes!I will be sure
to attend.
Together
72
Sorry!I will not have time
to mark the assignments.
This might be better anyway.
Together
But we can I read your solution together during the TA hours.
73
Lets schedule the office hours now.
Together