Informática

Informática

La OLIMPIADA CIENTÍFICA BOLIVIANA te invita a participar en la OLIMPIADA DE INFORMÁTICA A NIVEL NACIONAL

OBJETIVOS

• Promover, descubrir, estimular y desafiar a los estudiantes en la Informática
• Estimular y apoyar la participación en actividades relacionadas con Olimpíadas Informática, entre los participantes.

PARTICIPANTES

La competencia consta de 6 niveles correspondientes a los cursos de secundaria de las Unidades Educativas Fiscales, Privadas y de Convenio de todo el país.

LA PRUEBA

La Olimpiada se realizará en tres fases, ambas de carácter virtual. Los temas detallados por cada fase están en la página de contenidos.

LAS INSCRIPCIONES

Las inscripciones serán gratuitas. Los estudiantes deben seguir los siguientes pasos:
• Registrar sus datos en el formulario
• Si aún no tiene un cuenta en http://jv.umsa.bo crear una cuenta para participar en la competencia.
• El material de estudio se encuentra en la clase: https://classroom.google.com/c/MTkzODI1ODMxMzcz?cjc=vdnvwnc

CONTENIDO PRUEBA

Nivel 2: Programacion Basica

Este nivel es orientado a estudiantes de hasta Estudiantes de primero a cuarto de secundaria que tengan conocimiento de programación básica en uno de los siguientes lenguajes C/C++ , Java o Python. Los IDE recomendados son CodeBlocks, Eclipse y Pycharm. (edad máxima 15 años), los estudiantes de Cuarto y Quinto de Secundaria solo pueden participar del Nivel 2 o Nivel 3.

Los estudiantes recibirán una prueba con 3 problemas y un conjunto de datos de entrada y su salida respectiva, ademas de otro conjunto de datos de entrada sin salida que servirán para la evaluación por parte de los jueces de la olimpiada.

Los interesados en participar en esta categoria deben leer la convocatoria e inscribirse segun instrucciones alli publicadas.

En todas las etapas deberán programar sus soluciones en lenguaje C/C++ , Java o Python.

Primera y Segunda etapa:
• Resolución de problemas
• Problemas lógicos
• Aritmética
• Definición de datos
• Tipos de datos
• Constantes y Variables
• Construcción de algoritmos
• Expresiones y asignaciones
• Entrada y salida
• Estructuras de control condicionales
• Estructuras de control iterativas
• Codificación de algoritmos en los lenguajes permitidos
• Sintaxis básica y semántica
• Estructuras de control
• Condicionales: if-then-else, switch
• Iteración: for, while, do-while
• Entrada y salida de datos.
• Manejo de Series: aritméticas, geométricas, especiales
• Operaciones con números: Descomposición de números, Máximo Común Divisor (MCD), Mìnimo Común Múltiplo (mcm), factorial.
Divisibilidad
• Números Primos: identificar un número primo
• Aritmética Modular

Tercera Etapa:
• Estrategia de descomposición funcional (uso de funciones)
• Construcción de Funciones y paso de parámetros
• Estructuras de datos estáticas:
• Cadenas: funciones básicas con cadenas, concatenación, subcadenas
• Vectores (Arreglos): recorridos, impresión
• Matrices (Arreglos bidimensionales): recorridos, impresión
• Búsquedas: búsqueda de caracteres en cadenas , búsqueda de subcadenas en cadenas, búsqueda binaria
• Métodos de ordenación simples: por inserción, por selección divide y vencerás, ejemplo: búsqueda binaria.

Nivel 3: Programacion Intermedia

Este nivel es orientado a estudiantes de hasta sexto de Secundaria (osea desde primero a sexto de Secundaria), los estudiantes de Sexto de Secundaria solo pueden participar del nivel 3. Deberán programar sus soluciones en uno de los siguientes lenguajes C/C++ , Java o Python. Los IDE recomendados son CodeBlocks, Eclipse y Pycharm.

Los estudiantes recibirán una prueba con 3 problemas y un conjunto de datos de entrada y su salida respectiva, ademas de otro conjunto de datos de entrada sin salida que servirán para la evaluación por parte de los jueces de la olimpiada.

Los interesados en participar en esta categoria deben leer la convocatoria e inscribirse de acuerdo a las instrucciones alli publicadas.

Primera y Segunda etapa

Deberán programar sus soluciones en uno de los siguientes lenguajes C/C++ , Java o Python.
• Resolución de problemas
• Problemas lógicos
• Aritmética
• Álgebra
• Definición de dato
• Tipos de datos
• Constantes y Variables
• Construcción de algoritmos
• Expresiones y asignaciones
• Entrada y salida
• Estructuras de control condicionales
• Estructuras de control iterativas
• Codificación de algoritmos en los lenguajes permitidos
• Sintaxis básica y semántica
• Entrada y salida de datos
• Estructuras de control
• Condicionales: if-then-else, switch
• Iteración: for, while, do-while
• Manejo de Series: aritméticas, geométricas, especiales
• Operaciones con números: Descomposición de números, Máximo Común Divisor (MCD), Mínimo Común Múltiplo (mcm), factorial.
• Números Primos: identificar un número primo
• Estrategia “descomposición funcional” (uso de funciones)
• Construcción de Funciones y paso de parámetros
• Estructuras de datos estáticas:
• Cadenas: funciones básicas con cadenas, concatenación, subcadenas
• Vectores (Arreglos): recorridos, impresión
• Matrices (Arreglos bidimensionales): recorridos, impresión
• búsquedas: búsqueda de caracteres en cadenas , búsqueda de subcadenas en
cadenas
• Métodos ordenación simples: por inserción, por selección
• Construcción de Tipos de Datos Abstractos. Por ejemplo estructuras estáticas
(struct en C++), objetos.
• Estructuras de datos dinámicas lineales:
• Vector
• Pila
• Cola
• Manejo de estructuras con bibliotecas de los lenguajes permitidos
• Operaciones de bits: not, and, or, xor, left shift, right shift
• Teoría de números: factores primos, criba de Eratóstenes.
• Búsqueda de patrones en cadenas
• Combinatoria: permutaciones, combinaciones, coeficiente binomial
• Teoría de grafos: Representación de un grafo con listas de adyacencia,
• Recorrido por amplitud (BFS), Recorrido por profundidad (DFS)

Tercera Etapa:

• Estructuras de datos dinámicas no lineales:
• Cola de prioridad
• Set
• Map
• Manejo de estructuras con bibliotecas en los lenguajes permitidos
• Geometría básica: punto, línea, segmento de línea, ángulo, triángulo,
• rectángulo, cuadrado, círculo, vector, coordenadas en el plano.
• Métodos de ordenación eficientes: Mezcla (merge sort), Montículo (Heapsort),
• rápido (quicksort).
• Aritmetica modular: suma, resta, multiplicación
• Estrategias de resolución de problemas (Divide y vencerás, Algoritmos
• voraces, Programación Dinámica).
• Backtracking
• Búsquedas: binaria, búsqueda exahustiva
• Segment tree
• Union Find
• Algoritmos de grafos
• Dijkstra
• Tarjan (puntos de articulacion y puentes)
• Floyd – Warshall
• Kruskal
• Mascara de bits. Por ejemplo: problema del viajero (tsp problem)