Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes
Sumário
Sumário
1 Conceitos Fundamentais
Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes
Conceitos Fundamentais
Conceitos Fundamentais
Maratona de Programação (ACM ICPC - International
Collegiate Programming Contest): Um playground para explorar a inteligência dos programadores Iniciantes: tente encontrar primeiro os problemas mais fáceis e resolvê-los no tempo mais curto possível. Tente gastar menos tempo com a codificação e mais tempo pensando no algoritmo de solução e na depuração.
“Bons programadores gastam 10% do tempo com a
codificação, 45% do tempo pensando na solução e 45% do tempo com a depuração do programa.´´
Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes
Conceitos Fundamentais
Linguagens de Programação e Depuração
Inicialmente, tente aprender apenas uma linguagem de
programação profundamente. Somente após dominar uma linguagem razoavelmente bem, tente explorar as outras linguagens permitidas. Esta abordagem reduz o tempo necessário para a escrita dos problemas e para a depuração dos códigos. Com o tempo, tente escolher a linguagem mais adequada para resolver cada problema específico.
Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes
Conceitos Fundamentais
Evite Erros de Compilação
Muitos iniciantes gastam bastante tempo enviando submissões que não compilam na máquina do juiz. As principais causas, geralmente são: 1 usar funções que não estão definidas no padrão da linguagem 2 tentativa de manipular os arquivos de entrada e saída diretamente dentro do programa. A saída deve ser lida/escrita diretamente para o console através das funções/objetos padrão da linguagem. 3 uso de bibliotecas que não estão no padrão das linguagens permitidas (Ex: conio.h) 4 utilização de pacotes (packages) na linguagem java, que geralmente provocam erros quando compilados na máquina dos juizes 5 certifique-se de que está enviando a solução certa para o problema correto, pois os sistemas de submissão consideram estas submissões como erros, e os juizes também. Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes Conceitos Fundamentais
Esqueça a eficiência (a menos que seja necessário)
Muitos problemas em torneios são especificamente
projetados para medir a capacidade do concorrente em construir códigos eficientes e rápidos, mas muitos pedem apenas qualquer solução. Inicialmente, concentre-se em encontrar uma solução para o problema (qualquer solução) e submeta. Se a solução estourar o tempo determinado, tente otimizar o código para reduzir o tempo de execução.
Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes
Conceitos Fundamentais
Tenha na cabeça (ou em mãos) vários tipos de
algorimos
Muitos problemas só podem ser resolvidos pela aplicação
de vários algoritmos clássicos combinados, ou através de variações efetuadas nestes algoritmos clássicos. É importante tê-los disponíveis. Prefira inicialmente os algoritmos mais simples para resolver os problemas, ainda que estes não sejam os mais eficientes. O torneio não leva em conta elegância nem eficiência (a não ser em alguns problemas específicos).
Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes
Conceitos Fundamentais
Faça uma programação simples
Evite o uso dos operadores “++´´ e “–´´ dentro de
expressões ou de chamadas de funções. Evite expressões da forma *p++. Evite o uso da aritmética de ponteiros Use p[5] em vez de (p+5). Evite abusar do operador ternário. Utilize sempre nomes descritivos para suas variáveis.
Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes
Conceitos Fundamentais
Finalmente
Não se pode ensinar a resolver problemas. Só se aprende
a resolvê-los tentando. Aprender uma linguagem de programação requer prática constante. Para ser um bom programador é preciso gostar de programar. Uma boa bagagem matemática é fundamental. Persistência e determinação são imprescindíveis.
Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes