Welcome to SoC!

advertisement
Welcome
to SoC!
CS1101S or
CS1010?
why are
you here?
DDP folks
You can
sleep
Turing
Programme
Yes, you
also can
sleep
Brief History
• Scheme was developed at MIT
in 1975 to teach programming
methodology
• First introduced at NUS 13
years ago
• I took this class at MIT in 1994.
What is
Scheme?
(+ 5 3)
8
(- (+ 5 3) (* 2 3))
prefix notation
2
(+ 5 6)
11
(define a 5)
(+ a 6)
11
Scheme is Expressive
(define (square
To
x)
(*
x
x))
square something, multiply it by itself
(square
2)
4
(square (square 3))
36 81
Congratulations!
You know
Scheme
Why
Scheme?
Simple
(didn’t you just learn
it in 10 mins? )
Futile to Teach a
Language
(Here today, gone tomorrow)
Computational
Thinking
Towers of Hanoi
Towers of Hanoi
Towers of Hanoi
Towers of Hanoi
Towers of Hanoi
Towers of Hanoi
Towers of Hanoi
Towers of Hanoi
Can you solve
this
for 1,000 discs?
How would we
think about the
problem?
What if we
have one
disc?
What if we have
no discs?
Do nothing!
Towers of Hanoi
A
B
C
Suppose we know how to move
3 discs from A to C
Towers of Hanoi
A
B
C
Suppose we know how to move
3 discs from A to C
Towers of Hanoi
A
B
C
Claim: we can move
3 discs from A to B. Why?
Towers of Hanoi
A
B
C
Claim: we can move
3 discs from A to B. Why?
Towers of Hanoi
A
B
C
What do we do for
4 discs?
Towers of Hanoi
(define (move-tower size from to extra)
(cond ((= size 0) #t)
(else
(move-tower (- size 1) from extra to)
(print-move from to)
(move-tower (- size 1) extra to
from))))
from
extra
to
Towers of Hanoi
(define (print-move from to)
(newline)
(display "move top disk from ")
(display from)
(display " to ")
(display to))
Recursion
CS1101S Road Map
Memoization
Dynamic
Programming
Higher-Order
Procedures
Procedural
Abstraction
Java
Streams
Object-Oriented
Programming
List
Processing
Iteration
Wishful
Thinking
ADVANCED
Symbolic
Data
Data
Abstraction
Recursion
INTERMEDIATE
Generic
Operators
Mutation &
State
BASIC
Order of
Growth
Fundamental concepts of computer programming
CS1101S or
CS1010?
How to
decide?
Puke
Test
Caveat
• To enroll in CS1101S, min
requirement of A grade for ‘A’
Level Math or equivalent.
• Or you can appeal at
Undergrad Office
like
?
Scheme vs C
•Who would you
marry?
–Pretty but poor?
–Rich but ugly?
Ask your
friend
Ask a
senior
10 Reasons NOT to take CS1101S
1. If you hate Math
2. If you don’t like challenges
3. If you cannot manage selfstudying and need to be
spoonfed
4. If you just want to get a free A
5. If you are not interested in
learning more
10 Reasons NOT to take CS1101S
If you don’t like personalised attention
If you don’t wish to meet like-minded
peers
8. If you don’t care about applying your
knowledge
9. If you don’t take shocks well/if you fear
evilness
10. If you don’t like shuai prof :P
6.
7.
Google is your
Friend
“cs1101s midterm
review”
Why are
you here?
What is the
meaning of life?
many paths to
success
“Your time is limited,
so don't waste it living
someone else's life.
Don't be trapped by
dogma - which is living
with the results of
other people's
thinking. Don't let the
noise of other's
opinions drown out
your own inner
voice......
......And most
important, have the
courage to follow your
heart and intuition.
They somehow
already know what
you truly want to
become. Everything
else is secondary.”
- Steve Jobs
QUESTIONS
Download