Nesta sessão estarão disponibilizados notas de aulas relacionadas à disciplina Lógica de Programação e Algoritmos.
Para o bom aproveitamente da disciplina serão utilizadas 4 referências bibliográficas principais:
A disciplina Lógica de programação independe de linguagem para ser aprendida. Por isso existem diversas formas de se representar algoritmos. Contudo unir o conhecimento teórico ao prático através de uma linguagem de programação facilita o desenvolvimento do raciocínio lógico e permite uma melhor fixação do conhecimento adquirido.
Há uma discussão em torno de qual a melhor linguagem para se aprender a programar.
Muitas pessoas argumentam que algumas linguagens como Java ou C possuem mais demanda no mercado de trabalho e são mais poderosas em alguns aspectos. Como provavelmente os alunos deverão ter que aprender uma das duas linguagens para atuar no mercado de trabalho as recomendam por acreditar, principalmente, que ganha-se tempo.
Eu, particularmente, discordo de que essa é a melhor abordagem. Embora seja uma verdade que as linguagens C e Java são mais utilizadas no mercado e no meio acadêmico, ambas possuem uma curva de aprendizado maior do que a linguagem Pascal. Essa maior curva de aprendizado pode atuar de forma negativa, desestimulando o aluno e fazendo-o perder o interesse pela disciplina.
Acredito que a linguagem Pascal é ideal para se aprender a programar de forma estruturada por possuir uma boa legibilidade e uma proximidade muito grande com uma descrição narrativa estruturada.
Embora acredite que a linguagem Pascal é a melhor escolha para quem está começando, os exemplos que forem disponibilizados em Pascal também serão disponibilizados na linguagem C para que aqueles que queiram se aventurar tenham mais uma opção de escolha.
Para iniciar o aprendizado da linguagem pascal eu recomendo a IDE com compilador integrado PascalZim que foi desenvolvido na Universidade de Brasilia e pode ser obtido em http://pascalzim.tripod.com/Download.htm
Como o PascalZim foi concebido com fins didáticos não oferece suporte todos os recursos da linguagem Pascal e, após algumas semanas de uso e familizarização com o básico da linguagem eu recomendo que aluno passe a utilizar um compilador com total suporte à linguagem pascal.
Existem diversos compiladores de pascal como Dev-Pascal, Borland Turbo Pascal, GNU Pascal, Virtual Pascal, Delphi, etc. alguns foram descontinuados e outros são pagos. Eu recomendo o compilador livre FreePascal em conjunto com a IDE (Integrated Develpment Enviroment) o Lazarus. O Lazarus já inclui o compilador FreePascal e pode ser obtido em http://www.lazarus.freepascal.org/. O FreePascal pode ser obtido individualmente em www.freepascal.org
O Lazarus é uma IDE - Integrated Develpment Enviroment muito boa que trabalha de forma integrada ao Free Pascal. Pode ser obtido em http://www.lazarus.freepascal.org/
Aula 01 - Apresentação de conceitos relacionados à lógica de programação [Dowload, Publicado em 15/03/2010]
Esta aula objetiva apresentar os seguintes conceitos: lógica, sequência ou sucessão, sequência lógica, instrução, algoritmo, linguagem de programação, programa de computador e lógica de programação.
Aula 02 - Técnicas para solução de problemas e Algoritmos. [Dowload, Publicado em 19/03/2010]
Esta aula objetivo apresentar técnicas para solução de problemas: método cartesiano, tabela de decisão, árvore de decisão, planejamento reverso.
Também serão apresentados os passos necessários à criação de um algoritmo.
Aula 03 - Formas para representação de algoritmos. [Dowload, Publicado em 25/03/2010]
Esta aula objetiva apresentar as técnicas mais comuns para representação de algoritmos entre as quais incluem: Descrição narrativa, Fluxograma convencional, Diagrama de Chapin e Pseudo-código.
Aula 04 - Estruturas de dados e Estruturas de controle. [Dowload, Publicado em 25/03/2010]
Esta aula objetiva apresentar estruturas de dados (primitivas e derivadas), expressões (aritméticas e lógicas) e conceitos relacionados como operadores, variáveis, constantes, identificadores e outros.
Adicionalmente são apresentadas as estruturas de controle sequenciação, repetição e decisão utilizando fluxogramas e as linguagens Pascal e C.