Tópicos Especiais em Linguagem
de Programação III
Programação Visual Orientada a Eventos
com aplicações gráficas e em Inteligência
Artificial
Apresentação da Disciplina
1
Ementa
Apresentação da disciplina
Histórico das linguagens de
programação
Programação Visual
Orientada a Eventos
Visual Basic – Linguagem
Prática com VB
C++ Builder
Prática com C++ Builder
Delphi e Object Pascal
Prática com Delphi
Busca, Redes Semânticas
Lógica Fuzzy, Redes
Neurais, Agentes
Aplicações gráficas –
OpenGL
VBA


VBA com Excel
VBA com Word e
PowerPoint
Prática em Laboratório
Calendário
Formalização da Ementa
2
Motivação para a Disciplina
Linguagens de Programação são difíceis
Linguagens de Programação permanecem pequeno tempo
“em moda”
O número de Linguagens de Programação existentes é
gigantesco e vai continuar a crescer
Freqüentemente a carreira nos obriga a parar de programar
por algum intervalo de tempo (às vezes para sempre)
Parando de programar nossa habilidade de programação
encolhe (às vezes desaparece)
Existem enormes quantidades de programas disponíveis,
porém em diversas Linguagens de Programação e não
compatíveis uns com outros
3
Motivação para a Disciplina (cont.)
Profissionais de Ciências Exatas precisam
programas computadores
Protótipos são fundamentais
4
Constatação
Diretores, Gerentes, Chefes e Professores
tendem a perder a capacidade de programar
e tornam-se dependentes de terceiros para
se comunicar usando computadores
5
Tipos de programadores
Programadores tradicionais que sabem tudo ou
quase tudo de determinada Linguagem de
Programação
Programadores de microcomputadores que não
sabem programar Sistemas mas sabem tudo, ou
quase tudo, de uso de aplicativos, instalações,
telas, opções, etc.
Programadores incompetentes
Programadores que conseguem resolver problemas
pessoais e empresariais
6
Tipos de programas
Sistemas com longa vida útil sendo desenvolvidos
durante largos períodos de tempo



Sistemas de Tratamento da Informação
Sistemas de Cálculo
Outros
Sistemas de apoio à decisão com pequena vida útil,
sendo úteis para um momento específico e, portanto,
tendo de ser desenvolvidos em curtíssimo período de
tempo
7
Sistemas de Tratamento da Informação
Geralmente são entendidos por todos, não
havendo complexidade na definição do
problema ou solução
As dificuldades são:
Captura das especificações
 Interação com o usuário
 Gerenciamento da Informação

8
Sistemas de Cálculo
Geralmente não apresentam complexidade na
interação com o usuário ou no gerenciamento da
informação
As dificuldades são:



Captura das natureza do problema a resolver
Obtenção do conhecimento técnico para a solução
(geralmente englobando conhecimentos matemáticos,
físicos, químicos, estatísticos, de cálculo numérico,
etc.)
Implementação
de
uma
solução
a
custos
computacionais razoáveis
9
Sistemas de apoio à decisão
Sistemas de Apoio à Decisão (“Decision
Support Systems – DSS”) são uma classe
específica
de
sistemas
de
informação
computadorizada que apóia atividades de
tomada de decisão em negócios e organização
Com eles os tomadores de decisão obtém
informação útil dos dados brutos, documentos,
conhecimento pessoal e/ou modelos de
negócios para identificar e resolver problemas
e tomar decisões
10
Sistemas de apoio à decisão (cont.)
As informações típicas que uma aplicação de apoio à
decisão pode obter e apresentar são:
Acesso ao patrimônio de informações da organização,
incluindo fontes de dados herdadas de antigas
aplicações, fontes de dados relacionais, cubos, data
warehouses e data marts.
Medidas de desempenho (vendas, produção, retrabalho) entre um período de tempo e o próximo.
Projeções de resultados financeiros baseadas em
projeções de produção e/ou vendas.
Conseqüências de diferentes alternativas de decisão, a
partir da experiência em ambientes o contextos tais
como o em tela.
11
Protótipos
Protótipos são ferramentas para a criação ou simulação de
programas. Estas ferramentas freqüentemente permitem a
“colagem” de programas existentes, mesmo que em diversas
linguagens de programação.
Protótipos de programas são necessários para:





Verificar a viabilidade de uma proposta ou de um Sistema pois
conhecimentos recentemente adquiridos são de difícil validação sem
testes
Comunicação com os usuários
Comunicação com a equipe de desenvolvimento de Sistemas
Comunicação empresarial
Mostrar desenvoltura, iniciativa e competência
12
Necessidade Programação e Prototipação
O desenvolvimento de Sistemas, para a maioria dos
profissionais é atividade para curto prazo em sua vida
profissional (5 a 15 anos)
A necessidade de programação é atividade para toda a vida
profissional
A necessidade programação quase sempre recai na
necessidade de geração de protótipos
Em geral profissionais constroem de 3 a 20 Sistemas em sua
vida profissional mas tem de fazer (ou mandar fazer) um
protótipo a cada 20 dias, ou seja, a cada ano da vida
profissional se faz (ou se deveria fazer) mais protótipos do
que os Sistemas feitos em toda a vida profissional
13
Desenvolvimento de Sistemas de Informações
Os protótipos servem para validar a captura das
especificações de requisitos e a interação com o
usuário
Especialistas projetam:





Arquitetura do Sistema
Modelagem
Bancos de Dados
Comunicação de Dados
Interface
O Sistema segue o ciclo de vida normal
14
Desenvolvimento de Sistemas de Cálculo
Especialistas fornecem um algoritmo para a solução do
problema
Os protótipos servem para verificar a possibilidade de se
conseguir chegar a um resultado desejado
Especialistas projetam:





Arquitetura do Sistema
Modelagem
Bancos de Dados
Comunicação de Dados
Interface
O Sistema segue o ciclo de vida normal
15
Desenvolvimento de Sistemas de Apoio à
Decisão
Os protótipos já são o resultado desejado
16
Proposta do Curso
Você pode não perder a capacidade de
programar
Você pode programar bem sem ser um
exímio programador
Conseguindo programar protótipos e utilizar
linguagens de “scripting” sua carreira pode
ter um diferencial de qualidade
17
Como fazer
Linguagens
Visuais
ampliam
extraordinariamente
o
poder
de
comunicação dos protótipos
Linguagens
Orientadas
a
Eventos
simplificam tremendamente a programação
de protótipos
Linguagens Visuais Orientadas a Eventos
serão a nossa ferramenta predileta
18
Pontos importantes
O mais importante é o seu conhecimento básico de
computadores, Sistemas e algoritmos
A linguagem de programação é bem menos importante
Você pode enfrentar qualquer linguagem de programação
porque


Existe um grande número de exemplos de código disponíveis na
Internet
A Programação Orientada a Eventos dispõe de



Completamento de código
Ajuda “on-line”
Depurador “on-line”
19
O que será estudado
Revisão das Linguagens de Programação
como um todo
A Linguagem Visual Basic por ser estranha
aos Cursos acadêmicos, além de ser a
Linguagem de automação da Microsoft e,
como tal, ser muito difundida
O uso dos produtos VB, Delphi e C++
Builder
20
O que não será estudado
A linguagem Object Pascal
A linguagem C++
21
Garantia de sucesso
Para comprovar a validade da proposta do
Curso serão desenvolvidas aplicações
consideradas extremamente difíceis:
Redes Neurais e outras
Inteligência Artificial
 Computação Gráfica Gerativa

aplicações
de
22
Em resumo
A programação de Sistemas é tarefa
complexa e nada muda daquilo que tem sido
ensinado no Curso de Ciência da
Computação
Ocorre que, mesmo em “software houses”,
a maior parte do tempo se está programando
protótipos e isto é que se pretende estudar
neste Curso.
23
Como será o desenvolvimento do Curso
Serão apresentados ambientes de programação
Será apresentado um enorme número de exemplos
de aplicações funcionando em todas as
Linguagens e ambientes de Programação
Serão cobrados seis exemplos de pequeno grau de
complexidade
Serão cobrados dois exemplos de moderado grau
de complexidade
Não haverá provas
24
Trabalhos
Os trabalhos serão individuais
Se algum grupo de alunos desejar se unir
para enfrentar um trabalho de elevado grau
de complexidade pode-se estudar esta opção
25
Duas vias
O Curso deve preparar alunos para trabalhar com
Programação Visual e geração de protótipos e
terão seu desenvolvimento aqui descrito, pela
chamada via normal.
Alunos que já dominarem as linguagens e
ambientes que serão ministradas poderão ser
aprovados por via rápida. Isto significa que
poderão entregar trabalhos especiais a qualquer
tempo. Após a entrega dos trabalhos estarão
aprovados e dispensados de presença.
26
Trabalhos da via normal
Linguagem
VB
Delphi
BCB
VBA
VBA
VBA
Qualquer
Qualquer
Descrição
Uma aplicação qualquer
A mesma aplicação de VB
A mesma aplicação de VB
Macro Excel
Macro Word
Macro PowerPoint
Aplicação em OpenGL com uso de
animação, textura e tutorial passo a passo
Uma aplicação em Inteligência Artificial
(preferencialmente com Redes Neurais)
Valor
1,0
1,0
1,0
0,4
0,3
0,3
3,0
3,0
Datas de apresentação
15/06/04, 17/06/04 e
22/06/04
01/07/04
06/07/04, 08/07/04 e
13/07/04
29/07/04, 03/08/04 e
05/08/04
27
Escolha de trabalhos
Os trabalhos deverão ser escolhidos com o
Professor para evitar superposição. Cópia de
trabalhos é permitido mas todos copiarem o
mesmo trabalho não o é
Os trabalhos em macros poderão ser por escolha
do aluno ou por sugestão do professor
A sugestão de macros está exibida a seguir. Cada
sugestão de Word pode ser aceita até por três
alunos
Cada sugestão PowerPoint pode ser aceita até por
cinco alunos
28
Sugestão de macros a apresentar
Macros do Word
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Exemplos do livro Writing Word Macros de Steven Roman
Appendix B
Appendic C
Chapter12
Chapter13
Chapter15
Chapter16
Chapter18
Chapter19
Chapter21
Do site http://www.cnr.berkeley.edu/~alyons/macros.html
Email utilities
LUIS Citation Wizard
Email Survey Processor
Do site http://www.author-it.com/docs/html/kb/html/3697.htm
AddCellFormatting
Do site http://www.chem.uky.edu/research/grossman/macro.html
Macros for Writing Papers, Proposals, or Books
Chemistry Macros
General Macros
Miscellaneous Keyboard Strokes
Macros a serem criadas
Criação de papel timbrado
Modificação dos tipos de cabeçalho (Título 1, Título 2, etc.)
Macros PowerPoint
Do site http://raw.cs.berkeley.edu/texpoint/
20 TextPoint
Do site www.unf.edu/~tcavanau/publications/necc/macros.pdf
21 Várias macros interativas
Do site http://www.funduc.com/pwrpt_sr.htm
22 Search and Replace
Do site http://oceansystems.com/dtective/upgrade.htm
23 Duas macros de imagens
Macros Excel
Livre escolha dos alunos
29
Sugestão de aplicações de Inteligência
Artificial a apresentar
Aplicações de Inteligência Artificial
Identificador Aplicação
Rede Neural BPN
51
Rede Neural ART
52
Rede Neural SOM
53
Rede Neural de Base Radial
54
Lógica Fuzzy
55
Agentes
56
“Bagging”
57
Outras
58
Número máximo de alunos
4
4
4
6
4
6
6
4
30
Trabalhos da via rápida
Alunos que já dominarem as linguagens que
serão ministradas poderão ser aprovados por
via rápida. Isto significa que poderão entregar
trabalhos especiais a qualquer tempo. Após a
entrega dos trabalhos estarão aprovados e
dispensados de presença. Os trabalhos de
via rápida serão agrupados em dois pacotes.
Pacote 1
Pacote 2
31
Pacote 1 da via rápida
Teste e descrição do conteúdo de todos os
trabalhos apresentados pelos alunos na
última
apresentação
desta
Disciplina
(segundo período de 2005)
Execução de todos os programas e
preenchimento do Banco de Dados de
programas executados
O resultado do trabalho será apresentado em
um
programa,
escrito
em
qualquer
linguagem, permitindo a recuperação de
informações por linguagem, aluno, período e
tipo de aplicação.
32
Pacote 1 da via rápida
São previstas as seguintes entidades e atributos:


Programa com Linguagem, título, tipo, descrição, recursos usados,
como usar, comentários do professor e grau;
Aluno com nome, período e grau.
O atributo tipo pode assumir os valores VB, BCB,
Delphi, Macro Excel, Macro Word, Macro
PowerPoint, Agentes, Redes Neurais, Fuzzy, Busca,
OpenGL, Outros.
O valor do trabalho, como um todo, é 10,0 não se
aceitando parte do trabalho. Este pacote poderá ser
escolhido, no máximo, por três alunos sendo que
cada qual deverá apresentar um trabalho
independente (e distinto) dos demais.
33
Pacote 2 da via rápida
Uma mesma aplicação em OpenGL com uso de
animação, textura e tutorial passo a passo feito
diversas linguagens (VB, Visual C++, Delphi,
C++ Builder) e mais três Macros (uma em Excel,
uma em Word, uma em PowerPoint)
O valor do trabalho, como um todo, é 10,0 não se
aceitando parte do trabalho
Este pacote poderá ser escolhido, no máximo, por
cinco alunos sendo que cada qual deverá
apresentar um trabalho independente (e distinto)
dos demais.
34
Calendário
Datas
Dia Ordem Assunto
31/08/2006
5
1 Apresentação da disciplina
05/09/2006
3
2 Histórico das linguagens de programação
07/09/2006
5
Independência
12/09/2006
3
3 Programação Visual Orientada a Eventos
14/09/2006
5
4 Visual Basic – Linguagem
19/09/2006
3
5 Visual Basic - Linguagem
21/09/2006
5
6 Prática com VB
26/09/2006
3
7 Prática com VB
28/09/2006
5
8 Delphi e Object Pascal
03/10/2006
3
9 C++ Builder
05/10/2006
5
10 Prática com Delphi e C++ Builder
10/10/2006
3
11 Trabalhos de VB, Delphi e BCB
12/10/2006
5
N. Sra. Aparecida
17/10/2006
3
12 Trabalhos de VB, Delphi e BCB
19/10/2006
5
13 Trabalhos de VB, Delphi e BCB
24/10/2006
3
14 VBA com Excel
26/10/2006
5
15 VBA com Word e PowerPoint
31/10/2006
3
16 Trabalhos de VBA
02/11/2006
5
Finados
35
Calendário (cont.)
Datas
Dia Ordem Assunto
07/11/2006
3
17 Aplicações gráficas – OpenGL
09/11/2006
5
18 Aplicações gráficas – OpenGL
14/11/2006
3
19 Aplicações gráficas – OpenGL
16/11/2006
5
20 Prática em Laboratório
21/11/2006
3
Araribóia
23/11/2006
5
21 Prática em Laboratório
28/11/2006
3
22 Prática em Laboratório
30/11/2006
5
23 Trabalho de OpenGL
05/12/2006
3
24 Trabalho de OpenGL
07/12/2006
5
25 Redes Neurais
12/12/2006
3
26 Redes Neurais
14/12/2006
5
27 Outras aplicações de IA
19/12/2006
3
28 Prática em Laboratório
21/12/2006
5
29 Prática em Laboratório
26/12/2006
3
Recesso de Natal
28/12/2006
5
Recesso de Natal
02/01/2007
3
30 Trabalho de Redes Neurais ou IA
04/01/2007
5
31 Trabalho de Redes Neurais ou IA
36
Conclusão
Pretende-se que esta disciplina seja uma
diversão criativa para quem gosta de
programar computadores
Bem-vindos ao Curso
Grato pela confiança
37
Formalização da Ementa
TCC04143 - Tópicos Especiais em Linguagens de Programação III
Período 2003.2 - 3as. e 5as. feiras - das 07 às 09 horas
Optativa: Programação Visual Orientada a Eventos com aplicações
gráficas e em Inteligência Artificial (4 créditos)
Professor: Inhaúma Neves Ferraz
Objetivo:
Dar uma visão geral sobre a Programação Visual Orientada a Eventos e
explorar a geração de protótipos.
Descrição:
Apresentar um panorama das Linguagens de Programação. Apresentar a
linguagem Basic e sua variantes. Caracterizar a Programação Visual Orientada a
Eventos. Gerar protótipos com Programação Visual com pouco conhecimento da
Linguagem de Tratamento de Eventos. Desenvolver aplicações de inteligência artificial
e aplicações gráficas em diferentes linguagens de programação.
38
Formalização da Ementa (cont.)
Ementa:
Histórico das linguagens de programação
Programação Visual Orientada a Eventos
Visual Basic – Linguagem
Prática com VB
C++ Builder
Prática com C++ Builder
Delphi e Object Pascal
Prática com Delphi
Aplicações gráficas – OpenGL
VBA
VBA com Excel
VBA com Word e PowerPoint
Aplicações de Inteligência Artificial : Redes Neurais, Lógica Fuzzy, Agentes
Prática em Laboratório
39
Bibliografia:
Petroutsos, Evangelos - Dominando o Visual Basic 6 - Makron Books do Brasil. - São Paulo - 1999.
Nunes, Eduardo - Visual Basic 6.0 - Guia do Usuário - Makron Books do Brasil - São Paulo - Brasil - 1999.
Microsoft Corporation – Visual Basic 6.0 – Guia do Programador - Makron Books do Brasil - São Paulo - Brasil - 1999.
Lomax, Paul - Learning VBScript - O’Reilly & Associates Inc. - Sebastopol - USA - 1997.
História das linguagens de programação com interessante gráfico de evolução
http://www.levenez.com/lang/
Introdução à Computação Gráfica da UFRJ
http://orion.lcg.ufrj.br/cg/
Tutorial de OpenGL da PUCRS
http://www.inf.pucrs.br/~manssour/OpenGL/
OpenGL usando C++ Builder
http://www.ap.dyndns.dk/opengl.htm
Histórico das linguagens de programação (parte 1)
http://www.uow.edu.au/~hasan/buss930/prog/prlangs1.htm
Histórico das linguagens de programação (parte 2)
http://www.uow.edu.au/~hasan/buss930/prog/prlangs2.htm
Lógica Fuzzy
http://www.attar.com/pages/fuzzy.htm
Animações em Powerpoint
http://duramecho.com/ComputerInformation/HowToDoPowerpointAnimations.html
Excel com VBA
http://www.excel-vba.com/ae-contents.htm
Notas de aula de VBA para Excel
www.ncc.up.pt/~ricroc/aulas/0203/sap/pdf/vba_excel.pdf
Notas de aula de Delphi
http://geekbrasil.sites.uol.com.br/delphi.zip
Tutoriais de C++ Builder
http://www.kissysoftware.com/asp/functions.asp
http://www.araripina.com.br/bcb/
40
Download

Apresentação da disciplina - Instituto de Computação