Computer Science Center est une initiative conjointe du
Computer Science Club de POMI RAS,
JetBrains et de la Yandex
Data Analysis School .
Le centre existe pour permettre aux étudiants et diplômés talentueux de se développer dans des domaines qui les intéressent: informatique, science des données ou génie logiciel.
Le cours C ++ en deux parties au centre est dispensé par Valery Mikhailovich Lesin,
valery-l , enseignant au centre CS et magistrat conjoint de l'ITMO et JetBrains "Développement de logiciels / Génie logiciel", directeur technique de
Simlabs .
La première partie du cours est nécessaire pour construire la base C ++: à la fin du semestre, les étudiants sont plus susceptibles d'acquérir suffisamment de compétences en programmation dans ce langage pour résoudre leurs problèmes. Jusqu'à présent, sans déplacer la sémantique, sfinae, mais pour commencer cela, très probablement, sera suffisant.
Pour les étudiants ayant une expérience en C ++, cette partie aidera à combler les lacunes. Par exemple, pour lier, travailler avec la mémoire, les fonctions lambda et d'autres sujets. Les conférences présenteront à la fois une rétrospective des pratiques établies, ainsi qu'un aperçu des possibilités offertes par les dernières normes linguistiques. Le cours est conçu pour que les étudiants de différents niveaux puissent y trouver du nouveau matériel.
Ayez une belle vue!
1. Organisation du développement du programme C ++.Histoire et philosophie du langage. Applicabilité: avantages et inconvénients. Bibliothèques, compilation, outils de développement. Variables, conditions, boucles, fonctions, entrée et sortie simples.
2. La disposition des programmes. Unités de diffusion. Déclarations et définitions. ODR. Variables globales et locales.3. Travaillez avec la mémoire. Exécution de programmes.Architecture, processus et fils. Périphérique de mémoire de processus, mémoire de page. Déréférencement, pointeurs, tableaux. Arithmétique des pointeurs, constantes et pointeurs constants. Liens, initialisation de liens constants, allocation de mémoire, fuites de mémoire.
4. Types, instructions et opérateurs intégrés.Tailles de type, conversion de type explicite, type void, chaînes terminées par null, énumérations enum, synonyme de typedef. Déclarations, portée et visibilité, struct. Opérateurs, expressions, incrémentation / décrémentation, instruction (instruction) de choix. Boucles, commentaires, opérateurs.
5. Fonctions.Programmation structurelle. Déclarer des fonctions, passer des paramètres, passer des tableaux, renvoyer une valeur. Surcharge, sélection de fonction. Arguments par défaut. Nombre arbitraire d'arguments, pointeur vers une fonction. Lier et fonction.
6. Classes.Types de classe, définition de classe, fonctions membres, contrôle d'accès, définition de fonction de classe, 4 fonctions principales, truc de swap. Champs de classe.
7. Espace de noms. Remplacer les opérateurs.Déclarer et utiliser l'espace de noms, en utilisant la directive, en utilisant la déclaration, recherchez Koenig. Surcharge d'opérateurs, ce qui est possible et impossible, où et comment écrire des opérateurs, exemples de déclarations d'opérateurs, conversion explicite et implicite. Arithmétique mixte. Fonctions d'ami. Incrément de préfixe et de suffixe. Les foncteurs. Opérateurs pour un pointeur. Comment faire des fonctions?
8. Polymorphisme dynamique: héritage simple.Réalisation d'objets. La composition. Héritage Emplacement des champs. Caractéristiques de l'héritage. Constructeurs. Comportement polymorphe. Champ de type, fonctions virtuelles, table de fonctions virtuelles, découpage, fonctions virtuelles pures, héritage public et privé. Destructeur. Appelez des fonctions virtuelles.
9. Polymorphisme dynamique: héritage multiple et virtuel.Héritage multiple, résolution d'ambiguïté, masquage de fonctions, répétition de la classe de base. Héritage virtuel, répétition de classe de base, contrôle d'accès, utilisation de méthodes protégées, conversion dynamique de type et de référence, static_cast et dynamic_cast, opérateur typeid, emplacement d'un objet en mémoire.
10. Introduction aux modèles. Modèles de classe et de fonction.Classe de modèle, fonctionnalités de modèle, fonctions de modèle, instanciation, paramètres de modèle, équivalence de type, inférence de type, surcharge de fonction, sélection d'algorithme, arguments par défaut.
11. Introduction aux modèles. Spécialisation. Relation avec l'héritage. Pointeurs intelligents.Spécialisation des modèles de classe. Spécialisation partielle. Base générale non standard. Instanciation explicite. Spécialisation des modèles de fonctions. CRTP Modèle typedef. Héritage et modèles. Fonctions de modèle dans une classe générique. Polyformisme dynamique et statique.
12. Pointeurs intelligents.13. Stratégies de gestion des erreurs. DébogageQue lire en plus
- B. Mu. Programmation C ++ efficace.
- S. Meyers. C ++ efficace et moderne: 42 recommandations pour l'utilisation de C ++ 11 et C ++ 14.