terça-feira, 23 de setembro de 2008

Projeto de Interface - 23/09/2008

Projeto de Interface

1980 - Orientado à Tecnologia (e na época era tudo na base de "só teclado", as interfaces eram À base de digitação)
1990 - Orientado ao Usuário
Hoje em dia - Envolvimento do usuário (o usuário participa ativamente do desenvolvimento da interface)

Fases

1 -Coletar e analisar as informações do usuário;
2 - Projetar a interface;
3 - Construir a interface;
4 - Validar a interface;

*toda vez que precisar fazer alguma alteração no projeto, as fases deverão ser todas executadas, nesta mesma ordem.

1ª fase:

Determinar o perfil do usuário;
(Fazendo questionários, entrevistas, enfim, coletando dados de alguma forma)

Executar as análises das tarefas do usuário;
(usado no processo de enganharia de software)

Coletar as necessidades do usuário;
(nenhum comentário relevante..)

Analisar o ambiente do usuário;
Relacionar as necessidades com as tarefas do usuário;
(Avaliar se as necessidades que o usuário relatou são realmente interessantes ou válidas para o sistema)

- Quem é o usuário?
- Qual a experiência que ele tem?

Questões importantes:
- Que tarefas o usuário executa?
- Quais delas são críticas?
- Quais os passos?
- Quais são os objetivos?
- Que informações são necessárias?
- Que ferramentas são utilizadas para executar essas tarefas?
- Que resultados eles geram?
- Determinar o que os usuários esperam

*GOMS -> Goals, Operators, Methods, and Selection rules
(Objetivos, operações, métodos e regras de seleção)

O importante:
- Que tecnologias o usuário necessita?
- Quem vai dar manutenção?
- Quais os treinamentos necessários?

Analisar o ambiente do usuário
1º: Ambiente físico -> espaço, iluminação, condições gerais de sobrevivência, ruído, temperatura, tipo de computador, etc...
2º Localização e mobilidade -> escritório, home office, usuário móvel...
*Considerar a possibilidade de usuários com necessidades especiais
*Considerar as diferenças culturais, pois existem culturas que, por exemplo, consideram o azul com uma cor nefasta

Para o usuário, existem tantos processos são tão comuns que tornam-se invisíveis para ele, e se ele deixa de relatar a necessidade deste processo para o projetista, ele irá sentir falta deste quando for utilizar o sistema.

Objetivos da usabilidade:
- Fazer com que o usuário seja capaz de utilizar o produto
- Efetividade, ou seja, fazer com que o usuário seja produtivo
- Minimizar o treinamento necessário
- Fazer com que o usuário fique satisfeito

Desenvolver cenários e tarefas: o cenário é uma seqüência de tarefas (decompostos em subtarefas), organizados hierarquicamente.

*aula finalizada no slide 17

segunda-feira, 22 de setembro de 2008

Dicas para o trabalho do Marcus - II

Entrega dia: 06/10/2008

3 - Ferramentas utilizadas
* (Basear no item 3 do pdf que o Marcus forneceu)
* arquitetura de um sistema especialista no Expert Sinta (melhorar)
* como o Sinta faz para gerenciar a base (mostrar algumas regras)
* criação de variáveis no Sinta
* objetivos
* trabalhando com as regras (algumas telas)
* definindo a interface com o usuário (mais telas)
* informações sobre a base do sistema

terça-feira, 16 de setembro de 2008

Dicas para o trabalho do Marcus Vinícius

Criando um projeto:

project
open project
CAMINHO_DOS_ARQUIVOS\nome_do_proj.prj

Adicionando os arquivo ao projeto:

project
Add to project
adicionar somente arquivos de extensão .cpp

Obsevações:
- Para diminuir a quantidade de execuções:mudar variável VALOR e SIMULA (no arquivo DEFS.H)

- Criar pasta de saída e modificar o caminho dela no "PRINCIPA.CPP" (a pasta deve possuir no máximo 8 caracteres)
Exemplo: c:\saida

- Deve-se fazer o include do DEFS.H no PRINCIPA.CPP
#include "defs.h"

quinta-feira, 11 de setembro de 2008

Teoria - Redes Neurais

Tipos de função:
- Degrau
- Semi-linear
- Sigmóide

Pesos:
- Positivo: ativador
- Negativo: inibidor

Entradas -> x
Pesos sinápticos -> w
saída -> y
Regra de Propagação -> NETj
Função de ativação -> f(NETj)

Topologias de Redes Neurais:
- Feed Forward
- Back Propagation
- Hopfield (Rede com realimentação)

Redes Perceptron:

Perceptron com uma Camada

Redes perceptron com uma camada são o tipo mais antigo de redes neurais, as quais são formadas por uma camada única de neurônios de saída, os quais estão conectados por pesos às entradas. Este é o exemplo mais simples de redes em avanço. A soma do produto entre pesos e entradas alimenta cada neurônio de saída, e se o resultado desta operação exceder um certo limiar (geralmente 0), o neurônio coloca o valor 1 na saída; se o resultado for inferior ao limiar, o neurônio coloca o valor -1 na saída. Neurônios com esse comportamento são chamados de neurônios de McCulloch-Pitts ou neurônios com limiar. Na literatura técnica o termo perceptron diz respeito a redes com apenas um desses neurônios.

Perceptrons podem ser treinados por um algoritmo de aprendizagem simples, chamado geralmente de regra-delta. Este algoritmo calcula os erros entre a saída dos dados calculados e a saída desejada, e utiliza isso para ajustar os pesos, assim executando um formulário da descida do gradiente.

Os perceptrons de uma camada são capazes de aprender somente sobre problemas linearmente separáveis (que podem ser separados por uma reta em uma hiperplano; em 1969 em uma monografia famosa intitulada Perceptrons por Marvin Minsky e por Seymour Papert mostrou que era impossível para uma única rede do perceptron da camada aprender uma função de XOR, Conjecturou (incorretamente) que um resultado similar penderia para uma rede multi-camadas do perceptron. Embora uma única unidade do ponto inicial fosse completamente limitada em seu poder computacional, mostrou-se que as redes de unidades paralelas do ponto inicial podem aproximar toda a função contínua de um intervalo compacto dos números reais no intervalo

Perceptron Multi-camadas

Esta classe de rede consiste de múltiplas camadas de unidades computacionais, geralmente interconectadas em uma forma feedforward. Isso quer dizer que cada neurônio em uma camada tem conexões diretas a neurônios da próxima camada. Em muitas aplicações as unidades dessas redes aplicam uma função sigmóide (em forma de S) como a função de ativação..

O teorema de aproximação universal dita que toda função contínua que mapeia intervalos de números reais a algum intervalo de números reais de saída pode ser arbitrariamente aproximado com precisão por um perceptron multi-camadas com somente uma camada oculta. Este resultado só é válido para classes restritas de funções de ativação, por exemplo funções sigmóides.

Redes Multi-camadas podem usar um grande número de técnicas de aprendizado, sendo que a mais popular é a propagação reversa. Neste caso os valores de saída são comparados com a resposta correta para computar o valor de alguma função-erro predefinida. Por alguma técnica o erro é então alimentado de volta na rede. Usando essa informação, o algoritmo ajusta os pesos de cada conexão para reduzir o valor da função erro. Apos repetir este processo por um número suficiente.

* O modelo que usamos é o Modelo de neurônio artificial de McCulloch-Pitts

terça-feira, 9 de setembro de 2008

Indice IGC

IGC
De acordo com o site do Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira (INep), o IGC de cada instituição sintetiza a qualidade de todos os seus cursos de graduação, mestrado e doutorado, em valores contínuos (que vão de 0 a 500) e em faixas (de 1 a 5).

No cálculo do indicador, são utilizados a média dos conceitos preliminares dos cursos da instituição (CPC) - componente relativo à graduação - e o conceito fixado pela Capes para a pós-graduação. A média dos conceitos dos cursos é ponderada pela distribuição dos alunos entre os diferentes níveis de ensino (graduação, mestrado e doutorado).

O indicador de cursos considera, além de resultados de avaliação de desempenho de estudantes, infra-estrutura e instalações, recursos didático-pedagógicos e corpo docente.

Dentre os 135 Centro Universitários avaliados, o UBM ficou em 71º com a seguinte avaliação:

UBM - 227 Valor Continuo - Faixa 3














segunda-feira, 8 de setembro de 2008

Exercício de IHM (com respostas)

Lista de Exercícios sobre Projeto de Interface

1) Descreva o que é interface ?
R: INTERFACE: É o software que irá mapear as ações do usuário em função da aplicação (solicitações de eventos de processo) e apresentar resultados destes processamentos.

2) Descreva o que é interação ?
R: - INTERAÇÃO: Ligação entre ser humano e computador utilizada para realizar algumas tarefas (comunicação).

- OBJETIVO: Permitir ao usuário utilizar ao máximo o computador sem obrigá-lo a conhecer o funcionamento do computador.

3) Descreva o que é affordance ?
R: AFFORDANCE
Conceito: Refere-se as propriedades percebidas e as propriedades reais, de um objeto que deveria determinar como ele poderá ser usado.
-- Quando predomina affordance em um objeto o usuário sabe o que fazer somente olhando para ele, sem necessidade de elementos adicionais (figuras, rótulos, etc.)

4) Quais as quatro perspectivas de uma IHM ?
R: desenvolvimento de sistemas de informática que sejam fáceis e rápidos de se aprender;
alta produtividade;
baixas taxas de erro;
bem aceitos pelos usuários.

5) Descreva as características dos estilos de interação ( linha de comando, menu, formulários, WINP, manipulação direta e linguagem natural ).
R: Linha de comando : onde o usuário tecla o comando desejado.
Menu : onde o usuário escolhe através do menu o que deseja .
Formulários: onde o usuário preenche com os dados solicitados .
WIMP, um acrônimo em inglês para Janelas, Ícones, Menus e Apontadores, permite a interação através de componentes de interação virtuais denominado de Widgets. Este estilo é implementado com o auxílio das tecnologias de interfaces gráficas, que proporcionam o desenho de janelas e do controle de entrada através do teclado e do mouse em cada uma destas janelas. Os softwares de interfaces que implementam estes estilos permitem a construção de ícones que permite a interação através do mouse, comportando-se como dispositivos virtuais de interação.


Manipulação direta : O usuário escolhe diretamente a ação a ser executada .
Linguagem Natural : o usuário atua através de comando de voz – Ex. Pro Voice – IBM

6) O que é comunicabilidade ?
R: Comunicabilidade é a qualidade do ato comunicativo otimizado, no qual a mensagem é transferida integral, correta, rápida e economicamente. A transmissão integral supõe que não há ruídos supressivos, deformantes ou concorrentes. A transmissão correta implica em identidade entre a mensagem mentada pelo emissor e pelo receptor. A rapidez supõe que se pratica o ato pela via mais curta. A economia presume que não são necessários retornos, esforços de decifração e compreensão.

7) Descreva o que é design de uma IHM .
1. R: É a apresentação final ( exposta ao usuário ) onde o seu construtor deve ter em primeiro plano o usuário final .a isto chamamos de visibilidade onde ,apenas as coisas necessárias devem estar visíveis, para indicar quais as partes que devem ser operadas e como devem indicar o mapeamento entre as ações pretendidas e as reais.
Affordance; Refere-se as propriedades percebidas e as propriedades reais, de um objeto que deveria determinar como ele poderá ser usado. Quando predomina affordance em um objeto o usuário sabe o que fazer somente olhando para ele, sem necessidade de elementos adicionais (figuras, rótulos, etc.)
Bom modelo conceitual; - Permite prever o efeito das ações;
Bons mapeamentos; Mapeamento é o termo utilizado para o relacionamento entre as entidades. - Em um IHM mapeamento entre os controles e sem movimentos
Feed back ; Retornar ao usuário informações sobre as ações que foram feitas e quais os resultados obtidos. Tipos como : relógio etc

8) Descreva (separadamente ) os procedimentos e os aspectos envolvidos na análise de usuário e na análise de tarefas.
R: Em análise do usuário o projetista ou projetistas deve de utilizar da ciência conectiva , buscando o maior grau de informação sobre o usuário final do sistema a ser implementado. Seu grau de escolaridade ; qual seu grau de conhecimento de informática, que programas usa ou usou ou que já obtenha conhecimento. Já em análise de tarefas, quais serão as tarefas e sub-tarefas e quais os métodos que serão utilizados no sistema a ser implementado.

9) Descreva o cenário para consulta de notas por disciplina no SAI. Faça o modelo de tarefas.
R: Não responder .

10) Cite e explique pelo menos três heuristica de Nilsen ?
R:
1) Diálogos simples e naturais. Deve-se apresentar exatamente a informação que o usuário precisa no momento, nem mais nem menos.

2) Falar a linguagem do usuário . A terminologia deve ser baseada na linguagem do usuário e não orientada ao sistema. As informações devem ser organizadas conforme o modelo mental do usuário.

3) Minimizar a sobrecarga de memória do usuário. O sistema deve mostrar os elementos de diálogo e permitir que o usuário faça suas escolhas, sem a necessidade de lembrar um comando específico.

4) Consistência . Um mesmo comando ou ação deve ter sempre o mesmo efeito.

5) Feedback. O sistema deve informar continuamente ao usuário sobre o que ele está fazendo.

6) Saídas claramente marcadas

7) Atalhos. Para usuários experientes executarem as operações mais rapidamente.

8) Boas mensagens de erro

9) Prevenir erros

10) Ajuda e documentação

11) Cite duas regras de ouro de Sherdermam.
R:
1) Consistência
2) Atalhos para usuários freqüentes
3) Feedback informativo
4) Diálogos que indiquem término da ação
5) Prevenção e tratamento de erros
6) Reversão de ações
7) Controle
8) Baixa carga de memorização

12) O que é usabilidade de uma interface ?
R: "Desenvolver e projetar produtos focados no usuário, em seu contexto de uso, é o que chamamos de usabilidade“;
Na web: adaptar a informação ao site de forma eficiente, garantindo praticidade em seu uso.

13) Descreva os cinco fatores de usabilidade .
R: Satisfação do usuário.
desenvolvimento de sistemas de informática que sejam fáceis e rápidos de se aprender;
alta produtividade;
baixas taxas de erro;
bem aceitos pelos usuários.

14) Quais são os tipos de problemas de usabilidade ?
R: Um usuário ou um grupo de usuários encontra dificuldades para realizar uma tarefa com uma interface.
Ocasionam perda de dados, diminuição da produtividade;
Rejeição total do software por parte dos usuários

15) Quais são as técnicas de avaliação de usabilidade?
R: Colocar o usuário final trabalhando e analisar o seu grau de satisfação.
Avaliar a taxa de erros cometido pelo usuário

16) O que é uma avaliação heurística ?
R: Avaliação do nível do comportamento mental do usuário interagindo com o sistema.

domingo, 7 de setembro de 2008

Resumo Nota I - Prova 08/09/2008

Defina IA: Ia é o estudo de como fazer com que computadores realizem atividades que no momento são melhores executados por humanos.

Para que serve IA

Resolução de problemas envolvendo:

  • Auxílio a decisão
  • Robótica
  • Sistemas de auxílio à deficiente
  • Sistemas de apoio à especialistas
  • Logísticas

Modelagem de processos em Psicologia e Neurobiologia
Motivador de questões filosóficas

IA pode:

  • Ajudar e aprender a resolver problemas analíticos
  • Ajudar especialistas a projetar sistemas

Jogar xadrez, futebol, gamão, etc.

Qual o nome do teste que verifica se uma maquina é ou não inteligente? Teste de Turing

Defina Agente: Entidade que percebe e atua no mundo a sua volta. Exemplos: ser humano, robô, agente de software.

Quais são os tipos de Agente:

Reativo com estado interno:
Agentes que selecionam as ações levando em consideração a percepção instantânea e numa pequena representação interna dos estados em que o mesmo já esteve. Desvantagem: pouca autonomia e não tem objetivo, não encadeia regras

Baseados em objetivos:

Informação de objetivo que descreve situações desejáveis. Envolve busca e planejamento.
Vantagens e desvantagens: Mais complicado e ineficiente, porém mais flexível, autônomo e
Não trata objetivos conflitantes

Baseados em utilidades:

A função de utilidade mapeia estados em números reais que indicam o grau associado de desejabilidade de estados. Desvantagem: não tem adaptabilidade

Quais os métodos para comparação de estratégias de busca:

Comparação em problemas bechmark: Executo algoritmo a ser testado em um problema-padrão, e comparo seu desempenho com um algoritmo de referência. Problema: muito específico. Desempenho pode depender do compilador utilizado, ajuste fino de parâmetros, arquitetura da máquina usada, etc.


Analise de algoritmos: Analiso algoritmo em termos de parâmetros característicos, abstraídos de aspectos implementacionais. Evita especificidade.

Estratégias de Busca:

Completo: Para qualquer problema ele encontrará a solução?
Ótimo: Se tem a solução, ele encontra o melhor caminho
Complexidade de Tempo: Projeção de crescimento da quantos nós forem expandidos.
Complexidade de Espaço: Algum nó é retirado da memória durante a busca? Se não complexidade é igual a complexidade de tempo.

Busca em Largura (BFS)
Utiliza a estrutura de fila. Coloca em uma fila todos os nos visitados e também seus vizinhos, realizando assim uma busca nível a nível. É uma estratégia simples em que o nó raiz é o primeiro a ser expandido, logo em seguida todos os sucessores do nó raiz são expandidos etc. Em geral, todos os nós de uma mesma profundidade na árvore de busca são expandidos antes de qualquer nó da profundidade seguinte.

Características do Algoritmo:
Completo: Sim
Ótimo: Sse o custo entre os nos forem uniformes
Complexidade de Tempo: O(b^d);
Complexidade de Espaço: O(b^d).


Busca em Profundidade (DFS)
Nessa estratégia de busca um dos nós do nível mais profundo da árvore de busca sempre é expandido. Somente quando a busca atinge um nó cujos filhos possuem estados que já foram expandidos outrora é que a busca expandirá algum dos nós pertencentes aos níveis acima deste, processo este conhecido como backtrack.

Completo: não (Falha com caminhos infinitos ou loops)
Completa: sim, se L >= d! (Determinar uma profundidade máxima L, no qual a DFS deve parar.)
Ótimo: não


Busca em Aprofundamento Iterativo (IDS)
Faz repetidas buscas em profundidade, aumentando o limite a cada iteração.
Combina os benefícios da BFS e DFS
Completo: Sim
Ótimo: Sim
Não gasta muita memória. Repetição da expansão de estados.
Não é tão ruim, pois a maior parte dos estados está nos níveis mais baixos
Na verdade, gera menos estados que o BFS, pois não gera estados no nível d+1


Busca de Custo Uniforme (Busca Ordenada)
Expande o nó de menor custo da trajetória a cada visita.
Usa-se fila de prioridades (como visto em S.O. no 3º Período) : menor valor, maior prioridade.
Exemplo: vc ta no nivel 0, ae expande todos os filhos dele, no nivel 1 vc vai visitar só o nó q tem menor custo de trajetória (maior prioridade) e assim por diante nivel por nivel... se vc chegar ao nivel mais profundo e não atingir o resultado, ele faz o backtracking pro nivel anterior e expande o nó com 2º menor custo e assim por diante ate achar o nó desejado porém existe o risco de cair em loop.

Completo? Não
Ótimo? Sim, pois encontra a solução que possuir o menor valor (custo)
Complexidade de Tempo? Número de nós com custo <= d Complexidade de Espaço? Número de nós com custo <= d

Greedy Search (Algoritmo Guloso)
Trabalha partindo dos valores informados pela heurística (ou pelo conjunto de heurísticas), sem enxergar o problema como um todo, por isso, ele pode tomar decisões incorretas (como cair em um loop infinito). Também utiliza fila de prioridades: menor valor, maior prioridade.
A heurística guia a busca, mas não representa o custo real.
Exemplo: Como já foi dito, o guloso trabalha com uma heuristia, tipo distancia entre as cidades
portanto a cada nivel ele pega o nó de menor custo e expande e visita o filho de menor custo
e expande e visita o filho de menor custo e por aí vai da mesma forma que a busca ordenada, a unica diferença é que caso ele chegue no nó mais profundo e não encontre a solução ele finaliza o algoritmo.

Completo? Não
Ótimo? Não, mas pode ser dependendo da heurística utilizada
Complexidade de Tempo? O(b^m), mas pode variar de acordo com a heurística utilizada
Complexidade de Espaço? O(b^m)

Observação:

Profundidade -> Pilha
Largura -> Fila

sexta-feira, 5 de setembro de 2008

Classificação Tabela Verdade

Tautologia: Ultima coluna da tabela somente V
Contradição: Ultima coluna da tabela somente F
Contingencia: Ultima coluna da tabela V e F

quinta-feira, 4 de setembro de 2008

Novo servidor de arquivos

Galera, o Leo disponibilizou um espaço no servidor dele pra galera depositar os arquivos lá, visto que no Y! já tá acabando o espaço.
O Flagal criou um redirecionador, o link é: http://ccompubm.servebeer.com/

quarta-feira, 3 de setembro de 2008

Resumo Nota 1 - Prova 03/09/2008

Por que é necessario o aprendizado de maquina?
-Para construir sistemas onde eles mesmos podem aprender o conhecimento necessario.
-Conntruir programas que mehorem com sua propria experiencia.

O que é aprendizado de maquina?
-É uma melhor compreensão do mecanismo de aprendizagem humano.

1 - Aquisição do Conhecimento

É a fase na construção do SE caracterizada pela descoberta, interpretação e estração dos dados.
Objetivo: Projetar e construir uma base do conhecimento.
O engenheiro do Conhecimento (EC) extrai do especialista, refina-o e monta a base do conhecimento. Metodos de aquisição do conhecimento:
  • Manual
  • Semi-Manual
  • Automatico
Modos:
  • Supervisionado: Ocorre quando é fornecido ao sistema um grande numero de exmplos, para o sistema se basear. Existe uma forte atuação do critico.
  • Não Supervisionado: O sistema identifica os problemas com base em sua propria base do conhecimento, não há intervenção humana nem do critico.
  • Semi-Supervisionado: É a mesclagem dos dois modos já citados.
Paradigmas:
  • Simbolico: Busca aprender construindo representações simbolicas.
  • Estatistico: Utiliza metodos estatisticos.
  • Baseado em Exemplos: Utiliza classificações anteriores.
  • Conexionista: Utiliza construções matematicas.
  • Evolucionista: Descarta os elementos de performance fraca mantendo os melhores.

2 - Representação do Conhecimento

A representação esta sempre relacionada com as formas de expressão da informação.
Fatos: Verdades em algum mundo relevante. Esses fatos são o que queremos representar.
Existem dus abordagens tradicionais:
  • Abordagem Declarativa: Tenta adaptar os problemas de IA a um mundo simbolico . Utiliza formulas em logica de predicados. Vantagens: Cada fato será armazenado apenas uma vez, facilidade em acrecentar novos fatos ao sistema.
  • Abordagem Procecimental: Representado por Marvin Minsky. Conjunto de regras ou arvore de decisão, processo incremental.
3 - Aprendizagem Autonoma

Aprendizagem autonoma é empregada em sistemas em que um processo dinamico a ser controlado sofre modificações estruturais ao longo do tempo, ou quando a modelagem do processo é dificil ou muito custosa.

Agente: Entidade que perce e atua no ambiente a sua volta.

Softbot: Controlam o sistema de acesso, recuperação e atualização da informação, normalmente atuam em conjunto.

Robots: Controlam um conjunto de sensores e atuadores, normalmente atuam isoladamente.

4 - Q-Learning

Funções:
  • Greedy: Função conservadora, algoritmo guloso, sempre irá buscar os maximos locais.
  • e-Greedy: Função exploratória, é utilizado para fugir do algoritmo de maximos locais atraves de aleatoriadade.
  • M: Partindo de estado inicial para um estado final é o conjunto de ações que um agente pode fazer para chegar em seu objetivo.
  • M*: Dentro de todas as politicas M são as politicas sub-otimas.