Systematic Program Design - Part 3: Abstraction, Search and Graphs

开始时间: 04/22/2022 持续时间: 未知

所在平台: EdxArchive

课程类别: 其他类别

大学或机构: UBCx

授课老师: Gregor Kiczales

课程主页: https://www.edx.org/archive/systematic-program-design-part-3-ubcx-spd3x

课程评论:没有评论

第一个写评论        关注课程

课程详情

This programming course is unique in focusing on learning a design method rather than a programming language.  This practical method builds on years of research into the structure of good programs that will help you channel your creativity to program well in any language.

A primary challenge in programming is deciding exactly what our program should do. The first contribution of the design method is a set of techniques that help you systematically develop your program requirements. You will also learn to produce programs with consistent structure that are easy to modify later. This is important because useful programs always require later improvements. In addition, you will learn how to make your programs more reliable by building tests as an integral part of the programming process.

 

Syllabus

This is a full university course broken into three parts:

In Part 1 you will learn the core design method with a focus on simple data. In this part of the course, we introduce the idea of structuring a program based on the data it consumes. This part concludes with the design of simple interactive programs. The final project is an interactive game.

In Part 2, the focus is on more elaborate forms of data that can be used for more complex information. You will learn when and how to structure data using lists and trees. The final project will be a more elaborate interactive game in which more complex data structures are required.

In Part 3 you will learn about search, generative recursion, graphs and how to blend different kinds of structuring patterns together in more complex programs.  This part of the course concludes with a complex puzzle solving program project.

The course uses a small teaching language that includes the core features of nearly all other languages like Python, Javascript, Ruby, Java etc. Less than a week is required to learn nearly the whole language—the entire rest of the course is spent on program design. The focus on design together with the core nature of the language means that everything you learn will be applicable in any other language you use in the future.

 

See also:

Systematic Program Design - Part 1: The Core Method

Systematic Program Design - Part 2: Arbitrary Sized Data

课程大纲

 

  •  How to represent information as data
  •  How to focus each part of your program on a single task
  •  How to use examples to clarify what your program should do
  •  How to determine the proper tests for a program
  •  How to simplify the structure of your program using common patterns

课程评论(0条)

课程简介

Learn the foundations of how to code well - writing programs that tell a clear story about what they do, are tested, and easy to improve.

课程标签

0人关注该课程

主题相关的课程