1 programming thinking and method (0) zhao hai 赵海 department of computer science and engineering...

20
1 Programming Thinking and Method (0) Zhao Hai 赵赵 Department of Computer Science and Engineering Shanghai Jiao Tong University zhaohai @cs.sjtu.edu.cn

Upload: annabella-young

Post on 26-Dec-2015

223 views

Category:

Documents


1 download

TRANSCRIPT

1

Programming Thinking and Method

(0)

Zhao Hai 赵海

Department of Computer Science and EngineeringShanghai Jiao Tong University

 [email protected]

2

Outline

• Course Motivations

• Course Syllabus (教学大纲 )

• Prerequisites

• Course Teaching Method

• Course Schedule

• Course Requirements

3

Course Motivations

• Reform the thinking way of current programming courses.

• Explore a new teaching strategy.

• Reveal different problem nature related to domain-specific and

domain-independent.

• Emphasize that different developing tools can be used for

problem-solving.

4

Course Motivations

• Combine individual lab assignment and group

project.

5

Course Syllabus

• Part I: Python Programming (16 Lectures)

Introduction to Computer Science

Introduction to Python

Value, Type, Variable, Assignment, and Type Conversion

String, List, Tuple and Dictionary

Conditional and Loop Statement

Function and Parameters

Recursion

6

Course Syllabus

• Part II: Introduction to Computer Simulations,

Applications and Data Structures (10 Lectures)

Simulation and Optimization

Introduction to Computational Linguistics

Data Structure and Application: Traversal and Search

Graph and Scientific Application

7

Course Syllabus

• Part III: Looking at Programming Methodology

(8 Lectures)

Programming Language and Paradigm

Algorithm Design, Correctness and Efficiency

Noncomputability, Intractability and Undecidability

Computational Model: Parallelism, Concurrency, and

Alternative Models

8

Prerequisites

• General interest in science.

• No prior programming experience is expected.

• Math background is required.

9

Course Teaching Method

• Present the basic concept of computational thinking and

explain the basic thinking and method of programming.

• Adopt one of the developing tools - Python for giving lectures

and demos, let students understand thinking and method of

problem-solving and have a great interest in the application of

such thinking and method.

10

Course Teaching Method

• Introduce classroom discussion in teaching procedure, let

students blend computational thinking in different specialities

well.

• Learning after class makes students study more background

knowledge to resolve problem themselves, find suitable tools

and component library. Thus, cultivate students' self-learning

consciousness and ability of problem-solving.

11

Course Schedule

Curriculum Schedule

•Note: During the course, the students will

accomplish a group project to resolve a more

complex real-world problem using Python

programming language.

12

Course Requirements • Grade Distribution (percents maybe revised later)

Attendance and Assignment 30%

Project 30%

Final Examination 40%

• Text Book

Allen Downey, Jeffrey Elkner and Chris Meyers. How to Think Like a

Computer Scientist: Learning with Python. Green Tea Press. April,

2002. ISBN 0-9716775-0-6.

13

Course Requirements • References

John M. Zelle. Python Programming: An Introduction to Computer

Science. Franklin, Beedle & Associates, 2004. ISBN 1-887902-99-6.

David Harel and Yishai Feldman. Algorithmics: The Spirit of Computing

(3rd Edition), Addison-Wesley, 2004. ISBN 0-321-11784-0.

Nell Dale, John Lewis. Computer Science Illuminated. Jones and Bartlett

Publishers. 2002. ISBN 0-7637-1760-6.

14

Course Requirements • Course Assistants

To be announced

Course Website A backup for the courseware is available on the website:

http://202.120.38.156/PTM-Python/

http://bcmi.sjtu.edu.cn/~zhaohai/ptm2013/index.html

15

Course Requirements On this website, if necessary, we will also provide

other course material to help you during your

study.

16

Course Requirements

Computational Thinking

Reference:

J. M. Wing. Computational Thinking. Communications of the

ACM. Vol. 49, No. 3. March 2006. p33~35.

17

Course Requirements

Through understanding Computational Thinking and

learning this course, we hope that students for

“thinking” of programming will: have a comprehensive understanding of the role computation plays in

solving scientific problems.

value computation as foundational tool in scientific discovery.

18

Course Requirements have explored the impact of different algorithms on efficiency and

performance.

have understood and applied basic programming principles.

have a basic understanding of programming allowing the exploration

of other programming language.

have a basic understanding about the limits of computation and

intractable problems.

19

Course Requirements

Through understanding Computational Thinking and

learning this course, we also hope that students for

“method” of programming will: analyze and abstract a problem.

design and implement an effective software solution for scientific

problems.

effectively use modules of software libraries described by functional

specifications.

20

Course Requirements understand the use and functionality of basic data

structures.

write programs that accomplish useful goals; and visualize

the results appropriately.

read and adapt existing programs.