|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/programacion-profesional-desde-cero-con-cpp/
课程评论:没有评论
**Coursera C++ 专业编程课程(零基础到精通)内容概述** 本课程旨在培养专业的 C++ 程序员,从零开始,循序渐进地涵盖各种编程范式,最终达到精通水平。课程内容深入且实践性强,强调理论与实践相结合,并通过多个项目巩固所学知识。 **主要学习内容:** * **结构化编程:** 掌握创建程序的基本工具,包括数据输入输出、变量、数据类型(原始、结构化、枚举、记录)、流程图、控制结构(顺序、选择、循环)、子范围、数组(静态、动态、二维)、调试技巧、过程与函数、标识符作用域、参数传递(值、引用)以及文本和类型化文件操作。 * **动态内存与抽象数据类型 (ADT):** 深入理解指针、内存管理(申请、释放)、别名,学习如何模块化程序、创建单元,并实现和使用各种抽象数据类型,如链表(单向、双向、循环)、队列、栈,以及自定义 ADT。 * **递归与二叉树:** 掌握递归的概念、优势与劣势,并理解其与迭代的区别。学习如何运用递归解决复杂问题,以及构建和应用二叉搜索树、普通树等树形结构。 * **面向对象编程 (OOP):** 学习 OOP 的核心概念,包括类、对象、继承、多态、类型转换、抽象类、接口、异常处理,并了解 UML 基础设计。 * **图形用户界面 (GUI):** 学习如何创建和使用图形用户界面,通过 C++ CLI 库掌握 GUI 组件创建、事件处理和错误控制。 * **数据库基础 (MySQL, SQLite):** 学习如何使用 MySQL 和 SQLite 进行数据库管理,这是编程中不可或缺的实用技能。 通过本课程,学习者将能够独立设计程序、解决复杂问题,并具备扎实的编程理论基础和丰富的实践经验。
Este curso es un curso de Programación desde cero, y resaltamos la palabra programación porque no es solo un curso de C++, sino que es un entrenamiento diseñado para forjar a un programador profesional desde la nada absoluta hasta la maestría.Pasarás de forma progresiva por los distintos paradigmas de programación, aprendiendo:Programación estructuradaProgramación modularMemoria dinámicaProgramación Orientada a ObjetosProgramación de Interfaces Gráficas de UsuarioBases de Datos SQLA través de este curso el estudiante desarrollará varios proyectos, diseñará sus propios programas, resolverá problemas complejos con pocas herramientas, aprenderá a pensar y a dividir grandes retos en pequeñas partes. Aprenderá también la teoría profunda que todo programador necesita hoy día y la pondrá en práctica inmediatamente a través de los ejercicios y proyectos planteados.El curso se divide en varios módulos extremadamente poderosos, cada uno de los cuales extiende y amplifica al módulo anterior. En concreto:Módulo 1: Programación estructuradaUn curso de programación en sí mismo, ya que en él el estudiante conocerá todas las herramientas esenciales para crear programas en cualquier lenguaje. Los conceptos son dados de tal forma que el estudiante podrá aplicarlos en cualquier lenguaje moderno a su elección. Los temas que se darán son:Salida estándar de datosEntrada estándarDefinición de variablesTipos primitivos de datosTipos estructurados de datosDiagramas de flujoSecuencia y selección (IF)Repetición iterativa (FOR)Repetición condicional (WHLE y REPEAT - DO...WHILE)SubrangosArreglos lineales estáticosArreglos lineales dinámicosArreglos bidimensionalesDepurador y ejecución paso a pasoEnumerados y registrosProcedimientos y funcionesAlcance de identificadores (locales y globales)Pasaje de parámetros por valor (copia) y por referencia (alias)Archivos de texto y archivos tipadosProyectos finalesMódulo 2: Memoria dinámica y Tipos Abstractos de datosAquí el curso comienza a profundizar en conceptos que muchos programadores desconocen o no dominan (como quienes aprenden Java como primer lenguaje): los punteros. A través de esta herramienta el programador podrá comenzar a crear programas que gestionen la memoria RAM, enfrentándose a los problemas y complejidades que ésto conlleva.Los Tipos Abstractos de Datos (TADs) introducen todo un concepto nuevo de programación: dividir el programa en módulos individuales y trabajar por separado con cada uno. De este modo el estudiante aprenderá a abstraer datos y a modularizar sus programas, todo lo cual es la base fundamental de la Programación Orientada a Objetos que posteriormente será tratada en profundidad.El tipo punteroSolicitud de memoriaLiberación de memoriaAliasReprogramación de proyectos a memoria dinámicaModularización de programasCreación de unidadesDefinición de tipos abstractosImplementación de operacionesUso de TADs en diferentes sistemasLinkediciónListas encadenadas simplesListas doblemente encadenadasListas circularesColasPilasTADs personalizadosReprogramación de proyectos usando TADsMódulo 3: Recursividad y el TAD Árbol binarioUna herramienta muy poderosa y a la vez delicada. El estudiante aprenderá a utilizarla, conocerá sus ventajas y desventajas, entenderá su diferencia con la repetición iterativa, y comprenderá cómo resolver problemas complejos con ella.El estudiante además conocerá cómo crear una estructura arborescente a través del uso de punteros, y cómo esta estructura resulta útil para ciertos casos. Es una herramienta muy poderosa que no todo programador domina. Siendo una estructura recursiva, se une perfectamente con la recursividad.Qué es la recursividadDiferencia entre recursividad e iteraciónRecursividad en listas linealesRecursividad en matricesReprogramación de proyectos usando recursividadÁrbol binario de búsquedaÁrbol generalEstructuras arborescentesCaso de estudioProyectoMódulo 4: Programación Orientada a ObjetosEl estudiante aplicará ahora todos sus conocimientos para aprender este nuevo paradigma y comenzar a ver las estructuras de los programas como objetos. De este modo logrará modularizar aún más su código y comenzar a diseñar programas de forma más rápida y eficiente.Teoría de objetosClasesCreación y destrucción de objetosHerenciaPolimorfismoCasteoClases abstractas e interfacesBloques try y lanzamiento de excepcionesBeansDiseño básico de softwareBases de UMLProyectos finalesMódulo 5: Interfaces gráficas de usuarioTodo lo aprendido en el curso le permitirá al estudiante comprender cómo crear interfaces gráficas de usuario y utilizarlas de forma inteligente, ya que éstas, en cualquier lenguaje moderno, están diseñadas con Objetos (POO). De esta manera el estudiante aprenderá a utilizar la librería CLI de C++, que le permitirá aprender las bases de la creación de interfaces gráficas, manejo de eventos y control de errores.Creación manual de interfaces y componentesCreación gráfica mediante el entorno de desarrolloEjemplos y aplicacionesReprogramación de proyectos para crear interfaces gráficasProyecto finalMódulo 6: Bases de datos MySQL y SQLite Pasaremos a un punto bien distinto de la programación, ya que el estudiante ahora aprenderá a usar dos herramientas concretas de bases de datos, que es algo que va más allá de la programación en sí pero que a la vez es super necesario.