Why take CS1101S? (or why Scheme?)

Slides:



Advertisements
Similar presentations
Maths and English from Year 3 to Year 9: A student perspective Sue Helme and Richard Teese Centre for Research on Education Systems The University of Melbourne.
Advertisements

Making the Learning Process Work for You
Fall 2008Programming Development Techniques 1 Topic 3 Linear Recursion and Iteration September 2008.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
About the Course Lecture 0: Sep 2 AB C. Plan  Course Information and Arrangement  Course Requirement  Topics and objectives of this course.
Computer Science - I Course Introduction Computer Science Department Boston College Hao Jiang.
The Scheme Programming Language History and Significance Dmitry Nesvizhsky CIS24 Professor Danny Kopec.
Chapter 10 Recursion. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Chapter Objectives Explain the underlying concepts of recursion.
CS 106 Introduction to Computer Science I 03 / 28 / 2008 Instructor: Michael Eckmann.
CS 1114: Introduction to Computing Using MATLAB and Robotics Prof. Graeme Bailey (notes modified from Noah Snavely, Spring.
COMP152 Object-Oriented Programming and Data Structures Spring 2011.
A-1 © 2000 UW CSE University of Washington Computer Programming I Lecture 1: Overview and Welcome Dr. Martin Dickey University of Washington.
September 7, Concepts of Programming Languages Hongwei Xi Comp. Sci. Dept. Boston University.
Computer Science - I Course Introduction Computer Science Department Boston College Hao Jiang.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
Spring 2012 MATH 250: Calculus III. Course Topics Review: Parametric Equations and Polar Coordinates Vectors and Three-Dimensional Analytic Geometry.
Problem solving in project management
Introduction to Programming Environments for Secondary Education CS 1140 Dr. Ben Schafer Department of Computer Science.
A quadratic equation is a second degree polynomial, usually written in general form: The a, b, and c terms are called the coefficients of the equation,
ITP © Ron Poet Lecture 1 1 IT Programming Introduction.
Welcome to Computing. How is Computing assessed? AS Unit 1 Practical Theory of computation. Fundamentals of programming, data structures and algorithms.
Mixed-level English classrooms What my paper is about: Basically my paper is about confirming with my research that the use of technology in the classroom.
Welcome to SoC!.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
ECE 2300 Circuit Analysis Dr. Dave Shattuck Associate Professor, ECE Dept. Lecture Set #12 Natural Response W326-D3.
Towers of Hanoi. Introduction This problem is discussed in many maths texts, And in computer science an AI as an illustration of recursion and problem.
COMP 111 Programming Languages 1 First Day. Course COMP111 Dr. Abdul-Hameed Assawadi Office: Room AS15 – No. 2 Tel: Ext. ??
COMP Introduction to Programming Yi Hong May 13, 2015.
EECE 310 Software Engineering Lecture 0: Course Orientation.
Statway What worked well and what we’re improving Mary Parker Austin Community College austincc.edu Joint Math Meetings Jan. 12, 2013
Undergraduate Survey for Math Dialogue March 2010 Transition from High School to University Technology in High School Math Classes Resources for Undergraduates.
13.2 Recursive Definitions Objective 1) Provide the recursive definition for sequences; 2) Identify the type of a sequence from a recursive definition.
Welcome – You’ve found CSE120 OR Computer Science Principles OR UWIT…  Announcements are usually listed here and displayed before the start of class 
Extending the Definition of Exponents © Math As A Second Language All Rights Reserved next #10 Taking the Fear out of Math 2 -8.
Chapter 8 Recursion Modified.
Chapter 4 Recursion. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter Objectives Explain the underlying concepts of recursion.
Univ. of TehranComputer Network1 Computer Networks Computer Networks (Graduate level) University of Tehran Dept. of EE and Computer Engineering By: Dr.
Presenter’s Guide to Multiple Representations in the Teaching of Mathematics – Part 1 By Guillermo Mendieta Author of Pictorial Mathematics
CPSC 121: Models of Computation Unit 0 Introduction George Tsiknis Based on slides by Patrice Belleville and Steve Wolfman.
Teaching like a Movie Director SoC Teaching Luncheon 9 May 2012.
Fall 2014 MATH 250: Calculus III. Course Topics Review: Parametric Equations and Polar Coordinates Vectors and Three-Dimensional Analytic Geometry.
CS 206 Introduction to Computer Science II 02 / 23 / 2009 Instructor: Michael Eckmann.
Lecture 7 b Recursion is a fundamental programming technique that can provide an elegant solution to certain kinds of problems b Today: thinking in a recursive.
Today’s topics Orders of growth of processes Relating types of procedures to different orders of growth.
A Scheme Workshop Ben Leong NUS School of Computing 31 July 2007.
A Scheme Workshop Ben Leong NUS School of Computing 28 July 2008.
Principles Of Programming Languages Lecture 2 Today Design-By-Contract Iteration vs. Recursion.
Principles Of Programming Languages Lecture 2 Today Design-By-Contract Iteration vs. Recursion If we have time: live demo!!!
CS 232: Computer Architecture II Prof. Laxmikant (Sanjay) Kale.
Patrik Hultberg Kalamazoo College
1 Recursion Recursion is a powerful programming technique that provides elegant solutions to certain problems. Chapter 11 focuses on explaining the underlying.
A Puzzle for You. Puzzle Someone is working for you for 7 days You have a gold bar, which is segmented into 7 pieces, but they are all CONNECTED You have.
Multiplication of Common Fractions © Math As A Second Language All Rights Reserved next #6 Taking the Fear out of Math 1 3 ×1 3 Applying.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 12 Recursion.
Data Structures and Algorithms in Java AlaaEddin 2012.
Discrete Mathematics Lecture # 22 Recursion.  First of all instead of giving the definition of Recursion we give you an example, you already know the.
Welcome to SoC!. CS1101S or CS1010? why are you here?
Introduction to CSCI 1311 Dr. Mark C. Lewis
Recursion.
CITS1001 Object Oriented Programming and Software Engineering
Computer Engineering Department Islamic University of Gaza
Abdulmotaleb El Saddik University of Ottawa
Recursive Thinking Chapter 9 introduces the technique of recursive programming. As you have seen, recursive programming involves spotting smaller occurrences.
Java Software Structures: John Lewis & Joseph Chase
Recursive Thinking Chapter 9 introduces the technique of recursive programming. As you have seen, recursive programming involves spotting smaller occurrences.
Introduction CSE 373 Data Structures.
Introduction to CS II Data Structures
The Hanoi Tower Problem
Principles of Programming Languages
Presentation transcript:

Why take CS1101S? (or why Scheme?) Ben Leong NUS School of Computing 24 July 2009

NOT to teach you Scheme  Welcome to SoC Help you make an informed decision on whether to choose between CS1101 and CS1101S NOT to teach you Scheme  About which class is more suitable for YOU NOT about which is better….

Overview What your seniors say What’s Scheme? Why Scheme? Module Synopsis (i.e. what to expect) What your seniors say

Brief History of CS1101S The language Scheme was designed 28 years ago at MIT to teach programming methodology The success of the MIT programming methodology module led to its adoption in many universities worldwide Scheme was first introduced at NUS 12 years ago I took this class at MIT in 1994. 

Computational Thinking Objectives Teach Scheme as a programming language Teach programming concepts Inspire CONFIDENCE in students that ANYTHING can be solved if they try hard enough Teach students Computational Thinking NOT! TO THINK 

What is Scheme? Scheme is expression-oriented. Type an expression and its result will be printed out. Works with a variety of types of numbers: integers (both positive and negative), fractions (rational numbers), and real numbers

What is Scheme? Expressions use prefix notation. Use (+ 2 3) instead of (2 + 3) Use (* (+ 2 3) (- 3 1)) instead of (2+3)*(3-1) There is a wealth of predefined functions sqrt computes the square root of its argument. + is also a predefined function

Why Scheme? Teaching a language is futile (Here today, gone tomorrow) Scheme is simple as a language So we can focus on the CONCEPTS instead of clunky language rules Let’s see for ourselves…..

Key Concept: Recursion Express (divide) a problem into smaller similar problems Solve the problem for a simple (base) case We are done (!) Similar to Mathematical Induction

The Towers of Hanoi We have 3 pegs and a set of discs, all of different diameters. Objective: move the pile of discs to last peg, by: moving 1 disc at a time from 1 peg to another; never placing a disk on top of another disc with smaller diameter. Suppose you have not 3, but n discs …

We must start somewhere…. Suppose we have one disc …. The Towers of Hanoi We must start somewhere…. Suppose we have one disc …. What if there are no discs? Nothing to do! Base case

The Towers of Hanoi RECURSION We notice the following pattern: if we want to move n disks from peg a to peg c using peg b as intermediary storage, then we: assume we know how to move n−1 disks to peg b, using peg c as intermediary storage; we move disk n from a to c ; we move n−1 disks from b to c, using a as intermediary storage. RECURSION

The 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)))) (define (print-move from to) (newline) (display "move top disk from ") (display from) (display " to ") (display to))

DEMO

CS1101S: Programming Methodology (Scheme) Lectures: Wed 10am-12pm, Fri 11am-12pm, LT15 Recorded for webcast Recitations: 1 hr/wk Two or three groups: Prob Thurs, Venue TBA Discussion Groups: 2 hr/wk Three or four groups: TBA Bid for group in CORS

Teaching Staff Lecturer: Dr. Ben Leong, benleong@comp.nus.edu.sg Office: S14 #06-14 Phone: 6516-4240 Hours: TBA, or by appointment Teaching Assistant: Chu Duc Hiep FIVE Undergraduate Discussion Group Leaders

CS1101S Road Map Java Fundamental concepts of computer programming Memoization Streams ADVANCED Dynamic Programming Object-Oriented Programming INTERMEDIATE Symbolic Data Higher-Order Procedures List Processing Generic Operators BASIC Data Abstraction Mutation & State Procedural Abstraction Iteration Recursion Wishful Thinking Order of Growth Fundamental concepts of computer programming

Textbook : SICP FREE!! Available online at http://mitpress.mit.edu/sicp/full-text/book/book.html

Supplementary Text ALSO FREE!! Available online at http://gustavus.edu/+max/concrete-abstractions-pdfs/index.html

Supplementary Reference 2 ALSO FREE!! Available online at http://www.htdp.org/

Scheme Interpreter We will be using DrScheme It’s FREE!!! Download from: http://www.drscheme.org/

Assessment Overview Tutorial participation: 10% Problem sets: 30% Midterm exam: 15% Practical exam: 15% Final exam: 30%

Cool Stuff Learn to make Stereograms Learn about RSA encryption Build a Lego Robot Write a text-based Adventure Game Regular Programming Contests to keep students challenged

CS1101S Robot Contest

CS1101S Robot Contest See more at CS1101S Facebook Group

CS1101S vs. CS1101 Progression: CS1101S  CS1102S CS1101  CS1102 Two-semester sequence Discouraged from crossing over CS1101S  CS1102, CS1101  CS1102S Similarities S and non-S versions both teach basic programming principles

CS1101S/02S vs. CS1101/02 Differences CS1101S/02S cover more advanced topics More challenging CS1102S covers Java + more Good introduction to many computer science topics

Which to take? Take CS1101S/02S if you want to be challenged. If you have programmed before No real advantage In fact, can be a disadvantage! If you have never programmed before Great! You are not at a disadvantage. Keep an open mind. If CS is not your first choice course, CS1101S is probably NOT a good choice.

Java vs Scheme: What’s the Tradeoff? sophisticated, mature can be used for commercial applications but has many underlying concepts that a beginner may find hard to understand Scheme: simple, elegant easy to learn (hard to master) designed to illustrate the concepts BUT you will eventually learn Java anyway…. Mainly a question of personal choice (taste?)

What your seniors say….

What your seniors say…. [What doesn’t kill you makes you strong] I think Scheme really does bring about concepts easily. Java's messy, so messy for an amateur programmer. (on Problem Sets) They are all very difficult, but some are killers. I learnt a tiny bit of java before I attended this class and I was totally lost. Teaching introduction to programming in Scheme is a quite smart idea. I feel much better when I came back to Java at the end of this class. [What doesn’t kill you makes you strong]

What your seniors say…. I was warned by my seniors not to take scheme because they said it was very tough .... now when I’ve done this module , I agree that it is tough.. but it is worth the effort ..scheme makes u smarter !!! :) Do you agree that Scheme is easier than Java? 32% NO; 68% YES! The pace might be fast but if a person is able to handle it I think they would definitely benefit from it and enjoy it more than CS1101XYZ

More comments here …. http://www.comp.nus.edu.sg/~bleong/ teaching/cs1101s06-midterm.htm http://www.comp.nus.edu.sg/~bleong/ teaching/cs1101s06-final.htm http://www.comp.nus.edu.sg/~bleong/ teaching/cs1101s07-midterm.htm http://www.comp.nus.edu.sg/~bleong/ teaching/cs1101s08-midterm.htm Just Google “cs1101s survey”!!!

10 Reasons NOT to take CS1101S If you hate Math If you don’t like challenges If you cannot manage self-studying and need to be spoonfed If you just want to get a free A 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 If you don’t care about applying your knowledge If you don’t take shocks well/if you fear evilness If you don’t like shuai prof :P

QUESTIONS

THANK YOU