Difference between revisions of "One-Day Scientific C++ Class"
Jump to navigation
Jump to search
m |
m (→Videos) |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | __TOC__ | ||
+ | == Goal == | ||
This was a full-day course given on March 15, 2011 at SciNet, covering using C++ for scientific programming, with a focus on those features that are useful for scientific software development. We took to C-to-C++ route, so | This was a full-day course given on March 15, 2011 at SciNet, covering using C++ for scientific programming, with a focus on those features that are useful for scientific software development. We took to C-to-C++ route, so | ||
familiarity with C, in particular with pointers, was a prerequisite. | familiarity with C, in particular with pointers, was a prerequisite. | ||
+ | |||
+ | A second iteration covering the same content, was given on April 23, 2012. | ||
== Slides (PDF) == | == Slides (PDF) == | ||
− | *[https://support.scinet.utoronto.ca/wiki/images/4/49/Scientific-c%2B%2B.pdf Complete set of slides] | + | # [[Media:CppIntroduction.pdf | Introduction: programming strategies and brief history of C++]] |
+ | # [[Media:CppBasicReview.pdf | A basic review of C]] | ||
+ | # [[Media:CppRunningExample.pdf| Running example]] | ||
+ | # [[Media:CppNice.pdf | The nice features of C++]] | ||
+ | # [[Media:CppClasses.pdf | Big C++: classes]] | ||
+ | # [[Media:CppPolymorphism.pdf | Big C++: polymorphism]] | ||
+ | # [[Media:CppInheritance.pdf | Big C++: Inheritance]] | ||
+ | # [[Media:CppPolyInheritance.pdf | Big C++: polymorphism in inheritance]] | ||
+ | # [[Media:CppTemplates.pdf | Big C++: Generic programming with templates]] | ||
+ | # [[Media:CppLibraries.pdf | Useful libraries]] | ||
+ | Or: | ||
+ | *[https://support.scinet.utoronto.ca/wiki/images/4/49/Scientific-c%2B%2B.pdf Complete set of slides] (updated on Apr 26, 2012) | ||
+ | |||
== Videos == | == Videos == | ||
− | # [ | + | # [http://support.scinet.utoronto.ca/CourseVideo/C++course/morning_intro/morning_intro.html Introduction: programming strategies and brief history of C++]<br/>[[File:Morning_intro.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/C++course/morning_intro/morning_intro.html]]<br/>[http://support.scinet.utoronto.ca/CourseVideo/C++course/morning_intro/morning_intro.mp4 direct link] |
− | # [ | + | # [http://support.scinet.utoronto.ca/CourseVideo/C++course/morning_Creview/morning_Creview.html A basic review of C]<br/>[[File:Morning_Creview.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/C++course/morning_Creview/morning_Creview.html]]<br/>[http://support.scinet.utoronto.ca/CourseVideo/C++course/morning_intro/morning_Creview.mp4 direct link] |
− | # [ | + | # [http://support.scinet.utoronto.ca/CourseVideo/C++course/morning_Cexample/morning_Cexample.html Running example]<br/>[[File:Morning_Cexample.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/C++course/morning_Cexample/morning_Cexample.html]]<br/>[http://support.scinet.utoronto.ca/CourseVideo/C++course/morning_Cexample/morning_Cexample.mp4 direct link] |
− | # [ | + | # [http://support.scinet.utoronto.ca/CourseVideo/C++course/morning_cpp_basics/morning_cpp_basics.html The nice features of C++]<br/>[[File:Morning_cpp_basics.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/C++course/morning_cpp_basics/morning_cpp_basics.html]]<br/>[http://support.scinet.utoronto.ca/CourseVideo/C++course/morning_cpp_basics/morning_cpp_basics.mp4 direct link] |
− | # [ | + | # [http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_classes/afternoon_cpp_classes.html Big C++: classes]<br/>[[File:Afternoon_cpp_classes.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_classes/afternoon_cpp_classes.html]]<br/>[http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_classes/afternoon_cpp_classes.mp4 direct link] |
− | # [ | + | # [http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_polymorphism/afternoon_cpp_polymorphism.html Big C++: polymorphism] <br/>[[File:Afternoon_cpp_polymorphism.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_polymorphism/afternoon_cpp_polymorphism.html]]<br/>[http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_polymorphism/afternoon_cpp_polymorphism.mp4 direct link] |
− | # [ | + | # [http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_inheritance/afternoon_cpp_inheritance.html Big C++: Inheritance]<br/>[[File:Afternoon_cpp_inheritance.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_inheritance/afternoon_cpp_inheritance.html]]<br/>[http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_inheritance/afternoon_cpp_inheritance.mp4 direct link] |
− | # [ | + | # [http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_virtual/afternoon_cpp_virtual.html Big C++: polymorphism in inheritance]<br/>[[File:Afternoon_cpp_virtual.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_virtual/afternoon_cpp_virtual.html]]<br/>[http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_virtual/afternoon_cpp_virtual.mp4 direct link] |
− | # [ | + | # [http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_templates/afternoon_cpp_templates.html Big C++: Generic programming with templates]<br/>[[File:Afternoon_cpp_templates.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_templates/afternoon_cpp_templates.html]]<br/>[http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_templates/afternoon_cpp_templates.mp4 direct link] |
− | # [ | + | # [http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_libraries/afternoon_cpp_libraries.html Useful libraries]<br/>[[File:Afternoon_cpp_libraries.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_libraries/afternoon_cpp_libraries.html]]<br/>[http://support.scinet.utoronto.ca/CourseVideo/C++course/afternoon_cpp_libraries/afternoon_cpp_libraries.mp4 direct link] |
+ | |||
== Code == | == Code == | ||
* [https://support.scinet.utoronto.ca/wiki/images/3/38/Scinetcppexamples.tgz Hands-on example code] | * [https://support.scinet.utoronto.ca/wiki/images/3/38/Scinetcppexamples.tgz Hands-on example code] |
Latest revision as of 10:53, 7 February 2013
Goal
This was a full-day course given on March 15, 2011 at SciNet, covering using C++ for scientific programming, with a focus on those features that are useful for scientific software development. We took to C-to-C++ route, so familiarity with C, in particular with pointers, was a prerequisite.
A second iteration covering the same content, was given on April 23, 2012.
Slides (PDF)
- Introduction: programming strategies and brief history of C++
- A basic review of C
- Running example
- The nice features of C++
- Big C++: classes
- Big C++: polymorphism
- Big C++: Inheritance
- Big C++: polymorphism in inheritance
- Big C++: Generic programming with templates
- Useful libraries
Or:
- Complete set of slides (updated on Apr 26, 2012)
Videos
- Introduction: programming strategies and brief history of C++
direct link - A basic review of C
direct link - Running example
direct link - The nice features of C++
direct link - Big C++: classes
direct link - Big C++: polymorphism
direct link - Big C++: Inheritance
direct link - Big C++: polymorphism in inheritance
direct link - Big C++: Generic programming with templates
direct link - Useful libraries
direct link