• Study Resource
• Explore

Survey

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Transcript
```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
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
Memoization
Dynamic
Programming
Higher-Order
Procedures
Procedural
Abstraction
Java
Streams
Object-Oriented
Programming
List
Processing
Iteration
Wishful
Thinking
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
like
?
Scheme vs C
•Who would you
marry?
–Pretty but poor?
–Rich but ugly?
friend
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.
Friend
“cs1101s midterm
review”
Why are
you here?
What is the
meaning of life?
many paths to
success
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
voice......
......And most
important, have the