The course is designed for beginners who want to learn the basics of the C/C++ language.
The main goal of the course is to introduce the C++ language, its philosophy of zero-cost abstractions; its distinctive features compared to other languages, and, in particular, manual memory management, and its areas of use, such as high-performance applications, graphics, and system programming. After successfully completing this course, you will be able to read and write C++ code and develop your own programs of medium complexity.
During this course, you will be developing a simple 2D arcade game. In this game, the player controls a planet that moves through space, consuming smaller asteroids and dodging black holes. With each new topic covered, you will improve the game by implementing new functionality based on the concepts you have learned. In the end, you will get a working game, which you can further modify as you like.
Some of the topics covered in the course are listed below.
The released part of the course covers C++ basic programming primitives. Stay tuned for more parts of our course coming soon!
Before starting this course, check the following requirements.
The course is integrated into the CLion IDE, which has only a commercial license. You may request a trial license in order to complete the course. If you have already used your trial license before, please contact us at education@jetbrains.com.
This course is available on JetBrains Marketplace and can be installed from the
CLion directly, but you can also
install the the EduPlugin, and open this course
in course creator mode,
create a course preview or
a course archive.
The course is split into following modules, with each module covering specific topics and aspects of the C++ language.
Warm Up
int
, double
, char
, etcstd::string
type to work with text datastd::cin
, std::cout
if
, switch
, for
, while
, do-while
struct
and enum
Memory Management
sizeof
operator&
nullptr
, dereference operator *
, pointer arithmeticstruct
, enum
) memory layoutmalloc
and free
const
keywordstatic_cast
, reinterpret_cast
Object-Oriented Programming and Ownership Semantics
virtual
methodspublic
, protected
, and private
static
membersclass
vs struct
, plain old data types (POD)explicit
constructornew
and delete
operatorsnew
operatorstd::unique_ptr
, std::shared_ptr
, and std::weak_ptr
TBA ...