Podcast
Questions and Answers
¿Cuál de las siguientes opciones describe con mayor precisión la función del ARNr en la célula?
¿Cuál de las siguientes opciones describe con mayor precisión la función del ARNr en la célula?
- Transporta los aminoácidos al ribosoma para la síntesis de proteínas.
- Copia la secuencia de bases nitrogenadas del ADN para llevar la información genética del núcleo al citoplasma.
- Forma parte de los ribosomas y cataliza la formación de enlaces peptídicos entre los aminoácidos. (correct)
- Contiene la información hereditaria que determina las características de un organismo.
¿Qué tipo de enlace químico es el responsable directo de unir los aminoácidos durante la síntesis de una proteína?
¿Qué tipo de enlace químico es el responsable directo de unir los aminoácidos durante la síntesis de una proteína?
- Interacciones iónicas
- Puente de hidrógeno
- Enlace peptídico (correct)
- Enlace glucosídico
En la síntesis de proteínas, ¿cuál es la función principal del ARNm?
En la síntesis de proteínas, ¿cuál es la función principal del ARNm?
- Llevar la información genética del ADN a los ribosomas para la traducción. (correct)
- Servir como molde para la replicación del ADN.
- Transportar los aminoácidos al ribosoma.
- Catalizar la formación de enlaces peptídicos.
¿En qué orgánulo celular tiene lugar el proceso de traducción durante la síntesis de proteínas?
¿En qué orgánulo celular tiene lugar el proceso de traducción durante la síntesis de proteínas?
¿Cuál de las siguientes NO es una función primaria de los carbohidratos en los seres vivos?
¿Cuál de las siguientes NO es una función primaria de los carbohidratos en los seres vivos?
Si una célula carece de la capacidad de sintetizar lisosomas, ¿qué proceso celular se vería más directamente afectado?
Si una célula carece de la capacidad de sintetizar lisosomas, ¿qué proceso celular se vería más directamente afectado?
¿Qué elemento químico es fundamental en la estructura de todas las proteínas, pero no está presente en todos los carbohidratos y lípidos?
¿Qué elemento químico es fundamental en la estructura de todas las proteínas, pero no está presente en todos los carbohidratos y lípidos?
Las proteínas globulares, como las enzimas, se caracterizan por:
Las proteínas globulares, como las enzimas, se caracterizan por:
¿Cuál de las siguientes afirmaciones describe mejor la relación entre ADN, genes y cromosomas?
¿Cuál de las siguientes afirmaciones describe mejor la relación entre ADN, genes y cromosomas?
¿Cuál de los siguientes procesos celulares ocurre en el núcleo?
¿Cuál de los siguientes procesos celulares ocurre en el núcleo?
Flashcards
¿Dónde ocurre la síntesis de proteínas?
¿Dónde ocurre la síntesis de proteínas?
El proceso se realiza en los ribosomas. El ARNm mensajero actúa como intermedio entre el ADN y los ribosomas.
¿Qué es la Transcripción?
¿Qué es la Transcripción?
Se lleva a cabo en el núcleo. Consiste en hacer una copia de ADN en forma de ARNm que lleva la información para fabricar la proteína.
¿Dónde ocurre la Traducción?
¿Dónde ocurre la Traducción?
Ocurre en el citoplasma donde se encuentran los ribosomas. Se interpreta la información del ARNm que indica la secuencia de unión de los aminoácidos para formar una nueva proteína.
¿Qué son las Proteínas?
¿Qué son las Proteínas?
Signup and view all the flashcards
¿Cuál es la función de los carbohidratos?
¿Cuál es la función de los carbohidratos?
Signup and view all the flashcards
¿Qué son los Lípidos?
¿Qué son los Lípidos?
Signup and view all the flashcards
¿Qué almacenan los Ácidos Nucleicos?
¿Qué almacenan los Ácidos Nucleicos?
Signup and view all the flashcards
¿Cuál es la función del ARN?
¿Cuál es la función del ARN?
Signup and view all the flashcards
¿Cuál es la función del ADN?
¿Cuál es la función del ADN?
Signup and view all the flashcards
¿Qué transporta el ARNt?
¿Qué transporta el ARNt?
Signup and view all the flashcards
Study Notes
- This document serves as a user guide for ChatGPT, explaining its functionalities, workings, and potential applications
What is ChatGPT?
- ChatGPT is a large language model developed by OpenAI.
- It is designed to generate creative text formats, conduct conversations, and provide informative answers to questions.
How Does It Work?
- It has been trained on vast amounts of text data.
- It predicts the next word in a sequence based on the patterns learned from this data, enabling it to generate coherent and grammatically correct text.
Potential Applications
- Answering queries on various topics.
- Creative text generation, translation, and conversational AI.
Accessing ChatGPT
- You can access it via the OpenAI website or through their API.
Interacting with ChatGPT
- Users input text in a text box and send it.
- It then generates a response based on the provided input.
Tips for Better Results
- Clarity and conciseness are important for prompts.
- Providing ample context is helpful.
- Experimentation with questions and requests can yield varied outcomes.
- Reviewing and providing feedback on the responses aids in model improvement.
Advanced Features
- The OpenAI API can embed it in other applications for text generation and translation.
- ChatGPT can be customized with specific data to improve its performance in specific tasks.
Use Case: Creative Text
- ChatGPT can generate poems, scripts, and emails.
- Example: "Write a poem about love."
Use Case: Translation
- ChatGPT can translate text from one language to another.
- Example: "Translate 'Hello, world' to English."
Use Case: Question Answering
- It can answer questions on a variety of subjects.
- Example: "What is the capital of France?"
Limitations
- Can produce inaccurate information, necessitating verification.
- ChatGPT's training material contains biases.
- It is important to use with caution, since it is able to produce offensive content.
Protecting Privacy
- Users ought to refrain from sharing any sensitive personal information with ChatGPT when interacting with it.
Responsible Usage
- Use ChatGPT responsibly, and don't create content with the intent to conduct illegal activities.
Providing Feedback
- Feedback on ChatGPT can be provided via the OpenAI website.
Importance of Feedback
- Feedback is important to guide the model's improvement.
- It helps make sure ChatGPT is safe for all users.
Documented at :
- [Enlace a la documentación de OpenAI]
Community Access
- [Enlace a la comunidad de OpenAI]
Reminder
- Problem set 5 due tonight
- Will be away next week.
Last Time
- $H_k(C)$ where $C$ is a chain complex
- $...\xrightarrow{\partial_{n+1}}C_n\xrightarrow{\partial_n} C_{n-1}\xrightarrow{\partial_{n-1}}...$
- $H_k(C)= ker \partial_k / im \partial_{k+1}$
- $0 \xrightarrow{} ker \partial_k \xrightarrow{i} C_k \xrightarrow{\partial_k} im \partial_k \xrightarrow{} 0$ is exact.
- $C=C(X)$, is the singular chain complex of a space $X$.
$\Delta^n = [v_0,...,v_n]$
- $\sigma:\Delta^n \xrightarrow{} X$
- $C_n(X) =$ Free abelian group generated by singular n-simplices in $X$
- $\partial_n \sigma = \sum_{i=0}^n (-1)^i \sigma |[v_0,...,\hat{v_i},...,v_n]$
- $H_n(X) = H_n(C(X)) = \frac{ker \partial_n}{im \partial_{n+1}}$
Facts
- $H_n(pt) = \begin{cases} \mathbb{Z} & \text{if } n=0 \ 0 & \text{if } n>0 \end{cases}$
- If $X = \bigcup X_{\alpha}$ path connected, then $H_0(X) = \bigoplus_{\alpha} \mathbb{Z}$
- $H_0(\mathbb{R}^2 - \mathbb{Q}^2) = \bigoplus \mathbb{Z}$
-
of path connected components is uncountable
Lemma
- If $f,g : X \xrightarrow{} Y$ are homotopic, then $f_* = g_* : H_n(X) \xrightarrow{} H_n(Y)$.
Definition
- A map $f:X \xrightarrow{} Y$ is a homotopy equivalence if $\exists g: Y \xrightarrow{} X $ such that $f \circ g \simeq id_Y$ and $g \circ f \simeq id_X$.
Corollary
- If $f:X \xrightarrow{} Y$ is a homotopy equivalence, then $f_* : H_n(X) \xrightarrow{} H_n(Y)$ is an isomorphism $\forall n$.
- If $X$ is contractible, then $H_n(X) = \begin{cases} \mathbb{Z} & \text{if } n=0 \ 0 & \text{if } n>0 \end{cases}$ because $X \simeq pt$.
- $H_n(\mathbb{R}^n) = \begin{cases} \mathbb{Z} & \text{if } n=0 \ 0 & \text{if } n>0 \end{cases}$
Recall
- $\pi_1(X) = [S^1,X] / \simeq$
- Paths are maps $I \xrightarrow{} X$, $I=[0,1]$
- $\partial I = {0,1}$
- Loops are maps $S^1 \xrightarrow{} X$.
To relate $\pi_1$ and $H_1$ we want to understand
- $H_1(S^1)$
- $\gamma : I \xrightarrow{} S^1$
- $\gamma(0) = \gamma(1)$ i.e. $\gamma: \partial I \xrightarrow{} {pt}$
- $C_1(S^1) = \mathbb{Z} \cdot \gamma \oplus \text{other stuff}$
- $C_0(S^1) = \mathbb{Z} \cdot pt.$
- $\partial \gamma = \gamma(1) - \gamma(0) = pt - pt = 0$
- $\gamma \in ker \partial_1$
- $im \partial_2 = 0$ no 2-simplices which map to $S^1$
- $\gamma \in H_1(S^1)$.
- $H_1(S^1) = \mathbb{Z}$ generated by $\gamma$.
- $\pi_1(S^1) = \mathbb{Z}$
Theorem
- There is a group homomorphism $h: \pi_1(X,x_0) \xrightarrow{} H_1(X)$ sending $[\gamma] \longmapsto [\gamma]$.
- $\gamma: I \xrightarrow{} X$ with $\gamma(0) = \gamma(1) = x_0$.
- If $X$ is path-connected, then $H_1(X) \cong \pi_1(X,x_0)^{ab}$.
- $G^{ab} = G/[G,G]$ where $[G,G]$ is the commutator subgroup.
Example
- Let $X = S^1 \vee S^1$.
- $\pi_1(X) = \mathbb{F}_2 = \langle a,b | - \rangle$ the free group on 2 generators.
- $H_1(X) = \mathbb{Z}^2$.
Proof
- Define $h: \pi_1(X,x_0) \xrightarrow{} H_1(X)$
- $h([\gamma]) = [\gamma]$, where $\gamma: I \xrightarrow{} X$, $\gamma(0) = \gamma(1) = x_0$.
- If $\gamma_1 \simeq \gamma_2$ then $[\gamma_1] = [\gamma_2]$ in $H_1(X)$.
- $\gamma_1 \simeq \gamma_2$ rel ${0,1}$. Map exists $F: I \times I \xrightarrow{} X$
- $F(s,0) = \gamma_1(s)$
- $F(s,1) = \gamma_2(s)$
- $F(0,t) = x_0 = F(1,t)$
Then $\partial \sigma = \sigma | [v_1,v_2] - \sigma | [v_0,v_2] + \sigma | [v_0,v_1]$
- $\sigma | [v_0,v_1] = c$ constant loop at $x_0$
- $\partial \sigma = \gamma_2 - \gamma_1 + c$ constant loop at $x_0$
- $\partial \sigma = \gamma_2 - \gamma_1$
- $[\gamma_1] = [\gamma_2]$ in $H_1(X)$.
- $h$ is well-defined. $h$ is a homomorphism;
- remains to show that $h([\gamma_1 * \gamma_2]) = h([\gamma_1]) + h([\gamma_2])$. Then $\partial \sigma = \sigma | [v_1,v_2] - \sigma | [v_0,v_2] + \sigma | [v_0,v_1]$
- $\partial \sigma = \gamma_1 - \gamma_1 * \gamma_2 + \gamma_2$
- $\partial \sigma = 0$ in $H_1(X)$
- $h([\gamma_1] + [\gamma_2]) = h([\gamma_1 * \gamma_2])$.
- $h$ is a homomorphism.
Black-Scholes Formula Derivation
Asunciones
- El modelo de Black-Scholes se basa en las siguientes asunciones:
- El precio de las acciones sigue un movimiento browniano geométrico: $dS = \mu S dt + \sigma S dW_t$
- $\mu$ es la tasa de rendimiento esperada.
- $\sigma$ es la volatilidad.
- $W_t$ es un movimiento browniano estándar.
- Se permiten las ventas en corto y los activos son perfectamente divisibles.
- No hay costos de transacción ni impuestos.
- Todos los valores son perfectamente líquidos.
- El mercado es completo.
- La tasa de interés libre de riesgo, $r$, es constante.
Ecuación Diferencial Parcial de Black-Scholes
- Considere una cartera que consta de una opción con precio $V(S,t)$ y un número $\Delta$ de acciones.
- El valor de esta cartera es: $\Pi = V + \Delta S$
- Durante el período de tiempo $dt$, el cambio en el valor de la cartera es: $dV = \frac{\partial V}{\partial t}dt + \frac{\partial V}{\partial S}dS + \frac{1}{2}\frac{\partial^2 V}{\partial S^2}\sigma^2S^2dt$
- Usando el lema de Ito, $dV$ se puede expandir como: $dV = \frac{\partial V}{\partial t}dt + \frac{\partial V}{\partial S}dS + \frac{1}{2}\frac{\partial^2 V}{\partial S^2}(dS)^2$
- Sustituyendo la ecuación para $dS$ y $(dW_t)^2 = dt$: $dV = \frac{\partial V}{\partial t}dt + \frac{\partial V}{\partial S}dS + \frac{1}{2}\frac{\partial^2 V}{\partial S^2}\sigma^2S^2dt$
- $d\Pi = r(V-\frac{\partial V}{\partial S}S)dt$
- $d\Pi = \frac{\partial V}{\partial t}dt + (\frac{\partial V}{\partial S} + \Delta)dS + \frac{1}{2}\frac{\partial^2 V}{\partial S^2}\sigma^2S^2dt $
- Si elegimos $\Delta = -\frac{\partial V}{\partial S}$, los términos $dS$ se eliminan, haciendo la cartera libre de riesgo.
- $d\Pi = r\Pi dt = r(V-\frac{\partial V}{\partial S}S)dt$
- Igualando las dos expresiones para $d\Pi$: $\frac{\partial V}{\partial t}dt + \frac{1}{2}\frac{\partial^2 V}{\partial S^2}\sigma^2S^2dt = r(V-\frac{\partial V}{\partial S}S)dt$
- Dividiendo por $dt$ y reorganizando los términos, la ecuación diferencial parcial de Black-Scholes se obtiene así: $\frac{\partial V}{\partial t} + rS\frac{\partial V}{\partial S} + \frac{1}{2}\sigma^2S^2\frac{\partial^2 V}{\partial S^2} = rV$
Termodinámica
Conceptos básicos
- Termodinámica: el estudio de la energía, sus transformaciones y su relación con la materia.
- Sistema: una región definida del espacio o cantidad de materia en estudio.
- Entorno: todo lo que está fuera del sistema.
- Límite: la superficie que separa el sistema del entorno.
Tipos de sistemas
- Sistema aislado: sin intercambio de masa o energía con el entorno.
- Sistema cerrado: intercambio de energía pero no de masa con el entorno.
- Sistema abierto: intercambio tanto de masa como de energía con el entorno.
Propiedades de un sistema
- Propiedades intensivas: independientes de la cantidad de sustancia (por ejemplo, temperatura, presión, densidad).
- Propiedades extensivas: dependientes de la cantidad de sustancia (por ejemplo, masa, volumen, energía).
Equilibrio termodinámico
- Un sistema está en equilibrio termodinámico cuando se encuentra en equilibrio térmico, mecánico y químico.
Procesos
- Proceso isotérmico: ocurre a temperatura constante $(T = \text{constante})$.
- Proceso isobárico: ocurre a presión constante $(P = \text{constante})$.\
- Proceso isocórico: ocurre a volumen constante $(V = \text{constante})$.\
- Proceso adiabático: sin intercambio de calor con el entorno $(Q = 0)$.
Leyes de la termodinámica
- Ley cero: si dos sistemas están cada uno en equilibrio térmico con un tercer sistema, entonces están en equilibrio térmico entre sí.
- Primera ley: el cambio en la energía interna $(\Delta U)$ de un sistema es igual al calor agregado al sistema $(Q)$ menos el trabajo realizado por el sistema $(W)$.
- Ecuación: $\Delta U = Q - W$
- Segunda ley: la entropía total de un sistema aislado solo puede aumentar con el tiempo o permanecer constante en casos ideales.
- Ecuación: $\Delta S \geq 0$
- Tercera ley: a medida que la temperatura se acerca al cero absoluto, la entropía de un sistema se acerca a un valor mínimo o cero.
- Ecuación: $\lim_{T \to 0} S = 0$
Potenciales termodinámicos
- Los potenciales termodinámicos son funciones de estado que proporcionan una medida de la energía de un sistema y se pueden usar para determinar las condiciones de equilibrio.
- Energía interna $(U)$: la energía total de un sistema.
- Entalpía $(H)$: $H = U + PV$, donde $P$ es la presión y $V$ es el volumen.
- Energía libre de Helmholtz $(A)$: $A = U - TS$, donde $T$ es la temperatura y $S$ es la entropía.
- Energía libre de Gibbs $(G)$: $G = H - TS$
Aplicaciones
- La termodinámica tiene numerosas aplicaciones en varios campos, que incluyen:
- Ingeniería: diseño de motores, centrales eléctricas y sistemas de refrigeración.
- Química: comprensión de las reacciones químicas y los equilibrios de fase.
- Ciencia de los materiales: desarrollo de nuevos materiales con las propiedades deseadas.
- Ciencias ambientales: estudio del cambio climático y la eficiencia energética.
Conclusión
- La termodinámica proporciona un marco para comprender las transformaciones de energía y su relación con la materia.
- Las leyes de la termodinámica son principios fundamentales que rigen el comportamiento de los sistemas a nivel macroscópico y tienen amplias aplicaciones en diversos campos.
Guía de inicio rápido para Moodle
Acceder a Moodle
- URL:
https://moodle.udistrital.edu.co
- Usuario y contraseña son los mismos que el correo institucional.
Recuperar contraseña
- Haga clic en el enlace "¿Olvidó su nombre de usuario o contraseña?".
- Ingrese el nombre de usuario o la dirección de correo electrónico.
- Haga clic en "Buscar".
- Siga las instrucciones en el correo electrónico.
Recomendaciones
- Actualice el perfil (información personal, foto).
- Los usuarios deben descubrir los cursos disponibles.
- Familiarícese con la interfaz de Moodle.
- Utilice los foros para preguntas.
- Consulte la documentación y tutoriales.
Apoyo
- Correo:
[email protected]
- Teléfono: 3232369949
- Chat en línea: en la página de Moodle.
Navegación general
- Área personal: vista general de los cursos.
- Página principal del sitio: cursos disponibles e información general.
- Mis cursos: acceso directo a los cursos en los que está inscrito.
Estructura de un curso
- Secciones/Temas: dividen el contenido del curso.
- Recursos:
- Archivos (PDF, DOC, etc.)
- Enlaces web
- Páginas de texto
- Actividades:
- Foros
- Tareas
- Cuestionarios
- Wikis
Participación en un curso
Foros
- Crear un nuevo tema: haga clic en "Añadir un nuevo tema de discusión".
- Responder a un tema: haga clic en el tema y luego en "Responder".
Tareas
- Entrega: haga clic en la tarea, añada el archivo y haga clic en "Enviar tarea".
- Estado: verifique el estado de la entrega (Enviado para calificar, Calificado).
Cuestionarios
- Intentos: haga clic en "Intente resolver el cuestionario ahora".
- Navegación: responda las preguntas y utilice los botones de navegación.
- Finalizar: haga clic en "Terminar intento..." y luego en "Enviar todo y terminar".
Comunicación
- Mensajería interna: envíe mensajes a otros participantes del curso.
- Foros de anuncios: manténgase al tanto de los anuncios del profesor.
Calificaciones
- Acceso: en el bloque de "Administración" o en la barra de navegación.
- Revisión: Verifique sus calificaciones y comentarios del profesor.
Consejos adicionales
- Notificaciones: configure las notificaciones para mantenerse informado.
- Calendario: utilice el calendario para recordar fechas importantes.
- Bloques: personalice su vista del curso con los bloques disponibles.
Glosario básico
-
Profesor/Tutor: Persona encargada de impartir el curso.
-
Participante/Estudiante: Persona inscrita en el curso.
-
Administrador: Persona encargada de la gestión general de la plataforma.
-
¡Éxito en su experiencia Moodle! Universidad Distrital Francisco José de Caldas
Investigación
Abstracto
- Este documento analiza la eficiencia de las técnicas de subprocesos múltiples y vectorización en las CPU modernas que usan el lenguaje C++.
- Se implementaron varios algoritmos, incluyendo multiplicación de matrices, la Transformada Rápida de Fourier (FFT) y algoritmos de clasificación, y se comparó el rendimiento de las implementaciones escalares, multiproceso y vectorizadas.
- Los resultados muestran que el multithreading y la vectorización pueden mejorar significativamente el rendimiento de estos algoritmos, especialmente para grandes conjuntos de datos.
Introducción
- Las CPU modernas se han vuelto cada vez más complejas, con múltiples núcleos y soporte para instrucciones de Datos Múltiples de Instrucción Única (SIMD).
- Estas características permiten a los programadores explotar el paralelismo tanto a nivel de hilo como de instrucción.
- En este documento, se investiga la efectividad de las técnicas de subprocesos múltiples y vectorización para mejorar el rendimiento de varios algoritmos importantes.
- El multithreading implica dividir una tarea en múltiples subtareas que pueden ejecutarse simultáneamente en diferentes núcleos de la CPU.
- Esto puede reducir significativamente el tiempo de ejecución de las tareas que se pueden paralelizar fácilmente.
- La multithreading también introduce una sobrecarga debido a la creación, sincronización y comunicación de subprocesos.
- La vectorización consiste en realizar la misma operación en múltiples elementos de datos simultáneamente utilizando instrucciones SIMD.
- Esto puede mejorar significativamente el rendimiento de los algoritmos que involucran operaciones repetitivas en grandes matrices de datos.
- La vectorización requiere una atención cuidadosa a la alineación de los datos y los patrones de acceso a la memoria.
Metodología
- Implementación de varios algoritmos en C++, incluyendo: multiplicación de matrices, transformada Rápida de Fourier (FFT) y algoritmos de clasificación (por ejemplo, Quicksort, Mergesort)
- Para cada algoritmo, se implementaron tres versiones:
- Una versión escalar que usa código C++ estándar.
- Una versión multiproceso que usa la biblioteca std::thread para dividir la tarea en múltiples subtareas.
- Una que usa instrucciones SIMD (por ejemplo, Intel AVX) para realizar operaciones en múltiples elementos de datos simultáneamente.
- Se midió el tiempo de ejecución de cada versión para diferentes tamaños de entrada y comparó su rendimiento.
Resultados
- El multithreading y la vectorización pueden mejorar significativamente el rendimiento de estos algoritmos, especialmente para grandes conjuntos de datos.
- La versión vectorizada de la multiplicación de matrices fue hasta 8 veces más rápida que la versión escalar en nuestro sistema de prueba.
- La versión multiproceso de FFT fue hasta 4 veces más rápida que la versión escalar.
- Las ganancias de rendimiento del multithreading y la vectorización dependen del algoritmo y los datos de entrada.
- La mejora de rendimiento de la vectorización fue menos significativa para los algoritmos de clasificación que para la multiplicación de matrices y FFT.
- Los algoritmos de clasificación implican dependencias de datos más complejas y patrones de acceso a la memoria, lo que dificulta la explotación del paralelismo SIMD.
Discusión
- El multithreading y la vectorización pueden mejorar el rendimiento de los algoritmos computacionalmente intensivos en las CPU modernas.
- Estas técnicas requieren una atención cuidadosa a los detalles y una buena comprensión del hardware subyacente.
- El multithreading puede introducir una sobrecarga debido a la creación, sincronización y comunicación de subprocesos.
- La vectorización requiere una atención cuidadosa a la alineación de los datos y los patrones de acceso a la memoria.
Conclusión
- El multithreading y la vectorización pueden mejorar significativamente el rendimiento de varios algoritmos.
- Estas técnicas requieren una atención cuidadosa a los detalles y una buena comprensión del hardware subyacente.
- Los programadores deben considerar cuidadosamente las compensaciones entre rendimiento y complejidad al usar estas técnicas.
Referencias
- Guía de instrucciones intrínsecas de Intel. https://www.intel.com/content/www/us/en/develop/documentation/intrinsics-guide/top.html
- C++ Concurrency in Action: subprocesos múltiples prácticos. Anthony Williams.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.