24 de ago. de 2008

Aula 01: Conceitos Introdutórios

Mantando o primeiro leão!

Quer ser um profissional de TI, um programador ou analista de sistemas? Bem, como será nosso futuro? O que existe de novidades por aí? Quais são as perspectivas?

Muita gente novata diz: "Pô, eu quero é criar jogos, programar jogos". Então, leia isso!

Vamos começar lendo esse artigo que escrevi em 2006? Para você ter uma noção, o Heliodisplay ou holograma, já é uma realidade... o que virá depois? Você irá notar que, para construir esse futuro, precisamos programar... então, mãos à obra!

Usei e abusei de sites como Wikipedia, Google, entre outros durante a elaboração das aulas. Os links provam isso e estão aí para vocês aprofundarem seus conhecimentos.

O que eu preciso saber a mais para começar a programar?
Bem, vamos começar com um pouco de história, vamos avançar conhecendo a arquitetura e organização dos computadores, o sistema operacional e alguns programas básicos.

Após ler e conhecer um pouco sobre a história da Ciência da Computação, evolução dos sistemas computacionais e saber mais profundamente sobre a Arquitetura de Computadores e Sistemas Operacionais, podemos entender o processo lógico na construção de programas: como formulamos nosso pensamento e como resolvemos problemas computacionais de maneira sistemática, buscando sempre a melhor solução.

Aqui vai mais alguns links que você deverá ler e estudar:
- Mais sobre sistemas operacionais
- O que é Software Livre
- História do UNIX
- Mais sobre o UNIX
- O que é o Linux
- Timeline do Linux
- Timeline gráfico do Linux
- Timeline do Windows
- Timeline das linguagens de programação

Agora, tire um tempinho para ler esse artigo sobre o sistema operacional Linux.

Vamos à algumas definições:

O que é a Lógica?
Lógica é uma palavra de origem grega logos, que significa palavra, pensamento, idéia, argumento, relato, razão.

O que é Programação?
Programação é o processo de escrita de programas de computador, através de uma linguagem de programação.

O que é Linguagem de Programação?
Uma linguagem é a definição de regras, sintaxes e semânticas próprias para ser legível e entendida por pessoas que dominam aquela linguagem. Uma linguagem de programação ou linguagem computacional é uma língua específica para ser entendida por compiladores, interpretadores ou montadores (vai depender da linguagem) e ser executada por algum equipamento computacional.
Algumas linguagens de programação mais usadas para o aprendizado de programação de computadores são: Pascal e C. Nosso foco será a linguagem C.

Leia aqui uma introdução a origem da linguagem C.

Veja através deste mapa a evolução das linguagens de programação. Além disso, você pode ler uma lista do Google, do Wikipedia ou do Scriptol com todas as linguagens de programação.

Leia também esse artigo interessante publicado na seção de tecnologia da Yahoo! O legal é que o autor faz um paralelo com o mundo real, além da forma divertida de abordar o assunto. De brinde, você encontrará o mapa mundi das linguagens e seus criadores.




O que é Algoritmo?
A Programação de Computadores consiste em traduzir um algoritmo (programa abstrato) em um programa de computador (software).
O algoritmo nada mais é que um passo-a-passo ou receita de bolo. É um conjunto de instruções finitas, ordenadas logicamente, descritas em pseudo-cógido, também chamado de portugol ou português estruturado, para a resolução de um problema (resolver uma tarefa específica).

O que é Fluxograma e Diagrama de Bloco?
O diagrama de bloco é uma representação gráfica de um processo ou sistema.
O fluxograma é um tipo de diagrama de bloco e serve como representação gráfica de um algoritmo. Através do fluxograma vemos claramente o fluxo das instruções executadas, melhorando o entendimento e facilitando a aprendizagem.

Olha só o exemplo:



Dá uma olhadinha nesse link e aprenda mais sobre fluxogramas. Você verá que os fluxogramas são usados para diversas aplicações.

Quais são os softwares básicos na construção de programas de computador?
Leia as definições deles:
- Montador
- Linguagem de montagem
- Compilador/Compiler
- Interpretador
- Ligador/Linker
- Depurador/Debugger

Eis aqui uma figura para você entender melhor o papel de alguns desses utilitários, neste caso, o compilador:



Agora, um exemplo do funcionamento de um interpretador:



Não deixe de entrar nos links e estudar os temas acima para facilitar melhor seu entendimento, principalmente se você é um iniciante. Vou comentar aqui os principais arquivos criados na programação de computadores. São eles:

- Arquivo executável: é um arquivo que possui a linguagem binária como código interno. É um arquivo pronto para ser executado pelo processador. Por estar pronto para entrar em funcionamento, ele necessita que o processador e o sistema operacional sejam do mesmo tipo pelo qual ele foi compilado, portanto este tipo de programa perde sua portabilidade, entretanto ganha em rapidez de execução.

- Arquivo fonte: o código fonte é aquele que você escreveu em alguma linguagem de programação interpretada. O arquivo fonte pode ser compilado ou interpretado, dependendo da linguagem de programação em que foi escrito.

- Arquivo objeto: o código objeto é um arquivo compilado, mas para ser executado, necessita antes que o ligador ligue as bibliotecas necessárias e assim gerar o executável propriamente dito.

Ok, mas como faço para programar um computador?
Primeiro você precisará de um compilador/interpretador. Você já sabe o que é isto, né? Depois, você precisará de um editor de código, semelhante a um editor de textos para escrever seus programas usando a linguagem de programação que o seu compilador/interpretador conhece.

Ferramentas para Programação:
As ferramentas CASE (do inglês Computer-Aided Software Engineering) auxiliam as atividades de engenharia de software desde a análise de requisitos e modelagem até programação e testes. Os ambientes de desenvolvimento integrado (IDEs) têm maior destaque e suportam todos ou quase todos os programas básicos na construção de sistemas completos de software.

Bem, se você chegou até aqui, entrou nos links sugeridos, leu e estudou... agora é hora de procurar uma linguagem de programação que lhe agrade e iniciar seus estudos.
Pra isso devemos entender que existem formas de se programar e que existem linguagens de programação específicas para cada tipo de paradigma. Eis então uma lista dos principais paradigmas de programação:
- Paradigma funcional
- Paradigma estruturado ou procedural
- Paradigma orientado a objetos
- Paradigma orientado a eventos
- Paradigma orientado a aspecto

Por fim, entenda que, apesar de muito nova, a Engenharia de Software procura definir processos para a boa prática no desenvolvimento de sistemas computacionais. Existem organizações interessadas que estudam as linguagens de programação, bem como o hardware necessário na criação de software, criando padrões e fazendo divisões, classificações, etc.

Eis algumas dessas organizações e padrões:
- Instituto de Engenheiros Eletricistas e Eletrônicos ou IEEE
- Associação para Maquinaria da Computação ou ACM
- MPS.BR

Leie também o artigo sobre o Mercado de Desenvolvimento para Web, pois, hoje, tudo é WEB!

Bem, isto é só o começo! Semana que vem, introduziremos os primeiros algoritmos sequenciais e alguns conceitos da linguagem C. Bons estudos!

Aproveite seu tempo agora para brincar. Aqui está alguns jogos de lógica para você se exercitar.

Agora, se você não viu graça nenhuma nisso tudo e ainda chegou até aqui, na esperança de ver algo mais avançado... e o "galo já tá cantando" e você é louco de pedra, um geek de plantão ou mesmo um nerd que lê tudo e procura aprender sempre mais... que tal construir seu próprio compilador? Mas se você é apenas um iniciante (newbie), deixe isso pra depois :-)

Retornar ao índice do curso.
Avançar à próxima aula.

Um comentário:

Ezequiel da Silva Daniel disse...

bom conceitos iniciais...