200 likes | 217 Views
This course aims to reform current programming courses by exploring a new teaching strategy, emphasizing problem-solving tools, and combining lab assignments with group projects. Topics include Python programming, computer simulations, and programming methodology. Prerequisites: Interest in science and math background. Teaching methods focus on computational thinking concepts, Python application demos, and self-learning. Course requirements include attendance, assignments, project, and final examination. Required texts: "How to Think Like a Computer Scientist" and other references provided.
E N D
Programming Thinking and Method (0) Zhao Hai 赵海Department of Computer Science and EngineeringShanghai Jiao Tong Universityzhaohai@cs.sjtu.edu.cn
Outline Course Motivations Course Syllabus (教学大纲) Prerequisites Course Teaching Method Course Schedule Course Requirements
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.
Course Motivations Combine individual lab assignment and group project.
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
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
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
Prerequisites General interest in science. No prior programming experience is expected. Math background is required.
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.
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.
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.
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.
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.
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
Course Requirements On this website, if necessary, we will also provide other course material to help you during your study.
Course Requirements Computational Thinking Reference: J. M. Wing. Computational Thinking. Communications of the ACM. Vol. 49, No. 3. March 2006. p33~35.
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.
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.
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.
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.