1. Del Lenguaje de Alto Nivel al Lenguaje Máquina
1.1. Comunicación con el hardware usando bits (0s y 1s): Lenguaje de máquina
1.2. Notació simbólica en ensamblador
1.3. Computadores esclavos de nuestros comandos
2. Beneficios de Lenguajes de Alto Nivel
2.1. Pensamiento más natural
2.2. Incremento de la productividad del programador
2.3. Independencia del hardware
3. Contenido de un computador
3.1. Placa base
3.2. Memoria
3.3. CPU
3.4. Memoria caché
4. Interfaz hardware - Software
4.1. ISA (Instruction Set Architecture)
4.2. Para que un programa en lenguaje de máquina funcione correctamente
4.3. El SO encapsula detalles
4.3.1. E/S
4.3.2. Asignación de memoria
4.3.3. Funciones de bajo nivel
5. Evolución Histórica de los Computadores
5.1. Inicios - Válvulas
5.2. 2ª Generación - Transistores
5.3. 3ª Generación - Circuitos Integrados
5.4. 4ª Generación - Microprocesadores
5.5. 5ª Generación - Redes de computadores y más
6. Rendimiento
6.1. Relacion entre rendimiento y tiempo de ejecución
6.1.1. Rendimeinto_x=1/T_de_ejecución_x
6.1.2. Rendimiento_x/Rendimiento_y=T_de_ejecución_y/T_de_ejecución_x
6.2. Rendmiento de la CPU
6.2.1. T_de_CPU=N_de_ciclos_del_programa*Duración_de_un_ciclo
6.2.2. T_de_CPU=N_de_ciclos_del_programa/Frecuencia_de_reloj
6.3. Fórmula clásica del rendimiento de la CPU
6.3.1. T_de_CPU=N_de_instrucciones*CPI*Periodo_de_reloj
6.3.2. T_de_CPU=N_de_instrucciones*CPI/Frecuencia_de_reloj
7. Relevancia
7.1. Revolución de la información
7.2. Aplicaciones económicamente inviables ahora posibles
7.2.1. Computadoras en automóviles
7.2.2. Teléfonos móviles
7.2.3. Proyecto del genoma humano
7.2.4. World Wide Web
7.2.5. Motores de búsqueda
7.3. Avances tecnológicos impactan la sociedad
7.4. Mejoras en hardware permite la creación de aplicaciones útiles
8. Clases de Computadores
8.1. Computadores de escritorio
8.1.1. Uso particular con teclado, ratón y monitor
8.1.2. Buen rendimiento
8.2. Servidores
8.2.1. Ejecutar grandes programas para múltiples usuarios
8.2.2. Sólo accesibles vía red
8.3. Supercomputadores
8.3.1. Computadores de más alto rendimiento y coste
8.3.2. Cientos o miles de procesadores y gran almacenamiento
8.4. Internet datacenters
8.4.1. Habitaciones diseñadas para alojar muchos servidores
8.5. Computadores Empotrados
8.5.1. Computadores para necesidades específicas, como en autos o teléfonos
8.5.2. Rendimiento limitado a las restricciones de coste o potencia
8.6. Era PostPC
8.6.1. Dispositivos móviles personales (PMD)
8.6.2. Cloud Computing y Warehouse Scale Computers (WSC)
9. Rendimiento de un Programa
9.1. Efectividad del algoritmo
9.2. Lenguaje de programación, compilador y arquitectura
9.3. Procesador y sistema de memoria
9.4. Sistema de E/S (Hardware y SO)
10. Capas de software
10.1. Software de aplicación
10.1.1. Aplicaciones complejas
10.1.2. Procesador de textos
10.1.3. Navegadores web
10.2. Software de Sistema
10.2.1. Sistema Operativo
10.2.1.1. Gestión básica de operaciones E/S
10.2.1.2. Asignación de almacenamiento y memoria
10.2.1.3. Reparto de recursos entre aplicaciones
10.2.2. Compiladores
10.2.2.1. De lenguaje de alto nivel a instrucciones de hardware
10.2.2.2. Es complejo
10.3. Hardware
10.3.1. Entrada de datos
10.3.2. Salida de datos
10.3.3. Procesamiento de datos
10.3.4. Almacenamiento de datos
10.3.5. Componentes de un Computador
10.3.5.1. Entrada
10.3.5.2. Salida
10.3.5.3. Procesador (ruta de datos y control)
10.3.5.4. Memoria