Upload
annabella-young
View
223
Download
1
Tags:
Embed Size (px)
Citation preview
1
Programming Thinking and Method
(0)
Zhao Hai 赵海
Department of Computer Science and EngineeringShanghai Jiao Tong University
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.
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.