TAI 2017. Bloque III. Desarrollo de sistemas - La web de emijrp

El Bloque III. Desarrollo de sistemas de las Oposiciones a TAI 2017 se compone de 10 temas.

Tabla de contenidos
 1. Tema 1: Modelo conceptual de datos
    1.1 Modelo conceptual de datos
    1.2 Diagramas de flujo de datos
 2. Tema 2: Diseño de bases de datos
    2.1 Diseño lógico y físico
    2.2 Normalización
    2.3 12 reglas de Codd
 3. Tema 3: Lenguajes de programación
    3.1 Paradigmas
    3.2 Estructuras
    3.3 Lenguajes
 4. Tema 4: Lenguajes de interrogación de bases de datos
    4.1 ANSI SQL
    4.2 Procedimientos almacenados
    4.3 Eventos y disparadores
    4.4 MySQL
    4.5 PostgreSQL
    4.6 ORACLE
    4.7 NoSQL
 5. Tema 5: Diseño y programación orientada a objetos
    5.1 UML
    5.2 Patrones de diseño
 6. Tema 6: Arquitectura Java EE y plataforma .NET
    6.1 Java
    6.2 C
    6.3 C++
    6.4 C#
 7. Tema 7: Arquitectura de sistemas cliente/servidor
    7.1 Cliente/servidor
    7.2 Modelo de tres capas
    7.3 Servicios web
       7.3.1 Orientada a servicios
 8. Tema 8: Aplicaciones web
    8.1 HTML, XHTML y XML
       8.1.1 HTML
       8.1.2 XHTML
       8.1.3 XML
    8.2 CSS
    8.3 Javascript
    8.4 PHP
    8.5 Sintaxis de comentarios, etc
 9. Tema 9: Accesibilidad y usabilidad
    9.1 Definiciones
    9.2 Herramientas
    9.3 Software
    9.4 WCAG
    9.5 Software
 10. Tema 10: Herramientas CASE
    10.1 Control de versiones
    10.2 Plataformas de desarrollo colaborativo de software
 11. Fuentes
 12. Referencias

Tema 1: Modelo conceptual de datos

Modelo conceptual de datos. Entidades, atributos y relaciones. Reglas de modelización. Diagramas de flujo de datos. Reglas de construcción. Descomposición en niveles. Flujogramas.

Modelo conceptual de datos

Diagrama ER.
Diagrama ER.

Pregunta relacionada en
2015 (PI)

El modelo entidad-relación ideado por Peter Chen en 1976 es el más frecuente para el diseño conceptual de bases de datos.

Los elementos básicos de un diagrama entidad-relación son las entidades, las relaciones y los atributos. Las entidades cuentan con atributos y ellas se relacionan entre sí.

Pregunta relacionada en
2015 (IL)

Diagramas de flujo de datos

Componentes de los DFD.
Componentes de los DFD.

Un Diagrama de Flujo de Datos (DFD) es una representación gráfica del flujo de datos y los cambios que este flujo sufre en un sistema de información, desde que entra al sistema hasta que sale. Existen distintos niveles de abstracción y detalle.

Pregunta relacionada en
2015 (IL) 2015 (PI)

Componentes de los DFD:

Los flujos de datos entre procesos y almacenes son: Proceso <- Almacén (flujo de consulta), Proceso -> Almacén (flujo de actualización), Proceso <-> Almacén (flujo de diálogo).

Los niveles de un DFD son:

Pregunta relacionada en
2016 (IL) 2016 (PI)

Tema 2: Diseño de bases de datos

Diseño de bases de datos. Diseño lógico y físico. El modelo lógico relacional. Normalización.

Pregunta relacionada en
2016 (IL) 2016 (PI)

Diseño lógico y físico

Normalización

Pregunta relacionada en
2016 (PI) 2014 (PI)

Si una base de datos no está normalizada se pueden producir inconsistencias en los datos además de redundancias. Se eliminan dependencias, proporciona una estructura más regular a las tablas.

Primera Forma Normal (1FN):

Segunda Forma Normal (2FN):

Tercera Forma Normal (3FN):

Existe niveles superiores a la 3FN: BCNF, 4NF, 5NF.

12 reglas de Codd

Pregunta relacionada en
2016 (IL) 2016 (PI) 2015 (IL)

En realidad son 13 reglas propuestas por Edgar Codd que se deben cumplir para el modelo relacional de bases de datos.

Tema 3: Lenguajes de programación

Lenguajes de programación. Representación de tipos de datos. Operadores. Instrucciones condicionales. Bucles y recursividad. Procedimientos, funciones y parámetros. Vectores y registros. Estructura de un programa.

Paradigmas

Pregunta relacionada en
2016 (PI)

Los paradigmas de programación son formas de clasificar los lenguajes de programación en base a las características de su estructura, control de flujo y elementos. Un mismo lenguaje puede pertenecer a varios paradigmas.

Estructuras

Una instrucción condicional es aquella que tras ser evaluada determina qué fragmento de código se ejecutará. Puede ser un if simple (solo un caso, la evaluación afirmativa), un if-else (con código tanto para la evaluación afirmativa como negativa de la condición) o un switch/select-case (múltiples casos).

Un bucle es una sentencia que ejecuta repetidas veces un trozo de código, hasta que la condición asignada a dicho bucle deja de cumplirse. Los tres bucles más utilizados en programación son el bucle while, el bucle for y el bucle do-while.

Un algoritmo recursivo es un algoritmo que expresa la solución de un problema en términos de una llamada a sí mismo. La llamada a sí mismo se conoce como llamada recursiva o recurrente.

Un procedimiento es una subrutina dentro de un programa que resuelve una tarea específica. Una función es aquella subrutina que devuelve un valor. Los parámetros son aquellas variables que se le pasan a los procedimientos o funciones para que sean utilizados en la resolución de la tarea.

Pregunta relacionada en
2014 (PI)

Un módulo es una porción de un programa, separado del resto de módulos, almacenado en ficheros individuales, con la finalidad de hacer el código más manejable y legible. Un bajo acoplamiento y una alta cohesión son señales de un sistema bien estructurado.

Lenguajes

Algunos lenguajes de programación y una breve reseña sobre ellos. Algunos no son estrictamente lenguajes de programación (como HTML, CSS, XML) pero se incluyen por ser de interés:

Tema 4: Lenguajes de interrogación de bases de datos

Lenguajes de interrogación de bases de datos. Estándar ANSI SQL. Procedimientos almacenados. Eventos y disparadores.

Pregunta relacionada en
2016 (IL) 2015 (IL)

Las transacciones de un sistema de gestión de bases de datos deben cumplir la regla ACID:

Pregunta relacionada en
2014 (PI)

Efectos no deseados:

Pregunta relacionada en
2015 (IL)

Los niveles de abstracción de base de datos son:

Pregunta relacionada en
2015 (IL) 2015 (PI) 2014 (PI)

En el álgebra relacional las operaciones son:

ANSI SQL

SQL (Structured Query Language o Lenguaje de Consulta Estructurada) es un lenguaje estandarizado con el que acceder a un sistema de gestión de bases de datos relaciones y realizar operaciones.

Pregunta relacionada en
2016 (IL) 2016 (PI)

SQL consiste en un lenguaje de definición de datos, un lenguaje de manipulación de datos y un lenguaje de control de datos.

Tipos de datos:

Pregunta relacionada en
2015 (IL)

Cláusula JOIN:

Para búsquedas aproximadas con LIKE se puede usar el comodín %, por ejemplo '%drid' serviría para encontrar 'Madrid'.

Pregunta relacionada en
2015 (PI)

La operación ROLLBACK devuelve la base de datos a un estado anterior.

Explain Plan desglosa las operaciones SELECT, INSERT, UPDATE, DELETE.

Procedimientos almacenados

Los procedimientos almacenados son programas guardados dentro de la base de datos y que son accesibles para las aplicaciones que la consultan. Su utilidad puede ser para validar datos, controlar el acceso, etc. La ventaja es que se ejecutan en el motor de la base de datos y solo devuelven los resultados solicitados, siendo más rápido todo el proceso.

Eventos y disparadores

Los eventos o disparadores (triggers) son objetos que se ejecutan cuando se realiza una operación de INSERT, DELETE o UPDATE sobre una tabla de una base de datos. Esto mejoran el mantenimiento de la base de datos ya que no requiere de intervención humana, reduciendo los errores.

Los triggers se componen de:

MySQL

ALL, ANY, LIKE, UNION, IN, tipos de datos

Operaciones con cadenas:[1]

Las cadenas empiezan en la posición 1.

Operaciones con fechas:[2]

Formatos de fechas:

PostgreSQL

ORACLE

NoSQL

Tema 5: Diseño y programación orientada a objetos

Diseño y programación orientada a objetos. Elementos y componentes software: objetos, clases, herencia, métodos, sobrecarga. Ventajas e inconvenientes. Patrones de diseño y lenguaje de modelado unificado (UML).

La programación orientada a objetos es un paradigma de la programación basado en el concepto de objetos, que pueden contener datos en forma de atributos, y código en forma de métodos.

Una característica de los objetos es que los métodos pueden acceder a sus datos y modificarlos (this/self). En el software orientado a objetos, los objetos interactúan entre ellos.

Pregunta relacionada en
2016 (PI)

Los lenguajes orientados a objetos más populares están basados en clases, siendo los objetos instancias de estas clases. Lenguajes orientados a objetos son Java, C++, C#, Python, PHP, Ruby, Perl, Object Pascal, Objective-C, Ada 95, Eiffel, Dart, Swift, Scala, Common Lisp, Vala, Visual Basic 6.0, y Smalltalk.

Algunos conceptos fundamentales de la POO:

Pregunta relacionada en
2015 (IL) 2014 (PI)

Características de la POO:

Ventajas e inconvenientes de la POO:

UML

El Lenguaje Unificado de Modelado (UML) es un lenguaje de propósito general en el campo de la ingeniería del software, para proveer de un modo estándar de visualizar el diseño de sistemas. Fue creado en los años 1990.

Pregunta relacionada en
2016 (PI)

Patrones de diseño

Pregunta relacionada en
2016 (IL) 2015 (IL)

Los patrones de diseño son técnicas para resolver problemas típicos durante el desarrollo de software.

Tema 6: Arquitectura Java EE y plataforma .NET

Arquitectura Java EE y plataforma .NET: componentes, persistencia y seguridad. Características, elementos y funciones en entornos Java, C, C++ y .Net.

Pregunta relacionada en
2016-SE (PI)

La diferencia entre un struct y una class es que los miembros de las estructuras son públicos por defecto, mientras que los de las clases son privados. Cuando un struct se pasa como argumento, en realidad se está pasando una copia del struct, y si es modificada dentro de la función, no afectará a los valores del struct original. Mientras que los objetos (class) se pasan por referencia, por lo que cualquier cambio se verá reflejado en el objeto original.

Java

Java es un lenguaje de programación de propósito general, concurrente, de tipado fuerte y orientado a objetos. Creado en 1996 por Sun Microsystems. El codigo Java programado es compilado, generando un bytecode, que se ejecuta sobre la máquina virtual Java (JVM). En teoría, el código puede ejecutarse en cualquier dispositivo o plataforma para la que exista una máquina virtual Java, con ningún cambio o mínimos cambios en el código, lo que se conoce como independiente de la plataforma.

Java cuenta con recolector de basura. Los ficheros java suelen tener la extensión .java, generándose un .class al compilar.

Un IDE popular es Eclipse con gran cantidad de plugins.

Un Hola mundo en Java:

public class HolaMundo {
    public static void main(String[] args) {
        System.out.println("Hola mundo");
    }
}

Los atributos, métodos y clases pueden ser:

  • abstract: no se crea directamente, sino que se usa en subclases
  • final: no modificable, valor constante
  • public: accesible desde otras clases
  • private: accesible solo desde su clase
  • protected: accesible desde su clase o derivadas
  • static: el método o variable está asociado a la clase, en vez de a cada instancia, por lo que solo existe una copia del mismo

Las variables se declaran e inicializan de la siguiente forma:

boolean booleano = true;
int entero = 5; // tambien long
float flotante = 5.7; // tambien double
String cadena = "Hola"; // tambien char
Integer[] enteros = {1, 2, 3} // vector de enteros
Vector enteros = new Vector(); // clase vector

Las variables pueden empezar por _ y contener caracteres Unicode.

Las estructuras de control son:

if (condicion) { ...; } else { ...; }

variable = (condicion) ? ... : ...;

switch (condicion) { case 1: ...; break; 
case 2: ...; break; default: ...; break; }

for (inicio; condicion; incremento) { ...; }

while (condicion) { ...; }

do { ...; } while (condicion);

Las excepciones se controlan así:

try {
    int a = 1;
    int b = 0;
    int n = a / b;
} catch (ArithmeticException e) {
    System.out.println("No se puede dividir por cero");
}

Palabras reservadas en JAVA:

Pregunta relacionada en
2016 (IL)

Las API Java son interfaces de programación de aplicaciones, proporcionan clases útiles para el desarrollo de programas. Pueden ser oficiales (paquetes java.*) o no.

Otros paquetes:

Los applets se ejecutan en el navegador, mientras que los servlets se ejecutan en un servidor web.

En HTML5 ya no existe la etiqueta APPLET.

C

Intro, breve historia, caracteristicas del lencuaje, hello world, variables, operadores, estructuras de control, funciones, excepciones, entrada y salida, interfaz gráfica

Un Hola mundo en C:


Las variables se declaran e inicializan de la siguiente forma:


Las excepciones se controlan así:


En C hay que declarar las variables antes de usarlas.

Palabras reservadas en C:

Pregunta relacionada en
2016 (IL)

Secuencias de escape en C:

Pregunta relacionada en
2015 (IL)

Biblioteca estándar de C:

La biblioteca no estándar conio.h es para operaciones de entrada y salida.

Pregunta relacionada en
2015 (PI)

Las bibliotecas se importan con la directiva #include si se quiere que busque en todos los directorios especificados en la llamada al compilador, o con #include "biblioteca.h" si se quiere que de prioridad al directorio donde está el código.

C++

Intro, breve historia, caracteristicas del lencuaje, hello world, variables, operadores, estructuras de control, funciones, excepciones, entrada y salida, interfaz gráfica

Un Hola mundo en C++:


Las variables se declaran e inicializan de la siguiente forma:


Las excepciones se controlan así:


Palabras reservadas en C++:

Biblioteca estándar de C++:

A diferencia de C, en C++ la directiva #include no lleva el .h en el nombre de la biblioteca, pero sigue conservándose el formato de comillas y < >.

Para incluir una biblioteca estándar de C en C++, se añade una 'c' delante al nombre y se elimina el .h. Así la biblioteca assert.h se convierte en cassert, stdio.h en cstdio, etc.

C#

C# (C Sharp) es un lenguaje de programación multiparadigma con tipado fuerte. Desarrollado por Microsoft para la plataforma .NET y posteriormente aprobado como estándar por ECMA e ISO. C# es de propósito general y orientado a objetos.

El proyecto Mono proporciona un compilador open-source para C#. Existe un entorno de desarrollo integrado (IDE) llamado MonoDevelop.[3]

Un Hola mundo en C#:

using System;

namespace HolaMundo {
    class MainClass {
        public static void Main(string[] args) {
            Console.WriteLine("Hola mundo");
        }
    }
}

Los atributos de las clases pueden ser:[4]

  • public: accesible desde otras clases, no recomendado
  • private: accesible solo desde su clase, por defecto
  • protected: accesible desde su clase o derivadas
  • internal: acceso limitado al ensamblado

Las variables se declaran e inicializan de la siguiente forma:

bool booleano = true;
int entero = 5; // tambien long
float flotante = 5.7; // tambien double
string cadena = "Hola"; // tambien char
int[] enteros = {1, 2, 3, 4}; // vector de enteros
List< string > lista = new List< string >(); // clase lista

Las variables pueden empezar por _ y contener caracteres Unicode.

Las estructuras de control son:

if (condicion) { ...; } else { ...; }

variable = (condicion) ? ... : ...;

switch (condicion) { case 1: ...; break; 
case 2: ...; break; default: ...; break; }

Las excepciones se controlan así:

try {
    int a = 1;
    int b = 0;
    int n = a / b;
} catch (DivideByZeroException e) {
    Console.WriteLine("No se puede dividir por cero");
}

Palabras reservadas en C#:


Pregunta relacionada en
2016-SE (PI)

Para hacer uso de espacios de nombres (namespaces) se utiliza la directiva using. Una muy frecuente es using System con funciones básicas del sistema. Dentro de los namespaces están las clases, por ejemplo la clase Console está dentro del namespace System. La llamada System.Console.WriteLine() imprimirá texto por consola.


Pregunta relacionada en
2016-SE (PI)

Namespaces, clases y métodos frecuentes:

Para conversiones entre tipos, son frecuentes .ToString() para convertir números en cadenas, o al contrario Int32.Parse("55"). Para convertir cadenas en fechas, se usa DateTime.Parse() y DateTime.ParseExact().

Pregunta relacionada en
2016-SE (PI)

Orden de secuencia de eventos para páginas ASP.NET: PreInit, Init, InitComplete, PreLoad, Load, LoadComplete, PreRender, PreRenderComplete, SaveStateComplete, Render, Unload.[7]

Tema 7: Arquitectura de sistemas cliente/servidor

Arquitectura de sistemas cliente/servidor y multicapas: componentes y operación. Arquitecturas de servicios web y protocolos asociados.

Cliente/servidor

Pregunta relacionada en
2016 (IL) 2015 (IL) 2014 (PI)

En la arquitectura cliente-servidor las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta.

En la arquitectura multicapa hay tres tipos de nodos: clientes, servidores de aplicación y servidores de base de datos. Se conoce como arquitectura en tres capas, siendo más escalable y modificable.

El middleware permite la interoperabilidad entre aplicaciones distribuidas.

El thin client se encarga de la presentación mientras el servidor hace todo lo demás.

Modelo de tres capas

Servicios web

Un servicio web es una tecnología que utiliza protocolos y estándares para intercambiar datos entre aplicaciones. Varios aplicaciones software en distintos lenguajes ejecutadas en cualquier plataforma, pueden usar los servicios web para intercambiar datos en una red. Esta interoperabilidad es posible con los estándares abiertos.

Estándares utilizados:

Pregunta relacionada en
2015 (PI)

Frameworks para servicios web:

Pregunta relacionada en
2016 (PI)

SOAP es un protocolo que define cómo se deben comunicar dos objetos de diferentes procesos empleando XML. Fue desarrollado por Microsoft e IBM. Todo mensaje SOAP tiene esta estructura: envelope (obligatorio), header, body (obligatorio) y fault. El envelope envuelve el conjunto y es el raíz.

WSDL (Web Services Description Language) es un formato de XML para describir servicios web, describe la forma de comunicación (requisitos y formatos). La estructura de WSDL contiene TYPES (tipos de datos usados en los mensajes), MESSAGE (elementos de mensaje), PORTTYPE (operaciones permitidas y mensajes intercambiados), BINDING (protocolos de comunicación usados), SERVICE (puertos y direcciones).

Orientada a servicios

Pregunta relacionada en
2016 (IL)

La arquitectura orientada a servicios (SOA) es un diseño de software en el que los servicios son proporcionados a otros componentes a través de un protocolo de comunicaciones sobre una red. Se trata de servicios independientes que pueden accederse remótamente y ser actualizados independientemente.

Tema 8: Aplicaciones web

Aplicaciones web. Desarrollo web front-end y en servidor. Lenguajes: HTML, XML y sus derivaciones. Navegadores y lenguajes de programación web. Lenguajes de script.

Pregunta relacionada en
2015 (PI)

Las API REST cuentan con las operaciones básicas GET, POST, PUT, DELETE.

HTML, XHTML y XML

HTML

Un documento HTML se compone generalmente de un DOCTYPE, un elemento HTML raíz, un HEAD y un BODY. El DOCTYPE indica de qué tipo de documento se trata (versión del HTML, idioma, codificación, etc). El elemento HTML indica el comienzo del documento en sí. El HEAD permite indicar metadatos adicionales (autor, fecha, descripción, palabras clave. Y el BODY incluye todo el texto, imágenes, etc, de la página web.

En general las etiquetas se abren y cierran, aunque hay algunas como IMG que no.

Las etiquetas más frecuentes y su situación dentro del documento son las siguientes:

Pregunta relacionada en
2015 (IL)

XHTML

Las diferencias entre HTML y XHTML son las siguientes:

XML

Algunas normas para XML:

CSS

CSS es un lenguaje de hojas de estilo para describir cómo se presenta un documento escrito en un lenguaje de marcado.

Un preprocesador CSS es un programa que genera código CSS a partir de una sintaxis distinta más potente. Los preprocesadores CSS más conocidos son SASS, LESS, Stylus y PostCSS.

Selectores CSS:[8]

Javascript

JavaScript es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico.

PHP

PHP es un lenguaje de programación de propósito general de código del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico. El código es interpretado por un servidor web con un módulo de procesador de PHP que genera el HTML resultante.

Todas las variables van precedidas del carácter $. Los nombres de variables son sensibles a mínusculas y mayúsculas. Solo pueden empezar con una letra o guión bajo. No es necesario indicar el tipo al crear la variable.

Algunas funciones básicas de PHP:[9]

Sintaxis de comentarios, etc

Sintaxis para comentarios:

Tema 9: Accesibilidad y usabilidad

Accesibilidad, diseño universal y usabilidad. Acceso y usabilidad de las tecnologías, productos y servicios relacionados con la sociedad de la información. Confidencialidad y disponibilidad de la información en puestos de usuario final.

Definiciones

Herramientas

Pregunta relacionada en
2014 (PI)

Software

Software para discapacitados:

WCAG

Pregunta relacionada en
2014 (PI)

WCAG significa Web Content Accesibility Guidelines.

Los niveles de orientación son: principios, pautas, criterios de conformidad, técnicas suficientes y recomendables.

En el nivel más alto están los 4 principios fundamentales de la accesibilidad web: perceptible, operable, comprensible y robusto. Dentro de los principios están las 12 pautas.

Principios WCAG 2.0:[10]

Los niveles o criterios de conformidad son A, AA y AAA.[11]

Para el nivel A son 25 criterios:

Para el nivel AA son 13 criterios:

Para el nivel AAA son 23 criterios:

Software

Pregunta relacionada en
2015 (IL) 2015 (PI)

Entre el Software para comprobar la accesibilidad están Achecker, Examinator, SortSite y Wave.

ARIA es una especificación que indica cómo hacer accesibles aplicaciones web enriquecidas.

Tema 10: Herramientas CASE

Herramientas CASE: características. Repositorios: estructura y actualización. Generación de código y documentación. Programas para control de versiones. Plataformas de desarrollo colaborativo de software.

Las herramientas CASE son aplicaciones que ayudan en las distintas fases del desarrollo de software (o ciclo de vida), reduciendo costes, errores, etc.

Las herramientas CASE se pueden clasificar según las fases en las que se apliquen:

Control de versiones

El control de versiones es el seguimiento de las modificaciones realizadas en un software. Se puede hacer de forma manual pero lo apropiado es usar alguna herramienta específica, llamada sistema de control de versiones que facilita la gestión de los cambios.

Los sistemas de control de versiones pueden ser:

Pregunta relacionada en
2015 (IL)

Algunas de estas herramientas son:

Algunos conceptos frecuentes:

Comandos básicos de Git:

Plataformas de desarrollo colaborativo de software

Existe forjas que ofrecen alojamiento de proyectos para distintos sistemas de control de versiones. Para Git existe GitHub, GitLab (anteriormente Gitorious) y GNU Savannah. Para Subversion estaba Google Code.

Entre las herramientas de seguimiento de errores (bug tracking) destacan Bugzilla (creada por Mozilla y de código abierto), Trac (libre) y JIRA (propietaria).

El groupware es aquel software que facilita el trabajo en grupo.

Un LMS o Learning Management System es un software para el aprendizaje a distancia, utilizado entre otros por universidades. Entre sus capacidades están la gestión de usuarios, publicación de contenidos, foros, videoconferencias. Los LMS más usados son Blackboard, Canvas, Desire2Learn, Moodle y Sakai. Los cursos pueden exportarse empaquetados en formatos como SCORM (Shareable Content Object Reference Model). El e-learning (electronic learning) es el aprendizaje en línea, b-learning (blended-learning) combina aprendizaje en el aula y en línea, m-learning (mobile-learning) es el aprendizaje con dispositivos móviles. Un MOOC (Massive Online Open Courses) es un curso online en abierto para muchas personas, las plataformas más famosas son Coursera, edX, Khan Academy, Udacity, Udemy. Los NOOC (Nano-MOOC) son pequeños cursos de apenas unas horas.

Un CMS o Content Management System es un gestor de contenidos que facilita la creación de portales estructurados y su gestión. Los CMS más usados son WordPress, Joomla, Alfresco, DSpace, OpenCMS, Drupal, MediaWiki.

Un ERP o Enterprise Resource Planning es un sistema de planificación de recursos empresariales.

Fuentes

Referencias

  1. MySQL: String Functions
  2. Date and Time Functions
  3. Curso C# con Mono
  4. Niveles de accesibilidad
  5. System.Collections.Generic Namespace
  6. Espacio de nombres System.Web.UI.HtmlControls
  7. Understanding the order of Page events
  8. Selectores CSS
  9. 25 Essential PHP Functions
  10. Pautas WCAG 2.0
  11. Criterios de conformidad de WCAG 2.0
Oposiciones
Apuntes TAI 2017 Bloque I · Bloque II · Bloque III · Bloque IV
Apuntes TAI 2018 Bloque I · Bloque II · Bloque III · Bloque IV
Exámenes Análisis de exámenes