You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/0/es/part0a.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,7 @@ Se espera que los participantes tengan buenas habilidades de programación, cono
19
19
20
20
No se requieren conocimientos previos de JavaScript u otros temas del curso.
21
21
22
-
¿Cuanta experiencia en programación es necesaria? Es difícil de decir, pero deberías ser bastante fluido con*tu* lenguaje. Este nivel de fluidez usualmente necesita de al menos 100-200 horas de practica para desarrollarlo.
22
+
¿Cuanta experiencia en programación es necesaria? Es difícil de decir, pero deberías ser bastante fluido en*tu* lenguaje. Este nivel de fluidez usualmente necesita de al menos 100-200 horas de practica para desarrollarlo.
23
23
24
24
### Material del curso
25
25
@@ -37,7 +37,7 @@ El curso consta de catorce partes, la primera de las cuales tiene el número 0 p
37
37
38
38
Pasar de la parte *n* a la parte *n + 1* no es sensato antes de que se haya alcanzado un conocimiento suficientemente bueno de los temas de la parte *n*. En términos pedagógicos, el curso utiliza [Aprendizaje para el dominio](https://es.wikipedia.org/wiki/Aprendizaje_para_el_dominio), y se espera que solo continues con la siguiente parte después de hacer suficientes ejercicios de la parte anterior.
39
39
40
-
En las partes 1-4 se espera que hagas **todos** los ejercicios que están marcados con un asterisco(*). Los ejercicios marcados con un asterisco cuentan para tu calificación final, pero omitirlos no te impide realizar los ejercicios obligatorios de la siguiente parte. Las partes 5-13 no tienen ejercicios marcados con asteriscos ya que no existe una dependencia similar a la de las partes anteriores.
40
+
En las partes 1-4 se espera que hagas al menos **todos** los ejercicios que**no** están marcados con un asterisco(*). Los ejercicios marcados con un asterisco cuentan para tu calificación final, pero omitirlos no te impide realizar los ejercicios obligatorios de la siguiente parte. Las partes 5-13 no tienen ejercicios marcados con asteriscos ya que no existe una dependencia similar a la de las partes anteriores.
41
41
42
42
La velocidad para completar el curso es flexible.
43
43
@@ -57,7 +57,7 @@ es muy probable que nadie responda. El bug puede estar *en cualquier lado*.
57
57
58
58
Una mejor pregunta sería
59
59
60
-
> * En el ejercicio 2.15 cuando intento agregar una nueva persona a la aplicación, el servidor responde con 403, aunque la solicitud parece estar bien.
60
+
> * En el ejercicio 2.15 cuando intento agregar una nueva persona a la aplicación, el servidor responde con un 403, aunque la solicitud parece estar bien.
61
61
>
62
62
> El código se ve así
63
63
>
@@ -74,7 +74,7 @@ Una mejor pregunta sería
74
74
>
75
75
> La pestaña de network se ve de la siguiente manera*
76
76
>
77
-
> [screen shot de la pestaña network]
77
+
> [screenshot de la pestaña network]
78
78
>
79
79
> Todo el código se puede encontrar aquí (un link a GitHub)
80
80
@@ -111,63 +111,63 @@ Solo puedes realizar el examen después de enviar suficientes ejercicios para ci
111
111
Al enviar al menos 127 ejercicios de las partes 0 a 7 mientras trabajas en el curso base, puedes recibir un crédito adicional a través de esta extensión.
112
112
113
113
- Envía al menos 127 ejercicios para las partes 0-7.
114
-
- [Inscríbete en la parte 6 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-de83e85f-a06e-4258-ad8c-30326d76228e).
114
+
- [Inscríbete en la parte 6 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-1d62f0e7-565b-4660-9c5a-7e7e449e352e).
115
115
- [Solicita los créditos para la parte 6](/es/part0/informacion_general#como-obtener-tus-creditos).
116
116
117
117
#### Part 7 - Desarrollo Web Full Stack, extension 2 (1 crédito, CSM141083)
118
118
119
119
Al enviar al menos 138 ejercicios para las partes 0-7 mientras trabajas en el curso base, puedes recibir un crédito adicional a través de esta extensión.
120
120
121
121
- Envía al menos 138 ejercicios para las partes 0-7.
122
-
- [Inscríbete en la parte 7 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-53ccca2f-8e77-47e3-931a-63f9d5c8cc2e).
122
+
- [Inscríbete en la parte 7 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-6436f286-a8a6-441f-a688-228bcded5d72).
123
123
- [Solicita los créditos para la parte 7](/es/part0/informacion_general#como-obtener-tus-creditos).
124
124
125
125
#### Part 8 - Desarrollo Web Full Stack: GraphQL (1 crédito, CSM14113)
126
126
127
127
Al enviar al menos 22 de 26 ejercicios para la parte 8 del curso de, GraphQL, puedes obtener un crédito adicional. La parte 8 puede realizarse en cualquier momento después de la parte 5, porque su contenido es independiente de las partes 6 y 7.
128
128
129
129
- Envía al menos 22 de 26 ejercicios para la parte 8.
130
-
- [Inscríbete en la parte 8 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-b7f5ef26-b780-45f2-962d-f8d3432cae78).
130
+
- [Inscríbete en la parte 8 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-7d0d6bd9-c940-4743-b69c-3f8577194b72).
131
131
- [Solicita los créditos para la parte 8](/es/part0/informacion_general#como-obtener-tus-creditos).
132
132
133
133
#### Part 9 - Desarrollo Web Full Stack: TypeScript (1 crédito, CSM14110)
134
134
135
135
Al enviar al menos 24 de 29 ejercicios de la parte 9 del curso, TypeScript, puedes obtener un crédito adicional. Se recomienda que completes las partes 0-7 antes de hacer la parte 9.
136
136
137
137
- Envía al menos 24 de 29 ejercicios para la parte 9.
138
-
- [Inscríbete en la parte 9 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-e45a36b7-24d7-424b-9dc5-1c9b59a52a23).
138
+
- [Inscríbete en la parte 9 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-929a947d-6810-410d-b828-cc40f368dcc7).
139
139
- [Solicita los créditos para la parte 9](/es/part0/informacion_general#como-obtener-tus-creditos).
140
140
141
141
#### Part 10 - Desarrollo Web Full Stack: React Native (2 crédito, CSM14111)
142
142
143
143
Al enviar 25 ejercicios para la parte 10 del curso, React Native, puedes obtener dos créditos adicionales. Puedes encontrar más información sobre los requisitos previos de esta parte, el envío de ejercicios y los créditos en la [parte 10](/es/part10/introduccion_a_react_native).
144
144
145
145
- Envía al menos 25 ejercicios para la parte 10.
146
-
- [Inscríbete en la parte 10 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-ec172afe-bc01-46ab-af23-694311f1950a).
146
+
- [Inscríbete en la parte 10 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-a4b9100c-6c5b-4847-8ea7-b056be9cfba3).
147
147
- [Solicita los créditos para la parte 10](/es/part0/informacion_general#como-obtener-tus-creditos).
148
148
149
149
#### Part 11 - Desarrollo Web Full Stack: Integración Continua / Entrega Continua (1 crédito, CSM14112)
150
150
151
151
Al enviar todos los ejercicios para la parte 11 del curso, CI/CD (Integración Continua/Entrega Continua), puedes obtener un crédito adicional. Más información sobre los requisitos previos de esta parte y el envío de ejercicios en la [parte 11](/en/part11).
152
152
153
153
- Envía todos los ejercicios para la parte 11.
154
-
- [Inscríbete en la parte 11 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-23e79dc2-64e4-4f7e-86a4-8923a411443c).
154
+
- [Inscríbete en la parte 11 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-4e4ca82e-21e1-4b06-aa01-b08f314b7974).
155
155
- [Solicita los créditos para la parte 11](/es/part0/informacion_general#como-obtener-tus-creditos).
156
156
157
157
#### Part 12 - Desarrollo Web Full Stack: Contenedores (1 crédito, CSM141084)
158
158
159
159
Al enviar todos los ejercicios para la parte 12 del curso, tecnología de contenedores, puedes obtener un crédito adicional. Más información sobre los requisitos previos de esta parte y el envío de ejercicios en la [parte 12](/es/part12).
160
160
161
161
- Envía todos los ejercicios para la parte 12.
162
-
- [Inscríbete en la parte 12 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-bb07e139-3de0-4cb3-843d-414b1bb992cc).
162
+
- [Inscríbete en la parte 12 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-b8fada92-c284-4c33-822a-92ee9eb08632).
163
163
- [Solicita los créditos para la parte 12](/es/part0/informacion_general#como-obtener-tus-creditos).
164
164
165
165
#### Part 13 - Desarrollo Web Full Stack: Bases de datos relacionales (1 crédito, CSM14114)
166
166
167
167
Al enviar todos los ejercicios para la parte 13 del curso, bases de datos relacionales, puedes obtener un crédito adicional. Más información sobre los requisitos previos de esta parte y el envío de ejercicios en la [parte 13](/es/part13).
168
168
169
169
- Envía todos los ejercicios para la parte 13.
170
-
- [Inscríbete en la parte 13 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-a9204ed8-1346-4174-b27c-9e02c6136088).
170
+
- [Inscríbete en la parte 13 a través de la Open University](https://www.avoin.helsinki.fi/palvelut/esittely.aspx?s=otm-024c8a43-2d9a-411a-a543-ca3dadcdcab6).
171
171
- [Solicita los créditos para la parte 13](/es/part0/informacion_general#como-obtener-tus-creditos).
172
172
173
173
### Estudiando el curso en pocas palabras
@@ -278,7 +278,7 @@ Puedes ver tu calificación en Sisu de la Universidad de Helsinki y en [Opintopo
278
278
279
279
Cuando se complete el registro, aparecerá el siguiente texto en el sistema de envío
280
280
281
-
> *University credits registered, see the course page how to get a transcript if you need one*
281
+
> *University credits registered, see the course page for how to get a transcript if you need one*
282
282
283
283
### ¿Dónde obtengo mi número de estudiante de la Universidad de Helsinki?
284
284
@@ -306,7 +306,7 @@ Si tienes problemas para encontrar tu número de estudiante a través de los med
306
306
307
307
En tu correo electrónico, incluye la siguiente información:
308
308
309
-
- nombre del curso en el que te has inscrito,
309
+
- el nombre del curso en el que te has inscrito,
310
310
- tu nombre
311
311
- tu fecha de nacimiento.
312
312
@@ -338,9 +338,9 @@ No hay más "versiones anuales" del curso, el curso está abierto todo el tiempo
338
338
339
339
A pesar de los cambios *todos los ejercicios enviados siguen siendo válidos*, y puedes continuar el curso sin preocuparte por las actualizaciones. Además, la política para obtener certificados, créditos universitarios, etc., seguirá siendo la misma, sin importar lo que suceda.
340
340
341
-
Cambios importantes recientes
341
+
Cambios recientes importantes
342
342
343
-
- Partes 1-9 (11 de septiembre - 5 de octubre): La aplicación Create React fue reemplazada por Vite
343
+
- Partes 1-2, 5-7 (11 de septiembre - 5 de octubre): La aplicación Create React fue reemplazada por Vite
344
344
345
345
### Ampliación de un curso completado anteriormente
Copy file name to clipboardExpand all lines: src/content/0/es/part0b.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -83,7 +83,7 @@ La página de inicio de la aplicación de ejemplo funciona como una <i>aplicaci
83
83
El servidor ha formado este documento de alguna manera. El documento puede ser un archivo de texto <i>estático</i> guardado en el directorio del servidor. El servidor también puede formar los documentos HTML <i>dinámicamente</i> de acuerdo con el código de la aplicación, utilizando, por ejemplo, datos de una base de datos.
84
84
El código HTML de la aplicación de ejemplo se ha formado de forma dinámica, porque contiene información sobre el número de notas creadas.
85
85
86
-
El código HTML de la página de inicio es el siguiente:
86
+
El código HTML de la página de inicio es formado dinámicamente en el servidor:
Copy file name to clipboardExpand all lines: src/content/1/en/part1.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,6 @@ lang: en
9
9
In this part, we will familiarize ourselves with the React-library, which we will be using to write the code that runs in the browser. We will also look at some features of JavaScript that are important for understanding React.
Copy file name to clipboardExpand all lines: src/content/1/en/part1a.md
+9-10Lines changed: 9 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -74,13 +74,13 @@ Instead of Vite you can also use the older generation tool [create-react-app](ht
74
74
75
75
The way to start the application is also different in CRA, it is started with a command
76
76
77
-
```
77
+
```bash
78
78
npm start
79
79
```
80
80
81
81
in contrast to Vite's
82
82
83
-
```
83
+
```bash
84
84
npm run dev
85
85
```
86
86
@@ -110,7 +110,6 @@ By default, the file <i>index.html</i> doesn't contain any HTML markup that is v
110
110
<scripttype="module"src="/src/main.jsx"></script>
111
111
</body>
112
112
</html>
113
-
114
113
```
115
114
116
115
You can try adding there some HTML to the file. However, when using React, all content that needs to be rendered is usually defined as React components.
@@ -263,6 +262,7 @@ but when writing JSX, the tag needs to be closed:
263
262
### Multiple components
264
263
265
264
Let's modify the file <i>App.jsx</i> as follows:
265
+
266
266
```js
267
267
// highlight-start
268
268
constHello= () => {
@@ -303,7 +303,6 @@ const App = () => {
303
303
304
304
**NB**: <em>export</em> at the bottom is left out in these <i>examples</i>, now and in the future. It is still needed for the code to work
305
305
306
-
307
306
Writing components with React is easy, and by combining components, even a more complex application can be kept fairly maintainable. Indeed, a core philosophy of React is composing applications from many specialized reusable components.
308
307
309
308
Another strong convention is the idea of a <i>root component</i> called <i>App</i> at the top of the component tree of the application. Nevertheless, as we will learn in [part 6](/en/part6), there are situations where the component <i>App</i> is not exactly the root, but is wrapped within an appropriate utility component.
@@ -378,7 +377,7 @@ I really hope your console was open. If it was not, remember what you promised:
378
377
379
378
> <i>I promise to keep the console open all the time during this course, and for the rest of my life when I'm doing web development</i>
380
379
381
-
Software development is hard. It gets even harder if one is not using all the possible available tools such as the web-console and debug printing with _console.log_. Professionals use both <i>all the time</i> and there is no single reason why a beginner should not adopt the use of these wonderful helper methods that will make life so much easier.
380
+
Software development is hard. It gets even harder if one is not using all the possible available tools such as the web-console and debug printing with _console.log_. Professionals use both <i>all the time</i> and there is no single reason why a beginner should not adopt the use of these wonderful helper methods that will make his life so much easier.
382
381
383
382
### Possible error message
384
383
@@ -412,7 +411,7 @@ module.exports = {
412
411
}
413
412
```
414
413
415
-
We will get to know ESLint in more detail [in part 3](/osa3/validointi_ja_es_lint#lint).
414
+
We will get to know ESLint in more detail [in part 3](/en/part3/validation_and_es_lint#lint).
416
415
417
416
### Some notes
418
417
@@ -450,7 +449,7 @@ const App = () => {
450
449
}
451
450
```
452
451
453
-
the page is not going to display the content defined within the Footer component, and instead React only creates an empty [footer](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/footer) element, i.e. the built-in HTML element instead of the custom React element of the same name. If you change the first letter of the component name to a capital letter, then React creates a <i>div</i>-element defined in the Footer component, which is rendered on the page.
452
+
the page is not going to display the content defined within the footer component, and instead React only creates an empty [footer](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/footer) element, i.e. the built-in HTML element instead of the custom React element of the same name. If you change the first letter of the component name to a capital letter, then React creates a <i>div</i>-element defined in the Footer component, which is rendered on the page.
454
453
455
454
Note that the content of a React component (usually) needs to contain **one root element**. If we, for example, try to define the component <i>App</i> without the outermost <i>div</i>-element:
456
455
@@ -634,7 +633,7 @@ Most of the exercises of the course build a larger application, eg. courseinfo,
634
633
635
634
For each web application for a series of exercises, it is recommended to submit all files relating to that application, except for the directory <i>node\_modules</i>.
636
635
637
-
<h4>1.1: course information, step1</h4>
636
+
<h4>1.1: Course Information, step 1</h4>
638
637
639
638
<i>The application that we will start working on in this exercise will be further developed in a few of the following exercises. In this and other upcoming exercise sets in this course, it is enough to only submit the final state of the application. If desired, you may also create a commit for each exercise of the series, but this is entirely optional.</i>
640
639
@@ -680,7 +679,7 @@ const App = () => {
680
679
exportdefaultApp
681
680
```
682
681
683
-
and remove extra files App.css and index.css, and the directory assets.
682
+
and remove the extra files App.css and index.css, also remove the directory assets.
684
683
685
684
Unfortunately, the entire application is in the same component. Refactor the code so that it consists of three new components: <i>Header</i>, <i>Content</i>, and <i>Total</i>. All data still resides in the <i>App</i> component, which passes the necessary data to each component using <i>props</i>. <i>Header</i> takes care of rendering the name of the course, <i>Content</i> renders the parts and their number of exercises and <i>Total</i> renders the total number of exercises.
686
685
@@ -710,7 +709,7 @@ Careful, small-step progress may seem slow, but it is actually <i> by far the fa
710
709
711
710
that is, according to Martin, careful progress with small steps is even the only way to be fast.
712
711
713
-
<h4>1.2: course information, step2</h4>
712
+
<h4>1.2: Course Information, step 2</h4>
714
713
715
714
Refactor the <i>Content</i> component so that it does not render any names of parts or their number of exercises by itself. Instead, it only renders three <i>Part</i> components of which each renders the name and number of exercises of one part.
0 commit comments