Material Detail

CS50W - Web programming with Python and JavaScript

CS50W - Web programming with Python and JavaScript

This course picks up where Harvard University's CS50 (Harvard University's introduction to the intellectual enterprises of computer science and the art of programming) leaves off, diving more deeply into the design and implementation of web apps with Python, JavaScript, and SQL using frameworks like Django, React, and Bootstrap. Topics include database design, scalability, security, and user experience. Through hands-on...

Show More

Quality

  • User Rating
  • Comments  (1) Comments
  • Learning Exercises
  • Bookmark Collection (1) Bookmark Collections
  • Course ePortfolios
  • Accessibility Info

More about this material

Comments

Log in to participate in the discussions or sign up if you are not already a MERLOT member.
Laura Gilgado Romero
1 year ago
EVALUACIÓN DE LA CALIDAD DEL RECURSO COMO MATERIAL DE APRENDIZAJE EN LOS ESTUDIOS DE GRADO DE INGENIERÍA INFORMÁTICA DE LA UPM. Description: o Overview: o Tema El recurso consiste en un curso de 10 vídeos orientado al diseño de aplicaciones web mediante distintos lenguajes y entornos de trabajo. El primero de ellos nos presenta cada uno de los temas a tratar durante el resto de los vídeos. Este material pertenece a la Universidad de Harvard. En concreto, es parte de CS50, una organización que busca introducir a los estudiantes en el mundo de la informática y de la programación. El ponente de este curso en particular es Brian Yu, antiguo miembro de CS50. El curso entra dentro, por tanto, del ámbito tecnológico y fue inicialmente designado para el rol de analista de sistemas. Considero que adquirir este tipo de conocimientos le puede resultar de ayuda puesto que se encuentran relacionados con su área de trabajo (el estudio de sistemas y el diseño de mejoras para los mismos). La web es en sí misma otro sistema que se fundamenta en ciertos principios (lenguajes y herramientas). Por tanto, un profesional de esta clase debería estar al día en los distintos métodos de desarrollo web por si ha de enfrentarse a un sistema así laboralmente. o Tipos de formato de materiales Todos los vídeos del curso se basan en la explicación de ciertas diapositivas dispuestas en una pantalla. Cada vídeo cuenta con su propia presentación, que a su vez incluye gráficos con el fin de definir mejor ciertos conceptos. También se expone contenido a través de código con el IDE Visual Studio Code, donde Brian Yu hace proyectos que después testea en la terminal. En la descripción de cada uno de los vídeos hay un enlace que redirige a las presentaciones y el código vistos durante el curso. Estos están disponibles para todo el que quiera acceder a ellos. Cabe mencionar que los vídeos se pueden encontrar en la plataforma YouTube, son totalmente gratuitos y oscilan entre los 50 min y las 2 horas de duración (omitiendo la introducción). o Type of Material: Online Course. o Technical Requirements: Se requiere de un dispositivo con conexión a internet para su visualización, así como de un navegador con acceso a YouTube. Preferentemente, aquel que cuente con la versión más reciente de Firefox, Safari o Google Chrome. o Learning Goal(s): - Sentar las bases de los lenguajes fundamentales para el desarrollo web y el entendimiento del mismo. Estos son HTML y CSS (si bien también se menciona SASS, una extensión de CSS que implementa nuevas herramientas para mejoras de código). - Uso de la librería Bootstrap (que contiene código CSS redactado por diferentes usuarios de la misma) para poder integrarla en códigos de tipo HTML. - Presentación de Git y GitHub como herramientas de desarrollo y repositorio de proyectos respectivamente. Dar asimismo ciertos comandos ‘git’ que facilitan el uso de estas plataformas. - Iniciarles en Python como lenguaje de desarrollo web, empezando desde cero: creación de variables y funciones, implementación de condiciones, bucles y sentencias, etc. - Dar pasos introductorios en Django, una herramienta que busca dar respuesta a las interacciones de los usuarios con la web mediante la generación dinámica de código HTML y CSS. Aprender a instalar y crear proyectos en esta. - Sentar las bases de otro lenguaje de desarrollo web, JavaScript (creación de variables y funciones, definición de APIs e intervalos, etc.). A diferencia de Python, con este se trabaja desde el punto de vista del cliente (client-side code). - Presentar las interfaces de usuario dentro de JavaScript, así como herramientas para trabajar con ellas: React (librería que ayuda a usar componentes para hacer interfaces interactivas y que reaccionen eficientemente), ReactDOM (extrae los componentes de React y los inserta en el DOM) y Babel (traduce el código JSX que usa React a código JavaScript). - Introducir ciertas herramientas relativas al testing (en código Python, se cuenta con el comando ‘assert’ para verificar el funcionamiento de funciones y con la librería UnitTest para desarrollar pruebas que comprueben la equivalencia entre dos términos; dentro del navegador, Selenium) y al CI/CD (Continuous Integration/Continuous Delivery). Este segundo elemento trae consigo GitHub Actions (herramienta de integración y adaptación continua del código) y Docker (herramienta “contenedora” cuya configuración busca estandarizar el código de cierta forma). o Recommended Use(s): Encontré en su momento relación entre este recurso y la asignatura de Algoritmos y Estructura de Datos. No obstante, considero que AED se enfoca en un contenido más global, tratando diferentes sistemas de implementación de datos y no solo enfocándose en la web. Si bien los métodos que en ella se imparten son de ayuda, suponen solo los cimientos de una estructura que necesita mucho más conocimiento en específico del tema. De este modo, motivo la visualización de este curso tanto a aquellos que estén dando sus primeros pasos dentro del mundo del desarrollo web o que tengan interés por el mismo, como a los que ya entiendan ciertos conceptos (“que sepan del tema”) pero que deseen conocer nuevas herramientas o metodologías de trabajo. Pueden consultar todos los vídeos o solo aquellos que traten de un módulo en particular. o Target Student Population: Estudiante de grado (Upper division & graduates) o formación profesional cuya rama de conocimientos esté orientada al análisis e implementación de sistemas, especialmente de tipo web. Sin embargo, el contenido que se imparte es asequible a cualquier estudiante con cierto entendimiento de programación y cuya formación futura vaya encaminada también en este sentido. o Prerequisite Knowledge: Se aconseja contar con cierto conocimiento informático y de programación que les posibilite entender los distintos lenguajes de código que se enseñan durante el curso con el fin de que puedan “visualizar” las equivalencias a nivel estructural entre los mismos. Asimismo, se ha de saber usar la línea de comandos y trabajar con código en un IDE. Evaluations and Observations: o Quality of Content: • Lista Fortalezas de la calidad del contenido: - Se enseña cada modificación que el ponente le hace al código, sin omitir ninguna. Así se puede entender como cada cambio dentro de este afecta sustancialmente a cómo la web se ve implementada. - Todo el contenido está bien hilado entre sí. Si bien en los vídeos se tratan distintos conceptos, las relaciones que se dan entre ellos se encuentran lo suficientemente bien asentadas para que el paso de uno a otro incluso dentro de un mismo vídeo resulte natural, no artificioso. - Se explica el contenido de una forma clara y con ejemplos que son fáciles de entender. • Lista Preocupaciones de la calidad del contenido: - El material fue publicado hace 4 años, por lo que es posible que el contenido que se explica en el mismo esté desfasado o necesite ciertos matices para su actualización. o Potential Effectiveness as a Teaching/Learning Tool: • Lista Fortalezas de la efectividad del recurso como una herramienta de aprendizaje: - La división del contenido en módulos posibilita la visualización completa o parcial del curso. Esto significa que se pueden consultar todos los vídeos o solo aquellos que traten de un módulo en particular sin que afecte al conocimiento que aporta el curso (es decir, que ningún tema se ve sesgado). - Las distintas presentaciones cuentan con gráficos y resúmenes de conceptos que clarifican lo explicado. Además, en todo momento se expone el código con el que se trabaja y los cambios que acontecen dentro del servidor. - Al inicio de cada vídeo se suele hacer un resumen de los contenidos dados en el vídeo anterior o se presentan de un modo breve los que se han de tratar en el vídeo en cuestión. Esto ayuda a no perder el hilo del curso. - Facilitan el código usado y/o redactado por el ponente en caso de que alguien quisiera disponer de él. • Lista Preocupaciones de la efectividad del recurso como una herramienta de aprendizaje: - El material busca inicializar a los interesados en el desarrollo web. Por tanto, no puede ser tomado como refuerzo. o Ease of Use: • Lista Fortalezas de la facilidad de uso del recurso: - Cada vídeo se divide en subapartados que coinciden con los diferentes subtemas que se tratan en un mismo módulo. Estos subapartados son visibles tanto en el vídeo (al mover el ratón) como en su descripción. - El vídeo introductorio sienta las bases de todo el temario y expone de un modo conciso de qué va cada módulo. - El título de cada vídeo hace referencia al contenido a explicar en este. - El ponente es siempre el mismo, por lo que no se distinguen diferencias en cuanto al nivel de explicación de los distintos conceptos. • Lista Preocupaciones de la facilidad de uso del recurso: - La no operatividad de los enlaces dispuestos en la descripción de los vídeos y del recurso en sí es una cuestión a investigar, pues puede reducir la cantidad de materiales disponibles para el estudiante.