3º. 2º cuatrimestre. Itinerario de Computación. Grado en Ingeniería Informática. ULL
En la metodología que seguiremos este curso trabajará usando esta organización GitHub:
Vamos a trabajar de modo que todos - alumnos y profesores de esta asignatura - usaremos repos en esta organización para las prácticas.
Para la puesta en marcha necesitamos hacer algunas tareas
Rellena el Cuestionario DSI: Relación GitHub-AluXXXX dentro de la tarea cuestionarios iniciales.
GitHub Classroom is a GitHub service for education allowing teachers to distribute assignments with starter code.
ana-juanMiguel-pedro
.asignatura-curso/nombredelatarea-nombredelequipo
que los alumnos del equipo deberán usar para entregar la prácticafork
del repo a una cuenta de uno de los miembros del equipo y dar permisos de administración al resto de colaboradores del equipo. En tal caso asegurate de mezclar los cambios en el de la organización cuando hayas terminadoDate de alta en la comunidad Google + de PL.
La mayor parte de los libros están accesible via el PuntoQ de la BULL.
Usaremos bastante estos libros:
En el repo GH:
encontrarás recursos adicionales.
La Evaluación de la asignatura se rige por el Reglamento de Evaluación y Calificación de la Universidad de La Laguna (BOC de 19 de enero de 2016), o el que la Universidad tenga vigente, además de por lo establecido en la Memoria de Verificación inicial o posteriores modificaciones.
Para participar en la evaluación continua, es obligatorio hacer uso de los recursos proveídos (apuntes, vídeos, repositorios, foros, wikis, etc.) y realizar los ejercicios y actividades señaladas como obligatorios. Se realizará control de asistencia a las clases prácticas.
Se realizarán micro-exámenes a lo largo del curso que incluyen cuestiones de desarrollo de conceptos y ejercicios prácticos. Una parte de estos ejercicios está destinada a autentificar los conocimientos que se han adquirido durante la elaboración de los proyectos mencionados en los otros apartados. Antes de las pruebas de evaluación continua se invierte cierto tiempo en la preparación mediante cuestionarios. Los estudiantes deberán superar los micro-exámenes para aprobar la asignatura con una nota mínima de 5 (sobre 10) en cada uno de ellos.
Estos exámenes se realizan en inglés y en ellos se valora la capacidad lingüística en este idioma.
@crguezl
Se desarrolla un Trabajo Fin de Asignatura (TFA) consistente en el diseño e implementación de un lenguaje (en algunos casos, un lenguaje de dominio específico, Domain Specific Language o DSL) que se presenta al final del curso. El proyecto se comienza tan pronto como el estudiante tiene los conocimientos mínimos para diseñarlo e implantarlo. Es necesario superar el proyecto para aprobar la asignatura con una nota mínima de 5.
Superadas las partes (micro-exámenes, prácticas individuales y en pareja y proyecto colaborativo), la nota es la media ponderada de las partes (micro-exámenes, micro-proyectos, proyecto).
Si un estudiante no supera una de las partes deberá ir al examen de la primera convocatoria en el que se examinará de las partes no superadas. Puede también presentarse a las partes superadas si desea subir nota.
En el Repo ULL-ESIT-GRADOII-PL/esprima-pegjs-jsconfeu-talk encontrará el material de varias charlas.
Espree started out as a fork of Esprima v1.2.2, the last stable published released of Esprima before work on ECMAScript 6 began. Espree is now built on top of Acorn, which has a modular architecture that allows extension of core functionality. The goal of Espree is to produce output that is similar to Esprima with a similar API so that it can be used in place of Esprima.
> esprima = require('esprima')
{ parse: [Function: parse],
parseModule: [Function: parseModule],
parseScript: [Function: parseScript],
tokenize: [Function: tokenize],
Syntax:
{ ... },
version: '4.0.1' }
> esprima.tokenize('answer = 42', { range: true })
[ { type: 'Identifier', value: 'answer', range: [ 0, 6 ] },
{ type: 'Punctuator', value: '=', range: [ 7, 8 ] },
{ type: 'Numeric', value: '42', range: [ 9, 11 ] } ]
> esprima.parseScript('const answer = 42', { tokens: true })
Script {
type: 'Program',
body:
[ VariableDeclaration {
type: 'VariableDeclaration',
declarations: [Array],
kind: 'const' } ],
sourceType: 'script',
tokens:
[ { type: 'Keyword', value: 'const' },
{ type: 'Identifier', value: 'answer' },
{ type: 'Punctuator', value: '=' },
{ type: 'Numeric', value: '42' } ] }
> inspect = require('util')
{ ... }
> console.log(util.inspect(esprima.parseScript('answer = 42'), {depth: null}))
Script {
type: 'Program',
body:
[ ExpressionStatement {
type: 'ExpressionStatement',
expression:
AssignmentExpression {
type: 'AssignmentExpression',
operator: '=',
left: Identifier { type: 'Identifier', name: 'answer' },
right: Literal { type: 'Literal', value: 42, raw: '42' } } } ],
sourceType: 'script' }
undefined
>
If we want to parse code written using the latest versions of JS we use espree
:
> espree = require('espree')
> code3 = "const f = (x) => (<h1>x</h1>)"
'const f = (x) => (<h1>x</h1>)'
> espree.parse(code3, {ecmaVersion:6, ecmaFeatures: { jsx: true }})
Node {
type: 'Program',
start: 0,
end: 29,
body: [
Node {
type: 'VariableDeclaration',
start: 0,
end: 29,
declarations: [Array],
kind: 'const'
}
],
sourceType: 'script'
}
See the AST of const f = (x) => (<h1>x</h1>) at astexplorer.net