[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Олимпиадное программирование ->Методика подготовки к IOI 2007 - ... 1, 2, 3, 4, 5, 6, 7
Автор Сообщение
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
Foreword

.. reintroducing the requirement of mixed gender for complete teams, as a way of encouraging countries to put in place programs promoting gender balance, can be considered.
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
libinteractive: A Better Way to Write Interactive Tasks
Luis Hector CHAVEZ

Estado de Mexico
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
Organising National Olympiads in Informatics: a Review of Selection Processes, Trainings and Promotion Activities

Sebastien COMBEFIS, Alexis PAQUES
Electronics and IT Unit, Ecole Centrale des Arts et Metiers (ECAM), Belgium
Computer Science and IT in Education ASBL, Belgium
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
Methodology for Characterization of Cognitive Activities when Solving Programming Problems of an Algorithmic Nature

Gilberto CUBA-RICARDO, Maria T. SERRANO-RODRIGUEZ,
P. Alberto LEYVA-FIGUEREDO, Laura L. MENDOZA-TAULER
Jose de la Luz
Caballero University of Pedagogical Science of Holguin. Cuba
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
Efficient Range Minimum Queries using Binary Indexed Trees

Mircea DIMA, Rodica CETERCHI
University of Bucharest, Faculty of Mathematics and Computer Science
Romania
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
Towards a Better Way to Teach Dynamic Programming

Michal FORISEK
Comenius University, Bratislava, Slovakia

1. Implement a recursive algorithm that examines all possible solutions.
2. Use the algorithm to discover a recursive relation between various subproblems of the given problem.
3. Add memoization to improve the time complexity, often substantially.
4. Optionally, convert the solution into an iterative bottom-up solution.

Lesson 1: Fibonacci numbers
Lesson 2: Memoization
Lesson 3: Fibonacci numbers revisited
Lesson 4: Maximum weighted independent set on a line
Lesson 5: An iterative solution to the previous problem
[Lesson6]: Paths in a grid
Lesson 7: Longest common subsequence
Lesson 8: Longest incresing subsequence in quadratic time

Optional follow up lessons

- Problems where the state is a substring of the input: Edit distance to a palindrome. Optimal BST.
- Problems solvable in pseudopolynomial time: Subset sum, knapsack, coin change.
- Optimalizations of the way how the recurrence is evaluated: Hirschberg’s trick for LCS in linear memory; Knuth optimization for Optimal BST; improving Longest increasing subsequence to O(n log n) by using a balanced tree to store solutions to subproblems.
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
Introducing tcframe: A Simple and Robust Test Cases Generation Framework

Ashar FUADI
Indonesia Computing Olympiad
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
Metamorphic Testing and DSL for Test Cases & Checker Generators

Ryan Ignatius HADIWIJAYA, M. M. Inggriani LIEM
Data and Software Engineering Research,
School of Electrical Engineering and Informatics
Institut Teknologi Bandung
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
The Effectiveness of Robotics Competitions on Students’ Learning of Computer Science

Fatima KALOTI-HALLAK, Michal ARMONI,
Mordechai (Moti) BEN-ARI
Weizmann Institute of Science, Israel
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
Different Approaches for Making the Initial Selection of Talented Students in Programming Competitions

Bojan KOSTADINOV, Mile JOVANOV, Emil STANKOV,
Marija MIHOVA, Biljana RISTESKA STOJKOSKA
Faculty of Computer Science and Engineering,
University Ss. Cyril and Methodius
Macedonia
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
VisuAlgo – Visualising Data Structures and Algorithms Through Animation

Steven HALIM
School of Computing, National University of Singapore

http://visualgo.net
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
Volume 10 (2016)
Volume 10+ (2016)
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
eSeeCode: Creating a Computer Language from Teaching Experiences
Joan ALEMANY FLOS, Jacobo VILELLA VILAHUR
eSeeCode.com
Spain

It has been almost 50 years since the creation of Logo – one of the first educational programming languages. Although most people agreed that it was important to teach computational thinking to children, only recently have school and district leaders begun to adopt curricula to include it –

mainly through Scratch.
In many cases this adoption has failed to provide the right methodologies and tools to teachers.


In this paper, we analyse some of the different languages used in classrooms today and we propose an improved alternative that we have created – eSeeCode. We also share our experiences using this language in classrooms and how students can learn using this tool.

To help keep the explanation focused, we have created a list of the main languages used
in schools in Spain, and have classified them by similarity of characteristics.
The final result is shown below:

Under text-based coding we will find two separate groups: the pure educational languages such as Logo or Processing,
and the professional languages such as C++, Java, Python and Javascript.

Under visual block based coding we find again two groups:
educational languages such as Scratch, Alice, Kodu, Ev3, AppInventor,
and the group of puzzle languages such as Lightbot and Beebot.

The result of our work is eSeeCode both a language and a programming environment.

Main characteristics:

- Both visual code and formal code. You can transition from one to another.
- Both educational and professional language.
- It is problem solving oriented.
- Main academic areas cover basic and advanced algorithms, 2D geometry (turtle graphics) and numerical problems.
- Has a debugger, and includes simple syntax errors handling.

Four different programming levels:
from a pure graphical click-and-run interface to a pure text syntax highlighting editor,
with two middle interfaces.

- Touch view (age 5-8)- student clicks one instruction the environment executes it directly
- Drag view - icons as instructions but the student can move them freely once placed in the coding area
- Build view - blocks can be displaced around the code area freely. However these blocks don’t include icons, just the name of the instructions and the arguments
- Code view - students can type their own code

We created eSeeCode based on JavaScript (although this base is well hidden), so after mastering in the programming in Code view the students can program freely using this well-known programming language. The platform accepts and executes any JavaScript program allowing for a deeper learning. A side advantage to the use of JavaScript is the fact that it is not required to be installed to function, as it will work with any browser.

We have released eSeeCode as an open source project
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
Learning Programming through Games and Contests: Overview, Characterisation and Discussion
Sebastien COMBEFIS, Gytautas BERESNEVICIUS, Valentina DAGIENE
Belgium, Lithuania


Colleges and universities routinely report that almost half of those students who initially choose
computer science study soon decide to abandon it.
Михаил Долинский

Темы: 1984
Сообщений: 47243

Мой профиль
The Place of the Dynamic Programming Concept in the Progression of Contestants’ Thinking
Agnes ERDOSNE NEMETH, Laszlo ZSAKO
Hungary

The dynamic programming name came from Bellmann in the 1950’s (Dreyfus, 2002). He wanted to find a name for the multistage decision making process, in which the general case is very hard to solve thus one must use the divide & conquer concept. It leads back to special cases, when the solution is expressed more easily – not in terms of the unknown function, but in terms of an action or decision. If we want to speak about dynamic programming, we also have to examine other corresponding concepts, like recursion, memoization and divide & conquer.

When we are experienced enough to implement a recursive approach correctly, there is a special technique for dramatically reducing the runtimes of certain algorithms from exponential to polynomial or from factorial to exponential, at the expense of higher memory usage. This is done by solving sub-problems and storing the results using a dynamic programming concept. The concept is about a recursive function, but the implementation is to build the values from bottom up without calling the recursive
step repeatedly.

The simplest type of dynamic programming is when an array is filled – namely a table – cell-by-cell in a predetermined order, implementing the recursive function from bottom up. We will call it a basic DP.
 
Индекс форума ->Олимпиадное программирование ->Методика подготовки к IOI 2007 - ... 1, 2, 3, 4, 5, 6, 7
Time:0,047