Title: CMSC 198K: Science behind computing
1CMSC 198K Science behind computing
- Bobby Bhattacharjee
- Samir Khuller
- University of Maryland
2Basic Information
- Syllabus
- Email bobby_at_cs.umd.edu (Bobby)
- Email samir_at_cs.umd.edu (Samir)
- TA Kristin Stephens, ksteph_at_cs.umd.edu
- UTA Hailey Lin, halin2007_at_gmail.com
3Course Web Page
- http//www.cs.umd.edu/class/fall2009/cmsc198k/
- All course materials (lecture notes, handouts,
homeworks) shall be available on the class page. - Dates for the exams shall be announced shortly.
4Computer Science
- What is the computer actually doing?
- Its running a program (a set of instructions),
but what is the program doing? - Typically, an algorithm is what the program
implements.
5Science vs Technology
- We are all familiar with the technology, the
internet, the web, the ability to access
information, videos, news, make reservations,
email we use this everyday. - How did this happen?
- Computer Science is a very young field, with most
of the innovation having happened in just the
last 60 years.
6Outline of Topics
- Elementary Algorithms
- Basics about computers
- Basics about programming
- Concepts/Computational thinking
- Some elementary mathematics
- The fun stuff Internet/Secret message
sharing/Communication/Randomization
7A typical conversation
- Person What do you do?
- Me I am a computer science professor.
- Person I have a problem with my PC, can you fix
it? - Me No, I dont think I can do that.
- Person You will not fix my PC?
- Me I cannot fix my PC, let alone yours.
- Person Then what exactly do you do?
- Me I study algorithms.
- Person Oh, I know that.
- Me Really?
- Person Yes! I learnt logarithms in high school.
8Algorithms not Logarithms!
A
L
G
O
R I T H M
Al-Khowarizmi
9Algorithms Introduction
- Recipe for baking a cake.
- 2 sticks butter
- 2 cups flour
- 1 cup sugar
- 4 eggs
- 1 cup milk
- 1 tsp baking powder
- Cocoa powder (1/2 pound)
- Mix the sugar, baking powder and flour, mix in
beaten eggs, melted butter and bake at 325F for
40 mins.
10Algorithms not Logarithms!
A
L
G
O
R I T H M
Al-Khowarizmi
11ALGORITHMS
- Set of instructions for solving a problem, to
find a solution. - What is a problem?
- What is an instruction?
- What is a solution?
12(No Transcript)
13Why are algorithms central to computing?
- An airport shuttle company needs to schedule
pickups delivering everyone to the airport on
time. Who goes in which shuttle, and in what
order do the pickups occur? - A delivery company has several customers and
trucks that can carry objects. How should they
schedule deliveries to the customers to minimize
their cost? - This leads to interesting algorithmic problems
14There are lots of feasible solutions!
- How should we pick amongst these solutions?
- Some solutions are cheap, and others may be
expensive or undesirable. - The number of potential solutions is so large
that even a fast computer cannot evaluate all
these solutions. - Algorithms tell us how to find good solutions!
15Applications of Algorithms
- Google News
- Web Search applications
- Find a file on your computer
- Assigning people to tasks
- E-harmony
- Resident Assignment Problems
16Re-assigning employees
A
A
B
B
C
C
D
D
17Assigning Interns to Hospitals
- The resident matching program is a computer
program that assigns residents (interns) to
hospitals. - Also used for admission to High Schools in
several Asian countries. - Many metrics can be defined, we focus on a
specific metric here.
18(No Transcript)
19A disclaimer
- I have chosen a set of problems whose algorithms
are quite simple. - Towards the end of the talk I will also mention
some recent projects that are a little more
involved, and its hard to really describe the
algorithms and methods used since they are quite
complex.
20The Marriage Problem
- N men, N women
- Each person provides a ranking of the members of
the opposite sex - Can we find a good marriage?
- First studied by Gale and Shapley (1962)
21Mens preference lists
Brad (B)
Vince(V)
2
3
1
George(G)
Jennifer(J)
Laura(L)
Angelina(A)
22Womens Preference List
Jennifer(J)
Angelina(A)
1
2
3
Laura(L)
George(G)
Vince(V)
Brad(B)
23Stable Marriage Problem
- A marriage is unstable if there is a pair of
people, not married to each other, such that both
prefer each other to their current partners. In
other words, they have an incentive to elope. - Can we find a stable marriage?
24Unstable Pairing
- Consider the following pairing
- NOTE Angelina prefers Brad to Vince, but Brad
still prefers Jen to Angelina.
25(Brad, Jen) (Vince, Angelina) (George, Laura)
Unstable since Jen and Vince both prefer each
other to their current partners.
26An application resident matching program
- Each resident rank orders the hospitals, and each
hospital rank orders the residents. - How do we choose an assignment of residents to
hospitals? - We do not want a situation that a resident
prefers another hospital, and that hospital
preferred this resident to the person assigned to
them.
27Running the Algorithm
FIRST ROUND Brad proposes to Jen Vince proposes
to Laura George proposes to Jen
28FIRST ROUND Brad proposes to Jen Vince proposes
to Laura George proposes to Jen
Jen rejects George, engaged to Brad Laura
engaged to Vince Angelina gets no
proposals. (Brad,Jen) and (Vince, Laura)
29SECOND ROUND George proposes to Laura
Laura breaks engagement with Vince, and gets
engaged to George (Brad,Jen) and (George,Laura)
30THIRD ROUND Vince proposes to Jen
31THIRD ROUND Vince proposes to Jen
Jen breaks engagement with Brad, and gets engaged
to Vince (Vince,Jen) and (George,Laura)
32FOURTH ROUND Brad proposes to Angelina
Angelina accepts and gets engaged to
Brad (Vince,Jen), (George,Laura) and
(Brad,Angelina)
33The couples