Coding 编程 (10岁以上)

This course is intended to be a general introduction to computers and computer programming. Students will learn to program using several different languages, starting with LOGO and Scratch, ending with Python, a useful general-purpose programming language.
This course is designed for middle school students with limited exposure to computer technology. Therefore, the primary teaching approach will be visual, rather the usual emphasis on solving mathematical problems. For this age group, the concepts of programming can be easily understood through visual means.

This course will introduce problem solving with computers. The students will learn how to break down a problem into simpler components, and write the code necessary for the computer to execute individual elements to solve the problem. The emphasis will be on the decomposition of problems, independent of the choice of computer programming language.

Initially, we will work with the LOGO and Scratch teaching languages. These languages permit beginning students to manipulate graphical objects using simple commands. We will learn to combine commands to create complex behaviors. This will allow us to create games and animations.

We will move on to Python, a general-purpose language which will allow us to explore simple ideas in robotics, using graphical simulations or possibly simple robots. Python will also allow us to explore more traditional programming involving mathematics
and text.

We will also explore the history of computers,particularly the mechanical devices used to solve mathematical problems. The story begins over 2,000 years ago and involves some fascinating individuals. Among those, we will review the pioneering contribution by Lady Ada Lovelace, the first programmer, whose work precedes the first computer, John von Neumann the American Allen Turing, and Steven Wozniak, the other half of Apple Computers.

If time permits, I will introduce the students to some low-costmini-computers, specifically the Arduino and the Raspberry Pi that the students can use for their own projects and experiments. This will allow them to continue to explore after the class.

Overall, the goal is to give the student a good general background in ideas that are the basis for modern computing, and a structure for problem solving that they can apply not only to programming, but in many areas of their lives.