Programming Abstractions

Instructor: Zelenski, Julie, Stanford

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.

Prerequisites: Solid performance in Programming Methodology and readiness to move on to advanced programming topics. A comparable introductory programming course (including high school AP courses) is often a reasonable substitute for our Programming Methodology.

Dates:
  • Free schedule
Course properties:
  • Free:
  • Paid:
  • Certificate:
  • MOOC:
  • Video:
  • Audio:
  • Email-course:
  • Language: English Gb

Reviews

No reviews yet. Want to be the first?

Register to leave a review

Show?id=n3eliycplgk&bids=695438
NVIDIA
More on this topic:
95702_9442_5 Data Analysis with R
Learn data analytics in easy to follow stages for beginners
Csci52 Intensive Introduction to Computer Science
This free online computer science course is an introduction to the intellectual...
Course_logo Programming Languages
Investigate the basic concepts behind programming languages, with an emphasis...
Small-icon.hover Algorithms, Part II
This course covers the essential information that every serious programmer needs...
8082_e627_11 Ruby Programming for Beginners
Learn Ruby Programming the fast and easy way!
More from 'Computer Science':
9395b535-1fa7-4ed4-9fd8-98b86ba682d9-98e1ff5caeec.small UX Research
In this MOOC you will learn how to connect with users at every step of a digital...
61be438f-28b9-4339-9437-21c34b3c3dd6-e9ecfcecaf58.small UX Prototyping
Become a prototyping virtuoso! Master the ability to propel your creative team...
Df0769a9-8b89-44ae-b223-4e9de3905b38-b5f92c09ad8d.small UX Data Analysis
Become a UX data scientist! From qualitative data analysis to big data Web analytics...
0b33df59-ff43-4433-8c99-b3defeca1ad8-1c29cdafeead.small UX Management
Be a UX advocate! Lead the gamut of user-centered design activities, while sharing...
Developers-logo Google's Python Class
Welcome to Google's Python Class -- this is a free class for people with a little...
More from 'Stanford':
Nlp-logo CS224d: Deep Learning for Natural Language Processing
Natural language processing (NLP) is one of the most important technologies...
Visionlablogo CS231n: Convolutional Neural Networks for Visual Recognition
Computer Vision has become ubiquitous in our society, with applications in search...
Databases DB: Introduction to Databases
Learn about Databases, one of the most prevalent technologies underlying internet...
Envphys_water EP101: Your Body in the World: Adapting to Your Next Big Adventure
Discover the amazing adaptability of the human body to environmental stressors...

© 2013-2019