SlideShare una empresa de Scribd logo
1 de 23
Introduciendo a
Programa-me
Mi nombre es José Ráez. He hecho esta
presentación para ayudar y animar a otros
estudiantes y centros a participar.
Nuestro equipo, RuralHome The Nightmare,
formado junto a Raúl Ortiz y Rubén Fernández,
fue campeón de la fase regional y final nacional
de 2017.
Actualmente soy programador Back-End en C#
y Java.
Es un concurso de programación español para
alumnos de Formación Profesional de 1º y 2º. Los
alumnos participan en grupos de 3.
Se divide en dos fases: una fase regional dividida
en varias competiciones por regiones, y una fase
nacional donde van los primeros puestos de las
fases regionales.
Participar es totalmente gratis y bastante divertido.
Puedes visitar la página principal del concurso en
http://www.programa-me.com o en twitter
@programame
¿Qué es Programa-me?
Además, participar tiene ventajas
● El formato del concurso es similar a las entrevistas
técnicas que hacen las compañías.
○ Conocer cómo afrontarlas os dará una gran ventaja
durante la entrevista.
○ Es incluso recomendable echar un ojo a los problemas
como práctica para afrontar una próxima entrevista.
● Es una gran incorporación a vuestro currículum.
○ Solamente por participar ya os diferenciais de otros
alumnos.
○ Lograr buenas posiciones os servirá para entrar en la mira
de empresas.
● Viviréis una experiencia de trabajo en equipo real.
○ Tendréis que aprender a repartir, priorizar y resolver en
entornos de tiempo limitado.
¿Dónde empezar?
Acepta el reto www.aceptaelreto.com
En el encontrarás todo tipo de problemas divididos por
materia y dificultad, así como los problemas de otras
ediciones. Aquí podrás prepararte para el concurso.
Concursos de calentamiento www.programa-me.com
Así mismo, suelen hacerse ediciones de calentamiento alrededor de navidad. Contacta con los
organizadores para conocer que se está organizando ese año.
Calentamiento Navidad 2016: www.aceptaelreto.com/problems/categories.php?cat=98
También podéis probar en Las 12 Uvas: http://www.las12uvas.es/2017/#/quees
https://www.aceptaelreto.com/problem/statement.php?id=116
● Para buscar nuevos problemas, recomiendo buscar
por Categorías > Programación
● No hace falta seguir el orden propuesto, los
problemas no están por orden de dificultad.
● Al principio céntrate en pensar cómo resolverías los
problemas con tus compañeros.
○ Según se acerque el concurso, intenta programarlos
y subirlos a la web para coger soltura y
acostumbrarte a posibles fallos.
Afrontando los problemas
En esta sección hablaremos sobre el funcionamiento de los problemas de Acepta el reto y
Programa-me, para evitar tener dudas con cómo entran los datos y poder centrarnos en buscar la
solución.
Entrada y salida de datos
● La entrada siempre va por el flujo estándar y la salida siempre va por la salida estándar. La entrada
y la salida además tienen que ir ser una linea (C y C++: carácter 'n', Java: println o carácter 'n')
● ¡La salida no tiene que salir después de toda la entrada! De hecho, debéis escribir la solución
después de cada línea/problema.
● Alumnos de 1º: Aunque no se pueden incluir librerías, se les puede proveer un fichero con métodos
leerLinea y escribir para que no tengan que enfrentarse a I/O o flujos.
Ejemplos: C++
C
Java
Consejos:
● Java: Usad split para separar los datos.
C y C++: Cread una función que simule split con strtok
(necesitareis memoria dinámica).
○ Es SUPER ÚTIL para poder luego iterar sobre los
datos rápidamente.
○ No convirtáis los datos a sus tipos reales hasta que
los uséis para operar.
○ C y C++: También podéis usar scanf()
● Si tenéis una frase o dibujo formado por varias líneas,
recordad que podéis iterar por un string como si de un
array se tratase. (También en números para ir cifra por
cifra)
● Así mismo, recordad que cuando busquéis un valor en
concreto, basta con poner la cadena que lo generaría (por
ejemplo, si la fecha 25/11 entra como "25 11" podéis mirar
directamente si es igual, no hace falta que saquéis los dos
números).
● Por último: ¡no hace falta que verifiqueis que los datos son
válidos! Siempre obedecerán el formato presentado.
Además, los problemas irán introduciendo los datos generalmente de una de estas 3 formas:
Estructuras de datos
● Conocimientos de manejos de arrays y strings es más que suficiente para afrontar las pruebas con
garantías. Conocimiento de listas y diccionarios puede dar ventaja pero no es necesario.
● Matrices: practicar el patrón de "pintado".
Recursiva que recorre todas las celdas
disponibles.
● ¡Cuidado al ordenar números como strings!
● Problemas de ordenamiento pueden ser
bastante fáciles o difíciles. Ante la duda,
dejadlos para el final.
¿Cómo funciona el concurso?
Puntuación
● Tu puntuación es tus problemas resueltos. Para desempatar, el tiempo hasta la resolución con penalizaciones.
● Al tiempo se suma el minuto en que has resuelto el problema y minutos extra de penalización por intento para
resolverlo (los fallos en problemas sin resolver no cuentan). Siempre aparece Intentos/Tiempo total.
● Esta es una razón por la que es super importante localizar y resolver los problemas fáciles rápido.
○ Equipo 1 y 2: 3 problemas resueltos en el minuto 30 sin fallos.
○ Equipo 1: 3 | 40 -- Primero P1: minuto 2, P2: minuto 8, P3: minuto 30. 2 + 8 + 30 = 40.
○ Equipo 2: 3 | 70 -- Resolvió primero el P3 en el minuto 22. Luego resolvió el P1 en el minuto 23 y luego el
P2 en el minuto 25. Pese a tardar solo 1 y 3 minutos en P1 y P2, al resolverlos más tarde tienen peor
puntuación.
Unas notas finales:
● Durante el concurso es mucho más importante ser
corto a la hora de escribir que claro, y poder reusar
todo el código que sea posible.
○ Códigos de lectura/escritura, iteración,
transformación... contra más generales mejor,
para poder copiarlos de problema en problema.
● C y C++ disponen de un código más escueto y
tiempos de ejecución más rápidos
Java en el JDK tiene muchísimas utilidades.
¡Conoce bien las ventajas de tu lenguaje!
● Duerme bien la noche antes del concurso.
● Os podéis llevar hojas al concurso con código o notas
que os puedan servir de utilidad. También tenéis
disponible las APIs de C++ y Java.
● ¡Pasadlo bien!
¿Te has quedado con más ganas?
Otros concursos:
Para seguir poniéndote a prueba.
Las 12 Uvas (Diciembre)
http://www.las12uvas.es
Google Hash Code (Marzo)
https://hashcode.withgoogle.com
Tuenti Challenge (Abril)
https://contest.tuenti.net
Everis Codefest (Noviembre)
http://codefest.everis.com
Webs internacionales:
Profundiza en algoritmia. Recruiting internacional.
LeetCode - https://leetcode.com/
Ideal para practicar y aprender algoritmia. Sus
problemas y foros vienen con guías para su
resolución o con soluciones alternativas.
HackerRank- https://hackerrank.com
Sitio con competiciones y reclutamiento
internacional. Ideal para probar competiciones
avanzadas y destacar a nivel técnico (tiene su
propia clasificación).
Despedida y contacto
Muchas gracias por llegar hasta aquí, y espero que
os haya animado a participar y/u os haya ayudado.
Si tenéis alguna duda o queréis dejarme un saludo,
podéis encontrarme en:
-Twitter: @joshiraez
-E-mail: contacto@joseraez.com
-LinkedIn: http://joseraez.com
Agradecimientos
Quería aprovechar para dar mis agradecimientos a:
Nuria Fuentes, nuestra entrenadora y profesora de programación.
Por introducirnos al concurso y apoyarnos durante todo el camino,
además de ser una magnífica profesora y persona.
A Manuel, Jesús, Raúl y Rubén, mis compañeros de equipo
Por todo el esfuerzo y los buenos momentos en el camino a la fase
nacional de las ediciones 2016 y 2017 de Programa-me.

Más contenido relacionado

Similar a Introducción a Programa-me - Concurso español de programacion

Introducción a Programa-me - Concurso español de programacion (actualizado)
Introducción a Programa-me - Concurso español de programacion (actualizado) Introducción a Programa-me - Concurso español de programacion (actualizado)
Introducción a Programa-me - Concurso español de programacion (actualizado) José Ráez Rodríguez
 
ALP Unidad 1: Introducción a los fundamentos de la programación estructurada
ALP Unidad 1: Introducción a los fundamentos de la programación estructuradaALP Unidad 1: Introducción a los fundamentos de la programación estructurada
ALP Unidad 1: Introducción a los fundamentos de la programación estructuradaFranklin Parrales Bravo
 
Clase 1 Itinerario
Clase 1 ItinerarioClase 1 Itinerario
Clase 1 Itinerariovbalda
 
Open class 1_PE.pdf
Open class 1_PE.pdfOpen class 1_PE.pdf
Open class 1_PE.pdfRicardo89199
 
Metodología de la solución de problemas po equipo5
Metodología de la solución de problemas po equipo5Metodología de la solución de problemas po equipo5
Metodología de la solución de problemas po equipo5mendozaperla
 
variables, constantes, intro flujograma
variables, constantes, intro flujogramavariables, constantes, intro flujograma
variables, constantes, intro flujogramaKarla Pabón Vallejo
 
El arte de programar prev
El arte de programar prevEl arte de programar prev
El arte de programar prevjtk1
 
Charla Tdd Uji 032010
Charla Tdd Uji 032010Charla Tdd Uji 032010
Charla Tdd Uji 032010Carlos Ble
 
Trabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodoTrabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodogabrielaalban8
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programarCelestino Duran
 
Informe de tecnologia
Informe  de tecnologia Informe  de tecnologia
Informe de tecnologia lizisaac
 
Trabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodoTrabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodogabrielaalban8
 
Algoritmo Y Pseudocódigo
Algoritmo Y PseudocódigoAlgoritmo Y Pseudocódigo
Algoritmo Y PseudocódigoJohanCaro5
 
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxclase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxJulianSimonetta
 
resolucion de problemas: Algoritmos y programas
resolucion de problemas: Algoritmos y programas resolucion de problemas: Algoritmos y programas
resolucion de problemas: Algoritmos y programas panchofronteras
 

Similar a Introducción a Programa-me - Concurso español de programacion (20)

Introducción a Programa-me - Concurso español de programacion (actualizado)
Introducción a Programa-me - Concurso español de programacion (actualizado) Introducción a Programa-me - Concurso español de programacion (actualizado)
Introducción a Programa-me - Concurso español de programacion (actualizado)
 
ALP Unidad 1: Introducción a los fundamentos de la programación estructurada
ALP Unidad 1: Introducción a los fundamentos de la programación estructuradaALP Unidad 1: Introducción a los fundamentos de la programación estructurada
ALP Unidad 1: Introducción a los fundamentos de la programación estructurada
 
Clase 1 Itinerario
Clase 1 ItinerarioClase 1 Itinerario
Clase 1 Itinerario
 
Open class 1_PE.pdf
Open class 1_PE.pdfOpen class 1_PE.pdf
Open class 1_PE.pdf
 
Metodología de la solución de problemas po equipo5
Metodología de la solución de problemas po equipo5Metodología de la solución de problemas po equipo5
Metodología de la solución de problemas po equipo5
 
variables, constantes, intro flujograma
variables, constantes, intro flujogramavariables, constantes, intro flujograma
variables, constantes, intro flujograma
 
El arte de programar prev
El arte de programar prevEl arte de programar prev
El arte de programar prev
 
Proyecto grupo 5
Proyecto grupo 5Proyecto grupo 5
Proyecto grupo 5
 
Trabajo de tecnologia grupal
Trabajo de tecnologia grupalTrabajo de tecnologia grupal
Trabajo de tecnologia grupal
 
Trabajo de tecnologia grupal
Trabajo de tecnologia grupalTrabajo de tecnologia grupal
Trabajo de tecnologia grupal
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Charla Tdd Uji 032010
Charla Tdd Uji 032010Charla Tdd Uji 032010
Charla Tdd Uji 032010
 
Trabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodoTrabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodo
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programar
 
Informe de tecnologia
Informe  de tecnologia Informe  de tecnologia
Informe de tecnologia
 
Trabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodoTrabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodo
 
Algoritmo Y Pseudocódigo
Algoritmo Y PseudocódigoAlgoritmo Y Pseudocódigo
Algoritmo Y Pseudocódigo
 
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxclase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
 
resolucion de problemas: Algoritmos y programas
resolucion de problemas: Algoritmos y programas resolucion de problemas: Algoritmos y programas
resolucion de problemas: Algoritmos y programas
 
Algoritmos y programacion en C++
Algoritmos y programacion en C++Algoritmos y programacion en C++
Algoritmos y programacion en C++
 

Último

Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)ssuser6958b11
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRyanimarca23
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)dianamateo1513
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdffredyflores58
 
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónEstacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónAlexisHernandez885688
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosJeanCarlosLorenzo1
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialyajhairatapia
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxHarryArmandoLazaroBa
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...humberto espejo
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxJairReyna1
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 

Último (20)

Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
 
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónEstacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundial
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptx
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptx
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 

Introducción a Programa-me - Concurso español de programacion

  • 2. Mi nombre es José Ráez. He hecho esta presentación para ayudar y animar a otros estudiantes y centros a participar. Nuestro equipo, RuralHome The Nightmare, formado junto a Raúl Ortiz y Rubén Fernández, fue campeón de la fase regional y final nacional de 2017. Actualmente soy programador Back-End en C# y Java.
  • 3. Es un concurso de programación español para alumnos de Formación Profesional de 1º y 2º. Los alumnos participan en grupos de 3. Se divide en dos fases: una fase regional dividida en varias competiciones por regiones, y una fase nacional donde van los primeros puestos de las fases regionales. Participar es totalmente gratis y bastante divertido. Puedes visitar la página principal del concurso en http://www.programa-me.com o en twitter @programame ¿Qué es Programa-me?
  • 4. Además, participar tiene ventajas ● El formato del concurso es similar a las entrevistas técnicas que hacen las compañías. ○ Conocer cómo afrontarlas os dará una gran ventaja durante la entrevista. ○ Es incluso recomendable echar un ojo a los problemas como práctica para afrontar una próxima entrevista. ● Es una gran incorporación a vuestro currículum. ○ Solamente por participar ya os diferenciais de otros alumnos. ○ Lograr buenas posiciones os servirá para entrar en la mira de empresas. ● Viviréis una experiencia de trabajo en equipo real. ○ Tendréis que aprender a repartir, priorizar y resolver en entornos de tiempo limitado.
  • 6. Acepta el reto www.aceptaelreto.com En el encontrarás todo tipo de problemas divididos por materia y dificultad, así como los problemas de otras ediciones. Aquí podrás prepararte para el concurso. Concursos de calentamiento www.programa-me.com Así mismo, suelen hacerse ediciones de calentamiento alrededor de navidad. Contacta con los organizadores para conocer que se está organizando ese año. Calentamiento Navidad 2016: www.aceptaelreto.com/problems/categories.php?cat=98 También podéis probar en Las 12 Uvas: http://www.las12uvas.es/2017/#/quees
  • 8. ● Para buscar nuevos problemas, recomiendo buscar por Categorías > Programación ● No hace falta seguir el orden propuesto, los problemas no están por orden de dificultad. ● Al principio céntrate en pensar cómo resolverías los problemas con tus compañeros. ○ Según se acerque el concurso, intenta programarlos y subirlos a la web para coger soltura y acostumbrarte a posibles fallos.
  • 10. En esta sección hablaremos sobre el funcionamiento de los problemas de Acepta el reto y Programa-me, para evitar tener dudas con cómo entran los datos y poder centrarnos en buscar la solución.
  • 11. Entrada y salida de datos ● La entrada siempre va por el flujo estándar y la salida siempre va por la salida estándar. La entrada y la salida además tienen que ir ser una linea (C y C++: carácter 'n', Java: println o carácter 'n') ● ¡La salida no tiene que salir después de toda la entrada! De hecho, debéis escribir la solución después de cada línea/problema. ● Alumnos de 1º: Aunque no se pueden incluir librerías, se les puede proveer un fichero con métodos leerLinea y escribir para que no tengan que enfrentarse a I/O o flujos.
  • 13. Consejos: ● Java: Usad split para separar los datos. C y C++: Cread una función que simule split con strtok (necesitareis memoria dinámica). ○ Es SUPER ÚTIL para poder luego iterar sobre los datos rápidamente. ○ No convirtáis los datos a sus tipos reales hasta que los uséis para operar. ○ C y C++: También podéis usar scanf() ● Si tenéis una frase o dibujo formado por varias líneas, recordad que podéis iterar por un string como si de un array se tratase. (También en números para ir cifra por cifra) ● Así mismo, recordad que cuando busquéis un valor en concreto, basta con poner la cadena que lo generaría (por ejemplo, si la fecha 25/11 entra como "25 11" podéis mirar directamente si es igual, no hace falta que saquéis los dos números). ● Por último: ¡no hace falta que verifiqueis que los datos son válidos! Siempre obedecerán el formato presentado.
  • 14. Además, los problemas irán introduciendo los datos generalmente de una de estas 3 formas:
  • 15. Estructuras de datos ● Conocimientos de manejos de arrays y strings es más que suficiente para afrontar las pruebas con garantías. Conocimiento de listas y diccionarios puede dar ventaja pero no es necesario. ● Matrices: practicar el patrón de "pintado". Recursiva que recorre todas las celdas disponibles. ● ¡Cuidado al ordenar números como strings! ● Problemas de ordenamiento pueden ser bastante fáciles o difíciles. Ante la duda, dejadlos para el final.
  • 16. ¿Cómo funciona el concurso?
  • 17. Puntuación ● Tu puntuación es tus problemas resueltos. Para desempatar, el tiempo hasta la resolución con penalizaciones. ● Al tiempo se suma el minuto en que has resuelto el problema y minutos extra de penalización por intento para resolverlo (los fallos en problemas sin resolver no cuentan). Siempre aparece Intentos/Tiempo total. ● Esta es una razón por la que es super importante localizar y resolver los problemas fáciles rápido. ○ Equipo 1 y 2: 3 problemas resueltos en el minuto 30 sin fallos. ○ Equipo 1: 3 | 40 -- Primero P1: minuto 2, P2: minuto 8, P3: minuto 30. 2 + 8 + 30 = 40. ○ Equipo 2: 3 | 70 -- Resolvió primero el P3 en el minuto 22. Luego resolvió el P1 en el minuto 23 y luego el P2 en el minuto 25. Pese a tardar solo 1 y 3 minutos en P1 y P2, al resolverlos más tarde tienen peor puntuación.
  • 18. Unas notas finales: ● Durante el concurso es mucho más importante ser corto a la hora de escribir que claro, y poder reusar todo el código que sea posible. ○ Códigos de lectura/escritura, iteración, transformación... contra más generales mejor, para poder copiarlos de problema en problema. ● C y C++ disponen de un código más escueto y tiempos de ejecución más rápidos Java en el JDK tiene muchísimas utilidades. ¡Conoce bien las ventajas de tu lenguaje! ● Duerme bien la noche antes del concurso. ● Os podéis llevar hojas al concurso con código o notas que os puedan servir de utilidad. También tenéis disponible las APIs de C++ y Java. ● ¡Pasadlo bien!
  • 19. ¿Te has quedado con más ganas?
  • 20. Otros concursos: Para seguir poniéndote a prueba. Las 12 Uvas (Diciembre) http://www.las12uvas.es Google Hash Code (Marzo) https://hashcode.withgoogle.com Tuenti Challenge (Abril) https://contest.tuenti.net Everis Codefest (Noviembre) http://codefest.everis.com
  • 21. Webs internacionales: Profundiza en algoritmia. Recruiting internacional. LeetCode - https://leetcode.com/ Ideal para practicar y aprender algoritmia. Sus problemas y foros vienen con guías para su resolución o con soluciones alternativas. HackerRank- https://hackerrank.com Sitio con competiciones y reclutamiento internacional. Ideal para probar competiciones avanzadas y destacar a nivel técnico (tiene su propia clasificación).
  • 22. Despedida y contacto Muchas gracias por llegar hasta aquí, y espero que os haya animado a participar y/u os haya ayudado. Si tenéis alguna duda o queréis dejarme un saludo, podéis encontrarme en: -Twitter: @joshiraez -E-mail: contacto@joseraez.com -LinkedIn: http://joseraez.com
  • 23. Agradecimientos Quería aprovechar para dar mis agradecimientos a: Nuria Fuentes, nuestra entrenadora y profesora de programación. Por introducirnos al concurso y apoyarnos durante todo el camino, además de ser una magnífica profesora y persona. A Manuel, Jesús, Raúl y Rubén, mis compañeros de equipo Por todo el esfuerzo y los buenos momentos en el camino a la fase nacional de las ediciones 2016 y 2017 de Programa-me.