27 episodes

This course is the natural successor to Programming Methodology and covers such advanced programming topics as recursion, algorithmic analysis, and data abstraction using the C++ programming language, which is similar to both C and Java. If you've taken the Computer Science AP exam and done well (scored 4 or 5) or earned a good grade in a college course, Programming Abstractions may be an appropriate course for you to start with, but often Programming Abstractions (Accelerated) is a better choice. Programming Abstractions assumes that you already have familiarity with good programming style and software engineering issues (at the level of Programming Methodology), and that you can use this understanding as a foundation on which to tackle new topics in programming and data abstraction.

Topics: Abstraction and its relation to programming. Software engineering principles of data abstraction and modularity. Object-oriented programming, fundamental data structures (such as stacks, queues, sets) and data-directed design. Recursion and recursive data structures (linked lists, trees, graphs). Introduction to time and space complexity analysis. Uses the programming language C++ covering its basic facilities.

Programming Abstractions Julie Zelenski

    • Technology

This course is the natural successor to Programming Methodology and covers such advanced programming topics as recursion, algorithmic analysis, and data abstraction using the C++ programming language, which is similar to both C and Java. If you've taken the Computer Science AP exam and done well (scored 4 or 5) or earned a good grade in a college course, Programming Abstractions may be an appropriate course for you to start with, but often Programming Abstractions (Accelerated) is a better choice. Programming Abstractions assumes that you already have familiarity with good programming style and software engineering issues (at the level of Programming Methodology), and that you can use this understanding as a foundation on which to tackle new topics in programming and data abstraction.

Topics: Abstraction and its relation to programming. Software engineering principles of data abstraction and modularity. Object-oriented programming, fundamental data structures (such as stacks, queues, sets) and data-directed design. Recursion and recursive data structures (linked lists, trees, graphs). Introduction to time and space complexity analysis. Uses the programming language C++ covering its basic facilities.

    • video
    9. Programming Abstractions Lecture 9

    9. Programming Abstractions Lecture 9

    Julie goes over recursion and the proper ways to solve problems recursively. She continues with the example of a program that draws a fractal image and explains a Mandarin code to illustrate the different possibilities of drawing different pictures.

    • 2 sec
    • video
    10. Programming Abstractions Lecture 10

    10. Programming Abstractions Lecture 10

    Julie explains procedural recursion and introduces permute code. She goes through another example of recursive code line by line, explaining each component. Recursive backtracking and it's usefulness are discussed.

    • 2 sec
    • video
    11. Programming Abstractions Lecture 11

    11. Programming Abstractions Lecture 11

    Julie continues with recursive backtracking and introduces pointers and recursive data. Following, she focuses on solving the problems rather than the exact code and later uses the example of a program that will solve a Sudoku puzzle.

    • 2 sec
    • video
    12. Programming Abstractions Lecture 12

    12. Programming Abstractions Lecture 12

    Julie continues to go over pointers and moves on to recursive data and linked lists. She explains the basics of pointers with two variables pointing to the same address.

    • 2 sec
    • video
    13. Programming Abstractions Lecture 13

    13. Programming Abstractions Lecture 13

    Julie introduces linked lists and continues to discuss recursive data. She goes line by line through an example code she writes during the lecture. She then inserts variables in an order; she uses the example of an address book to explain this.

    • 3 sec
    • video
    14. Programming Abstractions Lecture 14

    14. Programming Abstractions Lecture 14

    Julie starts off with algorithm analysis, the big-O notation and introduces sorting. She begins off with a brief overview of what algorithm analysis is and how to utilize it. Later, she continues to go through recursive algorithms and their uses.

    • 2 sec

Top Podcasts In Technology

What's Next|科技早知道
声动活泼
科技浪 Tech.wav
哈利
TED Radio Hour
NPR
Lex Fridman Podcast
Lex Fridman
硅谷101
硅谷101
Acquired
Ben Gilbert and David Rosenthal

More by Stanford

Global Geopolitics
Martin Lewis
Entrepreneurial Thought Leaders Seminar (Spring 2010)
Stanford University
The Future of the Internet
Stanford Continuing Studies Program
Patent Law and Strategy for Innovators and Entrepreneurs
Stanford University
Topics in String Theory
Stanford Continuing Studies Program
Human-Computer Interaction Seminar (Winter 2011)
Stanford University