Efficient Programming with Components -- Alexander Stepanov

stepanov-components.PNGA wonderful video series by the inventor of the Standard Template Library (STL).

Video Series: Efficient Programming with Components

by Alexander Stepanov

Performance is essential for infrastructure software. Modern infrastructure software depends heavily on components. Therefore, writing performant code in this environment requires deep understanding of the characteristics of such components. The course will help programmers to improve performance of their code by learning how to use these existing generic components effectively. In addition, it will teach them to extend the library with new high-performance components. Along the way, participants will learn how to use C++ as a high-performance language.The course will be taught interactively with the class discussing, discovering, and developing components together.

Code is available here.

 

 

 

Add a Comment

Comments are closed.

Comments (13)

0 3

NoSenseEtAl said on Jun 25, 2013 08:10 AM:

my impression after watching first few lectures :
useless lectures, like I expected knowing Stepanov .. rants about architects and regular types and love songs for pointers smile
but ofc since it is Stepanov lectures are fun but dont expect to learn something useful, at least not in big doses. smile
0 6

NoSenseEtAl said on Jun 25, 2013 12:40 PM:

haha, just watched more of this for fun.
Alex just insulted and dismissed Scott Meyers work...
delusional old man that once upon a time did something great... too bad Bjarne apparently still appreciates his work. :(
0 2

FaTony said on Jun 27, 2013 09:03 AM:

Maybe his days are coming to an end but we must all appreciate the contribution he has done to Standard Library.
0 6

NoSenseEtAl said on Jun 27, 2013 03:07 PM:

I adore STL but that doesnt change the fact that this link is embarrassment to the isocpp.org site. All joking aside imagine some poor 16y old kid deciding to learn C++ and stumbling onto a video where he is thought that inheritance is bad unless base class has no members. :/
2 2

FaTony said on Jun 28, 2013 10:05 AM:

Actually, I've watched a few more and the lectures are very good. I don't know where did you get that idea about inheritance from.

I also don't like Scott Meyers very much. I think "universal reference" is a very dumb idea.
0 1

NoSenseEtAl said on Jun 28, 2013 11:10 AM:

" I don't know where did you get that idea about inheritance from."
One of first 4 lectures, if you watch them youll see it.
0 0

FaTony said on Jun 28, 2013 02:29 PM:

I've only seen him saying that making destructor virtual is not always needed.

EDIT: Ah, Lecture 3 Part 1...
5 0

tsimpson said on Jul 14, 2013 06:00 PM:

Just because he disagrees with someone who happens to be known in the C++ community, doesn't mean he doesn't have expert knowledge, gained over decades of using C++, than many of us could benefit from.
Learning how to write efficient generic code is a skill that may save you from trying to fix a problems you make for yourself.
1 0

Mantosh Kumar said on Aug 27, 2013 07:09 PM:

The lecture 16 is delivered by Bjarne Stroustrup(Guest Lecture). He has covered about "Concepts" and how it would going to be implemented in C++14.

Must watch as two giants would be discussing on many aspects of C+ programming language.
4 0

abyrvalg said on Feb 22, 2014 12:22 PM:

The inheritance bit is out of context (of course). Stepanov says: base classes are good if they 'contain nothing at all' and 'inheritance has its very limited place'. Then he introduces a base class with a number of static members. For one that 'adores stl' one may know what stepanov did do (in stl). Many base classes with non-static members: e.g. stl_vector, stl_list, stl_tree (and their iterators). One who 'knows Stepanov' absolutely knows what he meant - Inheritance Is The Base Class of Evil (™ Parent). It has been (a part of) his message (alas, not a vocal one) for more than 20 years. The hard-core c++ community got it early... the vast majority (educated on mfc and Meyers books) not so much. Sean Parent articulates the same idea at a number of c++ conferences in the last few years. His talk on 'value semantics’ is IMO the single most important presentation in the last 10 years and an eye opener for many. It is very frustrating this message has not been delivered 20 years ago.

Stepanov is indeed critical of Meyers (the self-proclaimed c++ top 5). Those 'effective' books with isa, hasa, singleton, 'make non-leaf classes abstract', 'make sure base classes have virtual destructors' gook... urghhh (universal references bit is good though). Stepanov is critical of Alexandrescu (and Alexandrescu is brilliant) though it has everything to do with the latter (bad) idea to remove the iterators from stl. Stepanov is critical of Boost (beats me, I do not think he really follows what has been done there).

To the 16y the best advice will be to go to school and learn math. Same advice Stepanov gave Alexandescu, Abrahams et al. many years ago. My advice is to watch the other Stepaov's course - 'Four Algorithmic Journeys' - a marvel of software engineering sprinkled with wonderful historic and cultural vignettes... Alexander Stepanov is well and broadly educated. Follow Stepanov's advice on what a software engineer should read (it is there). Absolutely go and study EoP (really do that). Understand Alex main point - software is a branch of math and we shall do our work in that tradition. A lot of these video lectures regurgitate EoP in a more accessible form. As a matter of fact go to stepanovpapers.com, read and watch as much as you can. Ignore idiotic comments in this thread.
It is disappointing to hear Alex retires… hopefully he will write more books.

The 'components' course is very good but not easy. Watch the '4AJ' first. Playback with a 2x (2.3x) speed.

1 0

Germán said on Oct 30, 2014 12:21 AM:

Though I find their lectures a bit difficult to follow at some parts, I must favour the method of learning he encourages: he goes for the fundamental, underlying things that rule code. I have always had the thought that mathematicians can look beyond what we, average Computer Scientists can. They can think really abstract.

He is really demanding about performance: a component must be general, and he checks their relative and absolute performance by a very well-thought definition. He uses 3 extremely simple well thought benchmarks:
1. swapping two values. 2. comparing two values. 3. linear search.
They must be general, they must perform well by the mentioned criteria.


I think he is ahead of everyone else, even if he is not the best of all exposing explanations. If you look at the STL you will see it is general, it performs well, it is extensible and every day it is more evident that the design is robust. This is not by chance, this is a result of his approach when modeling and thinking.

If you look the attention he pays to reasoning and thinking, even for the smallest operations, you will notice that for him it is not about C++, it is about reusability, robustness, fundamental operations and speed.

So, all in all, maybe he is not fun for everyone, but he is beyond everyone. I think Sean Parent is his successor smile I am waiting for a book from Sean Parent.
0 0

Fernando Pelliccioni said on Jun 5, 2015 05:36 AM:

@NoSenseEtAl, why do you not show your full name?
Scott is that you? smile
People, more respect for the giants.
1 0

Rakesh U V said on May 16, 2016 12:08 AM:

After seeing the video, I feel he is a very humble intelligent person.I find myself incompetent enough to comment on a man of such superior intellect and experience.I decided to write this comments after seeing such baseless, disrespectful comments on such a person.One could learn a lot from his talks.Its very good idea to be open to different perspective, there is lot to learn from bjarne and alex.Procedure is as important as Objects.Programmers from mathametics background are very clear about certain things, which normal programmers do not.Sometimes just having a little change in perspective is a huge learning in its own way and I did had it after seeing the video.