Computer Science Center es una iniciativa conjunta del
Computer Science Club en POMI RAS,
JetBrains y la Yandex
Data Analysis School .
El centro existe para permitir que estudiantes talentosos y graduados se desarrollen en áreas de interés para ellos: informática, ciencia de datos o ingeniería de software.
El curso C ++ en dos partes en el centro es impartido por Valery Mikhailovich
Lesin ,
valery-l , profesor en el centro CS y magistrado conjunto de ITMO y JetBrains "Software Development / Software Engineering", director técnico de
Simlabs .
La primera parte del curso es necesaria para construir la base C ++: al final del semestre, es más probable que los estudiantes obtengan suficientes habilidades de programación en este idioma para resolver sus problemas. Hasta ahora, sin mover la semántica, sfinae, pero para comenzar esto, lo más probable, será suficiente.
Para los estudiantes con experiencia en el uso de C ++, esta parte ayudará a cerrar las brechas. Por ejemplo, al vincular, trabajar con memoria, funciones lambda y otros temas. Las conferencias presentarán una retrospectiva de las prácticas establecidas, así como una visión general de las posibilidades que ofrecen los últimos estándares de idiomas. El curso está diseñado para que los estudiantes de diferentes niveles puedan encontrar material nuevo para ellos.
Que tengas una linda vista!
1. Organización del desarrollo del programa C ++.Historia y filosofía del lenguaje. Aplicabilidad: pros y contras. Bibliotecas, compilación, herramientas de desarrollo. Variables, condiciones, bucles, funciones, entradas y salidas simples.
2. El diseño de los programas. Unidades de difusión. Declaraciones y definiciones. ODR. Variables globales y locales.3. Trabajar con memoria. Ejecución de programas.Arquitectura, proceso e hilos. Dispositivo de memoria de proceso, memoria de página. Desreferenciación, punteros, matrices. Aritmética de punteros, constantes y punteros constantes. Enlaces, inicialización de enlaces constantes, asignación de memoria, pérdidas de memoria.
4. Tipos incorporados, instrucciones y operadores.Tamaños de tipo, conversión de tipo explícita, tipo vacío, cadenas terminadas en nulo, enumeraciones enum, sinónimo de typedef. Declaraciones, alcance y visibilidad, estructura. Operadores, expresiones, incremento / decremento, declaración (declaración) de elección. Bucles, comentarios, operadores.
5. Funciones.Programación estructural. Declarar funciones, pasar parámetros, pasar matrices, devolver un valor. Sobrecarga, selección de funciones. Argumentos por defecto. Número arbitrario de argumentos, puntero a una función. Enlace y función.
6. Clases.Tipos de clase, definición de clase, funciones miembro, control de acceso, definición de función de clase, 4 funciones principales, truco de intercambio. Campos de clase.
7. Espacio de nombres. Anular operadores.Declarar y usar el espacio de nombres, usar la directiva, usar la declaración, buscar Koenig. Sobrecarga de operadores, qué es posible e imposible, dónde y cómo escribir operadores, ejemplos de declaraciones de operadores, conversión explícita e implícita. Aritmética mixta. Características de amigos. Incremento de prefijo y postfix. Functores Operadores para un puntero. ¿Cómo hacer funciones?
8. Polimorfismo dinámico: herencia simple.Realización de objetos. Composición. Herencia Localización de campos. Características de la herencia. Constructores. Comportamiento polimórfico. Campo de tipo, funciones virtuales, tabla de funciones virtuales, segmentación, funciones virtuales puras, herencia pública y privada. Destructor Llamar a funciones virtuales.
9. Polimorfismo dinámico: herencia múltiple y virtual.Herencia múltiple, resolución de ambigüedad, funciones de ocultación, repetición de la clase base. Herencia virtual, repetición de clase base, control de acceso, uso de métodos protegidos, tipo dinámico y conversión de referencia, static_cast y dynamic_cast, operador typeid, ubicación de un objeto en la memoria.
10. Introducción a las plantillas. Plantillas de clase y función.Clase de plantilla, características de plantilla, funciones de plantilla, creación de instancias, parámetros de plantilla, equivalencia de tipos, inferencia de tipos, sobrecarga de funciones, selección de algoritmos, argumentos predeterminados.
11. Introducción a las plantillas. Especialización Relación con la herencia. Punteros inteligentes.Especialización de plantillas de clase. Especialización parcial. Base general no estándar. Instanciación explícita. Especialización de plantillas de funciones. CRTP Tipo de plantilla def. Herencia y patrones. La plantilla funciona en una clase genérica. Polformismo dinámico y estático.
12. Punteros inteligentes.13. Estrategias de manejo de errores. DepuraciónQué leer además
- B. Mu. Programación efectiva en C ++.
- S. Meyers. C ++ eficiente y moderno: 42 recomendaciones para usar C ++ 11 y C ++ 14.