YoVDO

Stanford Seminar - Programming Should Be More Than Coding

Offered By: Stanford University via YouTube

Tags

Programming Courses Computer Science Courses

Course Description

Overview

Explore the fundamental aspects of programming beyond coding in this Stanford seminar. Delve into the three essential tasks of programming, examining how to think more clearly about problem-solving and the relationship between models and reality. Learn about specifying program behavior, including formal specifications and their limitations, using examples like Euclid's Algorithm and the Xbox 360 memory system. Discover the importance of clear specifications, when to use formal specs, and how to connect specifications to code. Gain insights into effective programming practices and the skills needed to write comprehensive specifications for complex systems.

Syllabus

Introduction.
The 3 Tasks of Programming.
A Really Easy Problem.
How Can We Think More Clearly?.
Models versus Reality.
Computer Science.
What's a Program?.
Task 1: Specifying What the Program Does.
Our Example: A GCD Program.
Reality versus Model.
Limitations of the Function Model.
The Standard Behavioral Model.
Task 2 for Euclid's Algorithm.
The Complete Task 2 Specification.
What About Formal Specs?.
The Language: TLA.
The Problem with TLA.
The XBox 360 Memory System.
Why not a formal spec?.
What is Typical About This Spec.
What is Not Typical About This Spec.
What code should you specify?.
What should you specify about the code?.
How do you learn to write specs?.
How do you learn to write formal specs?.
How do you connect the spec to the code?.
What about coding?.


Taught by

Stanford Online

Tags

Related Courses

Computer Vision: The Fundamentals
University of California, Berkeley via Coursera
Programming Languages
University of Virginia via Udacity
Learn to Program: Crafting Quality Code
University of Toronto via Coursera
Computational Photography
Georgia Institute of Technology via Coursera
Algorithms: Design and Analysis, Part 2
Stanford University via Coursera