0% found this document useful (0 votes)
7 views

PTM&Python(0)-zh

The document outlines a programming course aimed at reforming traditional programming education through a focus on computational thinking and problem-solving using Python. It includes a syllabus covering Python programming, computer simulations, and programming methodology, along with prerequisites and teaching methods that encourage self-learning and group projects. Course requirements include attendance, project work, and a final examination, with a focus on understanding the role of computation in scientific problem-solving.

Uploaded by

Stanley Chabata
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

PTM&Python(0)-zh

The document outlines a programming course aimed at reforming traditional programming education through a focus on computational thinking and problem-solving using Python. It includes a syllabus covering Python programming, computer simulations, and programming methodology, along with prerequisites and teaching methods that encourage self-learning and group projects. Course requirements include attendance, project work, and a final examination, with a focus on understanding the role of computation in scientific problem-solving.

Uploaded by

Stanley Chabata
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 20

Programming Thinking and Method

(0)

Zhao Hai 赵海

Department of Computer Science and Engineering


Shanghai Jiao Tong University

[email protected]

1
Outline

• Course Motivations

• Course Syllabus ( 教学大纲 )

• Prerequisites

• Course Teaching Method

• Course Schedule

• Course Requirements
2
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.

3
Course Motivations

• Combine individual lab assignment and group


project.

4
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

5
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

6
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
7
Prerequisites

• General interest in science.

• No prior programming experience is expected.

• Math background is required.

8
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.

9
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.
10
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.

11
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.

12
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.

13
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/lessons/ptm2011/index.html

14
Course Requirements
 On this website, if necessary, we will also provide
other course material to help you during your
study.

15
Course Requirements

Computational Thinking

Reference:

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


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

16
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.

17
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.

18
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.
19
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.

20

You might also like