Programación

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Programación por Mind Map: Programación

1. Origen y características

1.1. Es dependiente de los recursos de la computadora, el programador debe conocer la arquitectura sobre la que se trabaja

1.2. El programador se encarga de que no haya errores de sintaxis pues no hay compilador capaz de detectarlo

1.3. El programador trabaja directamente con direcciones de memoria.

2. Tipos de lenguaje

2.1. Tipado débil

2.1.1. No exige el tipo y se puede cambiar el tipo de dato guardado

2.1.1.1. Ej: de char a int

2.2. Tipado fuerte

2.2.1. Exige que se guarde el tipo de dato y este no se puede modificar

2.3. Tipado estático

2.3.1. Comprueba compatibilidad entre tipos una vez que se compila el programa

2.3.1.1. Si o si definir el tipo de dato de la variable que voy a guardar

2.3.1.2. No puedo decir que A=5 sin antes no le puse que tipo de dato es ni cuánto vale

2.4. Tipado dinámico

2.5. Lenguaje compilado

2.5.1. Comprueba la compatibilidad entre tipos en tiempos de ejecución, no se define explícitamente el tipo de dato.

2.5.1.1. Permite ir cambiando según mi necesidad del tipo de dato de char a bool, etc.

2.6. Lenguaje interpretado

2.6.1. Lenguaje máquina

2.7. Lenguaje que se toma igual que nosotros lo escribimos

2.8. Más alto el nivel del lenguaje más parecido es al lenguaje humano

3. Tipos de paradigmas

3.1. Imperativo

3.1.1. Obedece instrucciones específicas

3.2. Declarativo

3.2.1. No sé componen instrucciones, el computador sabe el camino óptimo.

3.3. Orientado a objetos

3.3.1. Modela mediante objetos que interactúan entre ellos

3.3.1.1. Sirve para definir y no escribir mil veces lo mismo en código

4. Características

4.1. Eficacia

4.1.1. El programa ejecuta correctamente las tareas definidas y satisface los objetivos del usuario

4.2. Eficiencia

4.2.1. El programa hace un uso adecuado y no malgasta tiempo de procesamiento ni recursos como la memoria

4.3. Integridad o completitud

4.3.1. Capacidad del sistema para realizar todas las operaciones que el usuario podría requerir

4.4. Claridad

4.4.1. El programa debe ser claro, legible para su desarrollo y posterior mantenimiento. Al elaborar un programa su estructura debe ser sencilla y coherente, debe cuidar el estilo de programación.

4.5. Portabilidad

4.5.1. Debe poder ejecutarse en una plataforma( hardware o software) diferente a aquella en la que se desarrolló.

5. Conceptos fundamentales

5.1. La generación de un programa o un software en particular necesita un conjunto de reglas, actividades y procedimientos para realizar los algoritmos y cumplir su objetivo

5.2. El ciclo de desarrollo del software consta de una serie de pasos lógicos y secuenciales denominados d FASES

5.2.1. Fases

5.2.1.1. Definición de necesidades o identificación del problema

5.2.1.2. Análisis, interpretación del problema y determinación del problema

5.2.1.3. Diseño de la solución y diseño del sistema

5.2.1.4. Codificación y desarrollo del sistema

5.2.1.5. Prueba, depuración y documentación

5.2.1.6. Implementación, validación e implantación

5.2.1.7. Mantenimiento y evolución

5.3. Características de los programas

5.3.1. Usabilidad

5.3.1.1. El programa es fácil de usar su las personas a la que está destinado pueden comprender su manejo de forma intuitiva, realizar tareas de forma cómoda y sin esfuerzo innecesario

5.3.2. Mantenibilidad

5.3.2.1. El código fuente del programa permite localizar y corregir defectos rápidamente, también cambios que resulten fáciles para adaptarlo las necesidades del usuario

5.3.3. Fiabilidad

5.3.3.1. Si realiza sus tareas cuando es necesario, con la precisión requerida y nos brinda la salida esperada

6. Diagrama de flujo y Pseudocódigo

6.1. Diagrama de flujo

6.1.1. Expresa de manera gráfica los lados que seguir y las decisiones que tomar de un algoritmo o proceso específico

6.2. Pseudocódigo

6.2.1. Representación en lenguaje natural con el objetivo de ser más explicativo y fácil de leer que el código de los lenguajes de programación

7. Estructura de manejo de datos

7.1. Operadores

7.1.1. Permiten manipular los datos, existen operadores que necesitan 2 variables y otras 1 variable

7.1.1.1. Ej: 2 variables( suma, resta, etc) 1 variable( contadores, acumuladores, etc)

7.2. Datos

7.2.1. Hechos que describen sucesos y entidades

7.2.1.1. En codificación los datos permiten que el programa realice operaciones y algo de valor

7.3. Arreglos o ARRAYS

7.3.1. Estructura de datos que permiten almacenar un conjuntos de variables del mismo tipo, son de tamaño fijo y puede accederse a cada elemento conociendo su posición(índice).

7.3.1.1. Ej: Array que contenga números, 1, 2, 3, 4, etc

7.3.2. Índice

7.3.2.1. Comienza con el 0 y terminan con un valor menos que la cantidad de elementos que puede almacenar

7.3.2.1.1. La cantidad Específica cuando se crea el Array

7.3.3. Array de dos dimensiones

7.3.3.1. Son un arreglo de arreglos, un arreglo en el que cada elemento es otro arreglo. Todos los datos deben tener el mismo tipo de datos

7.4. MATRICES

7.4.1. Estructura de datos que permite almacenar datos en forma de tabla, se especifica un índice para una fila y otro para la columna

7.4.1.1. Diferencia entre matriz y Array

7.4.1.1.1. En las matrices se necesitan dos variables, una para indicar la fila y otra para la columna.

7.4.2. Punteros

7.4.2.1. Son direcciones de memorias, sirven para saber en qué parte de la memoria se encuentra una variable y acceder a ella

7.5. LISTAS

7.5.1. Doble enlace

7.5.2. Enlace simple

7.5.2.1. Estructura de datos que NO son accedidas con un índice, si de manera secuencial

7.5.2.1.1. Cada elemento posee un puntero o referencia, no solo al siguiente, sino también al elemento anterior

7.5.2.1.2. Debemos buscar elemento por elemento para encontrarlo

7.5.2.2. No tienen tamaño fijo

7.5.2.2.1. no se necesita crear una nueva lista para agregar más elementos

8. Características de los lenguajes

8.1. Conjunto de palabras que tienen una sintaxis que nos permiten indicarle al ordenador que es lo que debe hacer

8.2. Diferentes lenguajes

8.2.1. Código fuente

8.2.1.1. Código escrito por un programador en un lenguaje determinado

8.3. Source Code

8.3.1. Código fuente o fuente, a secas al texto que escribe el programador utilizando sentencias válidas del lenguaje con el que está trabajando

8.4. Código

8.4.1. Dónde se vuelva la lógica empleada para resolver el problema que genera el programa.

8.5. Niveles de los lenguajes

8.5.1. Indica la facilidad con la que el programador puede comunicarse con el computador y darle instrucciones que debe ejecutar

8.5.2. Lenguaje de alto nivel

8.5.2.1. Tipo de lenguaje de programación que expresa los algoritmos en lenguaje más cercano al humano.

8.5.2.1.1. Permite abstraernos de las instrucciones que se deben ejecutar según la arquitectura del ordenador

8.5.3. Lenguaje de bajo nivel

8.5.3.1. Aquel parecido al código de máquina

8.5.3.1.1. + bajo el nivel + nos parecemos al lenguaje computadora de 0 y 1

8.6. Compilado e interpretado

8.6.1. Compilador

8.6.1.1. Es una aplicación que Lee un lenguaje de entrada(FUENTE), y lo transforma en lenguaje OBJETO

8.6.2. Compilado

8.6.2.1. Aquel que se escribe en lenguaje de alto nivel y luego es traducido a un ejecutable para una plataforma específica mediante la compilación.

8.6.2.1.1. Más rápido que los interpretados, una vez terminada la compilación, mientras no cambiemos el código fuente no se necesita compilarlo de nuevo

8.6.3. Interpretado

8.6.3.1. Aquel traducido a instrucciones propias de la plataforma, LINEA POR LINEA, mientras se ejecuta.

8.6.4. Intérprete

8.6.4.1. Realiza análisis de una aplicación escrita en un lenguaje no máquina y lo convierte en lenguaje máquina, entendible para el ordenador

8.7. Tipos de paradigmas

8.7.1. Imperativo

8.7.1.1. Desarrolla software mediante un conjunto de instrucciones que indica como realizar la tarea.

8.7.1.1.1. Ej: receta de cocina

8.7.2. Declarativo

8.7.2.1. Se determina directamente el estado final de lo que deseamos obtener y dejamos que el computador defina el mejor método para hacerlo.

8.7.2.1.1. Ej: pedimos un plato específico y el cocinero lo hace

8.7.3. Orientada a objetos

8.7.3.1. Establece como podemos modelar y codificar la solución de un problema identificando los objetos que participan en el proceso.

8.7.3.1.1. Nuevo Tema

9. Tipos

9.1. Lenguaje

9.1.1. Se clasifican de acuerdo al lenguaje en el que se describen, pasos, objetivo o función y en relación con la estrategia que utiliza para llegar al resultado.

9.1.2. Se clasifican según si se escribe con palabras o cálculos numéricos(suma, resta, etc.

9.1.3. Cuantitativos

9.1.3.1. Se utilizan números y operadores.

9.1.4. Cualitativos

9.1.4.1. Se utilizan palabras para definir pasos

9.2. Función

9.2.1. Existen algoritmos que cumplen diferentes funciones en general

9.2.2. Búsqueda

9.2.2.1. Se encarga de encontrar un determinado item dentro de un conjunto. Ej, palabra en libro

9.2.3. Ordenamiento

9.2.3.1. Ordena un conjunto de valores de acuerdo con un criterio específico el cual se puede ordenar alfabéticamente. Ej, lista de palabras ordenarlos alfabéticamente

9.2.4. Encaminamiento

9.2.4.1. Busca cuál es la forma más eficiente de indicar la trayectoria de un objeto de un lugar a otro

9.3. Estrategia

9.3.1. Se clasifican en relación a la estrategia que se utiliza para llegar al resultado

9.3.2. Determinista

9.3.2.1. Cada paso dentro del algoritmo es lineal, a excepción del primero, casa paso tiene un predecesor y un sucesor, a excepción del último.

9.3.3. Probabilístico

9.3.3.1. Utiliza valores pseudoaleatorios como entrada para llegar a una solución. Ejecutan la cantidad suficiente para determinar un nivel de confianza en su resultado

9.3.4. Voraz

9.3.4.1. Evalúan cada una de las posibilidades y eligen las mejores de ellas.

10. Lógica proporcional

10.1. El juicio

10.1.1. Lo que se piensa en dicho acto

10.1.2. Acto mental en el que pensamos un enunciado

10.2. La proposición

10.2.1. Una proposición lógica es toda oración que puede decirse si es V o F

10.2.2. Proposición compuesta

10.2.2.1. Combinación de proposiciones simples mediante conectores lógicos

10.2.3. Proposición simple

10.2.3.1. Puede ser verdadera o no

10.3. Principios

10.3.1. Principio de no contradicción

10.3.1.1. Dos proposiciones contradictorias entre si, no pueden ser las dos falsas.

10.3.2. Principio de tercero excluido

10.3.2.1. Dos preposiciones entre si no pueden ser ambas falsas

10.3.3. Principio de identidad

10.3.3.1. Toda preposición es idéntica en si misma, un círculo es un círculo no un rectángulo

10.4. Conectores lógicos

10.4.1. Negación

10.4.1.1. Invierte el valor de verdad o falso de una proposición, utiliza el operador NOT, se lee -p y el símbolo '.

10.4.2. Conjunción

10.4.2.1. Conecta dos proposiciones simples con el término "Y", utiliza el símbolo "^", las dos deben ser verdaderas.

10.4.3. Disyunción

10.4.3.1. Mientras una proposición sea verdadero entonces es verdadero, une dos proposiciones mediante "o", utiliza el operador "OR" y el símbolo "v".

11. Lógica

11.1. Disciplina que formaliza el estudio de los métodos de razonamiento

11.2. Objetivos

11.2.1. Eliminar ambigüedades del lenguaje natural

11.2.2. Establecer reglas que determinen la validez de un razonamiento

12. Algoritmos

12.1. Conjunto de pasos que nos permiten llegar a un resultado

12.2. Características

12.2.1. Ordenados

12.2.1.1. Se debe definir también la secuencia en la que dichos pasos de deben realizar.

12.2.2. Finitos

12.2.2.1. Debe tener pasos limitados.

12.2.3. Definido

12.2.3.1. Para un problema, si se sigue el mismo algoritmo se debe llegar al mismo resultado.

12.3. Partes

12.3.1. Entrada

12.3.1.1. Se necesita una entrada a la cual aplicar los pasos.

12.3.2. Proceso

12.3.2.1. Pasos definidos en los que manipulamos la entrada para llegar a un resultado.

12.3.3. Salida

12.3.3.1. El resultado de las operaciones o lados de un algoritmo sobre una entrada específica.

13. Leyes de Morgan

13.1. La negación de la conjunción es la disyunción de las negaciones

13.1.1. (A AND B)' es igual a A' OR B'.

13.2. La negación de la disyunción es la conjunción de las negaciones

13.2.1. (A OR B)' es igual a A' AND '.

13.3. Funciones lógicas

13.3.1. Expresión que define las operaciones para realizar sobre un conjunto de variables, para obtener un resultado

14. ALGORITMOS de ORDENAMIENTO

14.1. Criterio de ordenamiento

14.1.1. Numérico de menor a mayor, de mayor a menor

14.1.2. Alfabéticamente e inverso alfabéticamente, etc

14.2. Se clasifican de acuerdo a:

14.2.1. Ordenamiento interno:

14.2.1.1. Utiliza solo memoria para realizar el procesamiento y manipular elementos

14.2.2. Ordenamiento externo:

14.2.2.1. Utiliza memoria y el almacenamiento en disco cuando la memoria no es suficiente para el proceso

14.2.3. Complejidad

14.2.3.1. Ordenamiento de metodo de complejidad

14.2.3.1.1. 1- O(n), 2- O(2*n), 3-O(n2)

14.2.3.2. Organiza elementos de un arreglo,lista o estructura de datos bajo un criterio específico

14.3. Burbuja

14.3.1. Compara de a pares, encontrando el elemento mayor en la interacción

14.4. Árbol

14.4.1. Se expresa con la letra O seguido de paréntesis y dentro del parentesis una n(cant de elementos)

14.4.1.1. O(n)

14.4.2. Construye un arbol, elemento por elemento el cual se inserta de manera ordenada, luego se obtienen los elementos recorriendo el árbol

14.4.2.1. Izquierda menor y derecha mayor

14.5. Inserción

14.5.1. Toma el primero elemento y lo copia a un nuevo arreglo, copia el segundo y lo compara si es mayor o menor al o los anteriores

14.6. Selección

14.6.1. Busca el menor valor del arreglo y lo intercambia en la primera posición, busca el segundo menor y lo intercambia por el de segunda posición y así sucesivamente

14.6.1.1. Se puede utilizar en ARRAYS y LISTAS