Programación en C, C++, Java y UML – Luis Joyanes Aguilar, Ignacio Zahonero Martínez – 2da Edición

Descripción

Bienvenido a Programación en C, C++, Java y UML, 2ª edición. ¿Qué ha sucedido en el campo de la informática y de la computación en general desde 2010, año en que se publicó la primera edición? En el área de computación se han desplegado y consolidado numerosas innovaciones tecnológicas, hoy ya una realidad auténtica, tanto social como empresarial y de negocios (Cloud Computing, Big Data, Internet de las cosas, etc.). Y en el área de programación de computadoras, la Web 2.0 se ha consolidado, la programación web ha pasado a constituir una materia de estudio y de desarrollo profesional en los últimos semestres de las carreras de ciencias e ingeniería.

Y en el caso particular de los lenguajes de programación y de la disciplina de programación, espina dorsal de los estudios de ingeniería de sistemas, ingeniería de telecomunicaciones, ingeniería electrónica…, ciencias, etc., cuando escribimos la primera edición, lo hicimos utilizando las versiones de C99 y C ANSI, C++98 y Java 5 y la joven versión de Java 6 y hoy día se han consolidado las nuevas e innovadoras versiones de C++11, Java 7 y Java 8 unidas a la actualización de la versión de C, C11. En 2010 comenzaban a despegar las tendencias que hoy son ya una realidad: cloud computing (computación en la nube), movilidad y tecnologías móviles (celulares) con los teléfonos inteligentes y las tabletas (además de las consolas y los lectores de libros electrónicos), medios sociales (social media) que han penetrado en todas las áreas del saber y del conocimiento. En estos últimos años ha emergido una nueva tendencia y tecnología conocida como big data (macrodatos o grandes volúmenes de datos).

Todas estas tendencias y tecnologías de la información han impulsado nuevas aplicaciones, especialmente, aplicaciones web y aplicaciones móviles (apps), que han originado una necesidad creciente de nuevos profesionales del mundo de programación. Los nuevos desarrolladores requieren las más novedosas técnicas de programación y sobre todo el conocimiento y aprendizaje profundo de las tecnologías de programación basadas en los lenguajes de programación clásicos estructurados y orientados a objetos: C, C++ y Java, soporte nuclear e imprescindible que permita al lector y alumno poder llegar a realizar y desarrollar aplicaciones para la web o para entornos profesionales y de negocios en lenguajes como XML, JavaScript, Python o en sistemas operativos como Chrome, Android, MacOS, iOS, Firefox OS. Por las razones anteriores hemos diseñado una segunda edición más ligera, para facilitar el aprendizaje multidisciplinar en lenguajes o secuencial a elección o decisión personal del maestro y profesor, y hemos potenciado la documentación de la web, de modo que el alumno o lector pueda disponer de una buena página web con recursos de todo tipo que le faciliten y ayuden en el aprendizaje para afrontar los retos a los que se enfrentará en los siguientes niveles de su formación. Hemos querido recoger las versiones actuales de los tres lenguajes de programación, espina dorsal de la obra, C11, C++11 y Java 7/Java 8 junto con la última versión de UML, la versión UML 2.5.

Para ello hemos introducido en el texto y en los apéndices, así como en la página web las características fundamentales de estas versiones, dejando constancia que todo el libro se puede utilizar libremente por los usuarios de cualquier versión anterior, tanto de los lenguajes como de UML. Hemos actualizado la primera edición con los conocimientos que hemos considerado imprescindibles para la formación que pretendemos conseguir y hemos aprovechado para revisar y corregir o actualizar los contenidos que habíamos incluido en la primera edición y requerían una revisión y estudio en profundidad. Por esta razón se han reducido el número de capítulos de la primera edición a fin de facilitar el aprendizaje de la programación, manteniendo los contenidos pero adaptándolas a los nuevos planes de estudios y procesos de aprendizaje que se dan en estos años de la segunda década de este siglo XXI. Para esta segunda edición seguimos pensando en los nuevos estudiantes y autodidactas que se adentran en la formación de programación a nivel universitario o de formación profesional, con ningún conocimiento de programación de computadoras o con la base de cursos de introducción a algoritmos o a objetos. Desde el punto de vista de España y Latinoamérica, hemos pensado en los nuevos estudiantes de ingeniería de sistemas, ingeniería electrónica, ingeniería de telecomunicaciones o licenciaturas de informática o de ciencias que desean introducirse en el área de programación, bien por la necesidad de su carrera o como complemento en sus estudios de ciencias o de ingeniería.

Desde el punto de vista español o portugués, se ha pensado en los nuevos planes de estudio acogidos al Espacio Europeo de Educación Superior (EEES), más conocido como los nuevos estudios de la Declaración de Bolonia, por el que todos los países de la Unión Europea, y muchos otros que sin ser de la UE son europeos, han decidido tener unos contenidos comunes para intercambio de estudios y de carreras a partir del año 2010. Todos los estudios de computación y de informática, tanto de Latinoamérica como de Europa, suelen contemplar asignaturas tales como Introducción, Fundamentos o Metodología de Programación, junto con estudios de Estructuras de Datos y de Programación Orientada a Objetos. Dependiendo de la institución académica y sobre todo del maestro y profesor, los estudios se realizan con base en algoritmos y el uso en su aprendizaje de un lenguaje de programación. C, C++ y Java son los lenguajes de programación por excelencia. Son muchos los maestros que optan por comenzar con C, como lenguaje de programación tradicional e histórico, luego siguen con C++ para terminar en Java. Otros lo hacen en forma simultánea con C++ y Java, y aquellos que incorporan ideas más innovadoras se inician directamente en Java para llevar a sus alumnos por el camino de la web. Nuestra experiencia de más de dos décadas de enseñanza de programación de computadoras y muchas obras escritas en este campo nos dice que todas las experiencias son positivas y que es la decisión del maestro, la mejor elección y, sin duda, la decisión más acertada.

Por estas razones, llevamos a cabo esta experiencia multidisciplinar y multilenguaje, y esta segunda edición es la consolidación y nueva plasmación de esa idea. Decidimos que estudiar los tres lenguajes de programación, primero independientes, luego interrelacionados y luego en paralelo, con la decisión correcta del maestro o autodidacta, en su caso, que decide la secuencia, el lenguaje, los lenguajes, en la forma que mejor se adaptase a sus clases, era una propuesta razonable. La obra que tiene usted en su poder, recoge estas ideas fruto de nuestros muchos años de docencia y de investigación junto con la experiencia emanada de la primera edición. Naturalmente, necesitábamos también otras herramientas: libros de problemas y un sitio web de referencia, donde pudiéramos añadir cursos, tutoriales, proyectos, recursos web, etc… Los libros de problemas complementarios son los que hemos publicado en la prestigiosa Serie Schaum de nuestra editorial McGraw-Hill y el sitio web es el Centro de Recursos en Línea, que puede consultar en www.mhhe.com/uni/joyanespcju2e). Todas las carreras universitarias de ciencias e ingeniería, así como los estudios de formación profesional, requieren un curso básico de algoritmos y de programación con un lenguaje potente y profesional pero que sea simple y fácil de utilizar.

C es idóneo para aprender a programar directamente las técnicas algorítmicas y de programación o bien en paralelo con asignaturas tales como Introducción, Fundamentos o Metodología de la programación cuando se utiliza un lenguaje algorítmico o un lenguaje de programación estructurada. C sigue siendo el lenguaje universal más utilizado y recomendado en planes de estudio de universidades y centros de formación de todo el mundo. Organizaciones como ACM, IEEE, colegios profesionales, siguen recomendando la necesidad del conocimiento en profundidad de técnicas y de lenguajes de programación estructurada con el objetivo de “acomodar” la formación del estudiante a la concepción, diseño y construcción de algoritmos y de estructuras de datos. El conocimiento profundo de algoritmos unido a técnicas fiables, rigurosas y eficientes de programación preparan al estudiante o al autodidacta para un alto rendimiento en programación y la preparación para asumir los retos de la programación orientada a objetos en una primera fase y las técnicas y métodos inherentes a ingeniería de software en otra fase más avanzada. Por estas razones, las partes I y II constituyen con sus doce capítulos, un primer curso de Fundamentos de programación en C. Hoy día, no se entiende el estudio de ingeniería de sistemas, ingeniería informática o cualquier otra ingeniería o carrera de ciencias, sin estudiar objetos y modelado de sistemas orientado a objetos.

Por esta razón, la parte III está constituida por un primer curso de introducción a UML, el Lenguaje Unificado de Modelado, por excelencia, y sin duda, el más utilizado no sólo en universidades e institutos tecnológicos y de formación profesional, sino cada vez más en escuelas de negocios, como herramienta de modelado en ambientes de negocios y de empresas. Si el maestro ha decidido tomar como base C, se encontrará con que la próxima decisión será elegir, seguir sus clases ya en siguientes semestres, en C++ y(o) en Java, por esta razón las partes IV y V son cursos de programación orientada a objetos y clases con C++ y Java, que se pueden estudiar en paralelo o de modo secuencial. Por último y una vez que nuestros alumnos o autodidactas ya conocen los tres lenguajes de programación mejores para el aprendizaje y para el campo profesional, es el momento de iniciarse en Estructuras de datos 1 y por esta razón la parte VI consta de cursos de introducción a estructuras de datos en C, en C++ y en Java, organizados secuencialmente de modo que sea otra vez el profesor y maestro quien decida su estudio en paralelo o de modo secuencial.

Esta opción se la ofrecemos a todos los lectores en el Centro de Recursos en Línea libro: http://www.mhhe.com/uni/joyanespcju2e. El contenido del libro se ha pensado para dos semestres de modo muy intensivo, e incluso tres semestres, en este caso, de un modo más liviano y espaciado. El libro pretende servir, en primer lugar para asignaturas típicas de Algoritmos, Introducción, Fundamentos o Metodología de la Programación, en segundo lugar para asignaturas de Programación Orientada a Objetos y por último, pero no necesariamente de modo secuencial, para asignaturas de Estructura de Datos. Todo ello utilizando C, C++ y(o) Java

Ver más
  • Prólogo
    PARTE I Resolución de problemas con software 1
    CAPÍTULO 1 Fundamentos de computadoras y de lenguajes de programación
    CAPÍTULO 2 Algoritmos, programas y metodología de la programación

    PARTE II Programación en C
    CAPÍTULO 3 El lenguaje C: elementos básicos
    CAPÍTULO 4 Operadores y expresiones
    CAPÍTULO 5 Estructuras de selección: sentencias if y switch
    CAPÍTULO 6 Estructuras de control: bucles
    CAPÍTULO 7 Funciones y recursividad
    CAPÍTULO 8 Arreglos (arrays), listas y tablas. Cadenas
    CAPÍTULO 9 Algoritmos de ordenación y búsqueda
    CAPÍTULO 10 Estructuras y uniones
    CAPÍTULO 11 Apuntadores (punteros)
    CAPÍTULO 12 Entradas y salidas por archivos

    PARTE III Lenguaje unificado de modelado UML 2.5
    CAPÍTULO 13 Programación orientada a objetos y UML 2.5
    CAPÍTULO 14 Diseño de clases y objetos: Representaciones gráficas en UML
    CAPÍTULO 15 Relaciones entre clases: delegaciones, asociaciones, agregaciones, herencia

    PARTE IV Programar en C++
    CAPÍTULO 16 De C a C++
    CAPÍTULO 17 Clases y objetos. Sobrecarga de operadores
    CAPÍTULO 18 Clases derivadas: herencia y polimorfismo
    CAPÍTULO 19 Genericidad: plantillas (templates)
    CAPÍTULO 20 Excepciones

    PARTE V Programar en Java
    CAPÍTULO 21 De C/C++ a JAVA 6/7/8
    CAPÍTULO 22 Programación orientada a objetos en Java. Clases y objetos
    CAPÍTULO 23 Programación orientada a objetos en Java. Herencia y polimorfismo
    CAPÍTULO 24 Colecciones
    CAPÍTULO 25 Multitarea y excepciones 708

    PARTE VI Estructura de datos en C/C++ y Java (en el Centro de recursos en línea del libro
    CAPÍTULO 26 Organización de datos dentro de un archivo en C
    CAPÍTULO 27 Listas, pilas y colas en C
    CAPÍTULO 28 Flujos y archivos en C++
    CAPÍTULO 29 Listas, pilas y colas en C++
    CAPÍTULO 30 Archivos y flujos en Java
    CAPÍTULO 31 Listas, pilas y colas en Java

    APÉNDICE A Estructura de un programa en Java y C/C++.
    APÉNDICE B Representación de la información en las computadoras
    APÉNDICE C Códigos ASCII y UNICODE
    APÉNDICE D Palabras reservadas
    APÉNDICE E Prioridad de operadores C/C++ y Java
    ÍNDICE ANALÍTICO
  • Citar Libro

Descargar Programación en C / C++ / Java y UML

Tipo de Archivo
Idioma
Descargar RAR
Descargar PDF
Páginas
Tamaño
Libro
Español
801 pag.
6 mb

Déjanos un comentario

No hay comentarios

guest
0 Comentarios
Comentarios en línea
Ver todos los comentarios
0
Nos encantaría conocer tu opinión, comenta.x