Cursos e Campos de Estudo em CC

terça-feira, 26 de agosto de 2008

Lost171, Facilitando sua vida

Download do ACM
Download do Slides
ACM Lost171
View SlideShare presentation or Upload your own.


Atualizado

Atualizei alguns slides, ñ mudou muito.



Obs: Deletei o antigo.

domingo, 24 de agosto de 2008

Arquiteturas de Sistemas de Computação

O conjunto definido de instruções de máquina que fazem referências a detalhes como registores, modos de endereçamento e tipos de dados que caracterizam um processador e suas funcionalidades. Estudamos Arquiteturas de Sistemas para conhecer melhor as disparidades entre as arquiteturas, suas características, seus problemas, qual arquitetura usar para fazer um programa, em qual arquitetura atuará um programa desejado e como fazer isso tudo.
As arquiteturas de Sistemas diferenciam-se na quantidade de instruções, Modo de endereçamento, tipos de dados, funcionalidades. Cada processador possui uma arquitetura, definida pelo fabricante do equipamento.
Um programa não pode ser executado em outra máquina de arquitetura diferente da que foi programado para atuar, pois instruções de um processador é característica específica de cada arquitetura e os comandos funções e resultados não seriam compatíveis entre elas.

Arquitetura RISC
A sigla RISC vem da expressão em inglês (Reduced Instrution Set Computer) e significa Conjunto Computacional de Instruções Reduzidas.
Possui poucas instruções de máquina, bastante simples, executadas diretamente pelo hardware. Maioria não acessa a memória principal, trabalha principalmente com registradores, que se apresentam em grande número neste tipo de processador.
Permitem que as instruções sejam executadas rapidamente, facilitam a implementação da técnica de pipelining.

Arquitetura CISC
(Reduced Instrution Set Computer) e significa Conjunto Computacional de Instruções Reduzidas.
A sigla CISC vem da expressão em inglês (Complex Instrution Set Computer) e é traduzida como Conjunto Computacional de Instruções Complexas.
Possuem instruções que são interpretadas por micro-programas devido a sua maior complexidade. Possui um número menor de registradores e qualquer instrução pode referenciar a memória principal.
As instruções são executadas mais devagar e a implementação da técnica de pipelining3 é mais difícil.

Arquiteturas de Computadores

São os diferentes modos como os computadores são produzidos e como são arquitetadas as interligações de seus componentes. Diz-se que são basicamente as divergências na fabricação dos computadores.
Com a crescente popularização dos computadores, surge a necessidade da interação de um equipamento com o outro, e com isso também a necessidade de se criar um padrão. Em meados de 1980, somente duas, das arquiteturas existentes até então, resistiram ao tempo e se tornaram populares. Foram: o PC (Personal Computer) em português Computador Pessoal, desenvolvido pela empresa IBM, e o Macintosh (ou apenas Mac como também é conhecido) desenvolvido pela Apple.
Como o PC da IBM se tornou na época a arquitetura dominante, o padrão adotado para os computadores que conhecemos hoje se tornou o padrão da IBM.

Arquiteturas abertas
Foi Desenvolvida inicialmente pela IBM e é a mais aceita atualmente. Consiste em permitir que outras empresas fabriquem computadores com a mesma arquitetura.
Pontos favoráveis ao usuário: Permite ao usuário maiores opções de configuração e o poder de montar seu próprio computador de acordo com necessidades e custos de cada usuário.
Pontos desfavoráveis: Os conflitos de hardware o computador funciona mais lento e com menor qualidade se comparado a computadores de arquitetura fechada.
Arquiteturas fechadas
Implica em uma empresa fabricante de certa arquitetura não permitir o uso da arquitetura por outras empresas, ou ter o controle sobre as que fabricam computadores de sua arquitetura.
Pontos favoráveis ao usuário: Os conflitos de hardware diminuem muito, faz o computador funcionar mais rápido e melhor.
Pontos desfavoráveis: O usuário fica restrito a produtos da empresa e não pode montar o seu próprio computador.

Nem um nem outro, os dois ao mesmo tempo:
Podem também existir casos como o da Apple que não pertence somente a um tipo de arquitetura, mas sim a ambas as arquiteturas, fazendo parte do mercado de compatíveis IBM, mas ao mesmo tempo sendo a única empresa que a produzir computadores que podem rodar seu sistema operacional legalmente.

Área de Hardware

Os Hardwares são dispositivos físicos que manipulam dados na forma digital, o que proporciona uma maneira confiável de representação e transmissão de dados. Estudamos Hardwares para conhecermos o funcionamento dos recursos físicos dos sistemas, suas funções, seus variados tipos de uso, controle e manutenção.
Um sistema computacional é um conjunto de circuitos eletrônicos interligados, (os Hardwares), que podem ser processadores, memórias, registradores, impressoras, discos magnéticos e etc. São agrupados em três subsistemas básicos (Unidades funcionais).São elas:
CPU (processador): o cérebro de todo sistema computacional. É a unidade lógica e aritmética de processamento.
Memórias: dispositivos removíveis ou rígidos responsáveis por armazenar temporariamente ou em definitivo os dados trabalhados pelo sistema.
Dispositivos de entrada e saída que são os meios de comunicação entre máquina e usuário, onde o mesmo entra com informações ou comandos e recebe as respostas por tais.

Conexão dos Hardwares
O computador precisa de conexões físicas que permitem seus componentes de hardware se comunicar e se relacionar entre eles. O barramento constitui um sistema comum de interconexão, composto por um conjunto de vias ou trilhas que coordenam e transportam as informações entre as partes internas e externas do computador. Uma conexão para comunicação em série é feita através de um cabo ou grupo de cabos utilizados para transferir informações entre a CPU e um dispositivo externo como o mouse e o teclado, um modem, um digitalizador (scanner) e alguns tipos de impressora. Esse tipo de conexão transfere um bit de dado de cada vez, muitas vezes de forma lenta. A vantagem da transmissão em série é que é mais eficaz a longas distâncias.

Modelos Analíticos e de Simulação

Prever o desempenho de um sistema, entender seu comportamento, observar prováveis falhas e erros, analisar o melhor caminho de sucesso do sistema, simular proposições e ambientes de sistemas e encontrar soluções exatas ou muito aproximadas para o sistema desejado. Tudo isso pode ser feito usando Modelos Analíticos e de Simulação.

Modelos Analíticos
Analíticos são como fórmulas, mostram exatamente ou muito aproximadamente, como se comporta o sistema analisado. Observe na Figura 1 obtida em.

Modelos de Simulação
Simulação são procedimentos ou algoritmos que vão mostrar numa escala de tempo como vai se comportar o sistema, desde o início ao fim da simulação.
Um programa que vai calcular os avanços até terminar o teste incrementalmente.

Níveis de Detalhamento dos Modelos Analíticos e de Simulação

Modelo de Desempenho ao Nível de Sistema
O nível de explicitação sobre o sistema é baixo, modelado como uma “caixa preta”. É analisado como um conjunto de componentes realizando a analise do funcionamento geral sem alto rigor de detalhes por componentes. Realiza analise dos componentes simultaneamente.

Modelo de Desempenho ao Nível de Componentes
Considera diferentes recursos do sistema e o modo como as requisições usam os diferentes componentes. Discos e redes são considerados pelo modelo, mais preciso sobre o sistema e mais lento lidando com os recursos representando-os como uma fila.

Matemática Simbólica

O uso de computadores na utilização de símbolos (simbólica) de equações e expressões, em oposição à manipulação de aproximações a quantidades numéricas específicas representadas pelos símbolos.
Integração, diferenciação, substituição e simplificação de expressões, derivação e outras funções matemáticas podem ser realizadas com esses softwares. Alem de Testes de software sob o título de “execução simbólica” usado para analisar se e quando o código pode ter erros e para prever o que partes desse código iram fazer com inputs e outputs especificados nos testes.

Sistema de Álgebra Computacional

Os Softwares de matemática simbólica normalmente são chamados sistemas de álgebra computacional. Um Sistema de Álgebra Computacional1 é um programa que facilita o cálculo na matemática simbólica.
Normalmente incluem: Precisão aritmética arbitrária, Motor de manipulação simbólica, Facilidades gráficas, Subsistema de álgebra linear, Linguagem de programação de alto nível, Sistema de composição para expressões matemáticas.
(podendo ter todas ou parte dessas funcionalidades).
Começaram a aparecer no início da década de 1970 e evoluíram a partir da pesquisa para inteligência artificial. Os primeiros popularizados foram Reduce, Derive e Macsyma. Alguns desses softwares comerciais como o MuPAD ofereceu versões gratuitas para pesquisa não comercial e uso educacional com suas funções restritas. Alguns destes são desenvolvidos por estudantes e, geralmente gratuitos, focam áreas de atuação de interesse próprio de seu desenvolvedor.

Matemática da Computação

É a área que trata do desenvolvimento de modelos matemáticos, para tratar de problemas complexos, e obtenção de soluções usando métodos numéricos. Essa área nos auxilia a desenvolver programas que, aplicando a matemática através de símbolos, resolvam problemas de interesse cientifico ou computacional de maneira exata ou muito aproximada. Atua nos auxiliando na solução de problemas de ciências exatas ou de outras diversas áreas. Colabora fortemente com a computação científica, com três centros de estudo avançado no país. Um em Belo Horizonte na UFMG, outro em Campinas na Unicamp e mais um em São Carlos na USP.

sexta-feira, 22 de agosto de 2008

Teleinformática

Teleinformática é o ramo da informática que trata das técnicas de transmissão de dados e suas aplicações. Os dados enquanto representação da informação são classificados em dados analógicos e dados digitais.

Os dados analógicos se variam de modo contínuo como valores de temperatura ou tonalidade e intensidade da voz humana. Á os dados digitais assumem valores discretos e em quantidades bem determinadas, como os números inteiros ou as letras de um texto, neste caso poderão representar um código adequado, recorrendo por exemplo aos símbolos binários (dígitos 0 e 1) e ao código ASCII.

Tanto os dados analógicos como os que pela natureza são do tipo digital, podem ser traduzidos e convertidos para efeito de transmissão elétrica em sinais analógicos e sinais digitais.

A transmissão de sinal digital ao longo dos circuitos de telecomunicações, exige contudo uma grande abertura de banda, não estando as linhas dos circuitos telefônicos tradicionais preparadas ainda em grande parte para fazer a esta exigência, usam-se assim dispositivos que convertem os sinais digitais que representam dados de natureza digital, em sinais analógicos com largura de banda relativamente reduzida. Estes dispositivos são os modens (modulador-demodulador) que transformam sinais digitais em sinais analógicos e vice-versa.

Assim o objetivo de se estudar teleinformática é dar teoria e prática necessária para lidar com transmissão de dados, softwares operacionais (servidor cliente), placas de rede, swiches, modens, satélites, sistemas de rádio e TV, fibras ópticas, e toda essa ligação entre telecomunicação e computação.

Introdução à teleinformática

quarta-feira, 11 de junho de 2008

Áreas de Engenharia de Software - Qualidade de Software

A área de qualidade software está relacionada com considerações de qualidade de software que transcendem os processos de ciclo de vida do software. Ela está ligada diretamente com a qualidade do produto do software. Porém é impossível separar a qualidade final do produto da qualidade do processo onde o produto está sendo desenvolvido, pois o processo de desenvolvimento influencia fortemente o produto final gerado e se este processo não possuir um determinado grau de qualidade o resultado final não será satisfatório.

O gerenciamento da qualidade, hoje em dia, é visto como custo e grande parte das empresas não conseguem enxergar nenhuma vantagem em atribuir responsáveis e atividades para a garantia da mesma. Porém, com o gerenciamento da qualidade as chances do software possuir uma boa qualidade em uso são muito maiores. Isso é um ponto de grande importância no atual contexto das empresas desenvolvedoras de software, uma vez que existem inúmeras empresas no mercado de hoje, e a qualidade final do produto e a satisfação do cliente é um diferencial que auxiliará a empresa a se destacar neste mercado.

Áreas de Engenharia de Software - Gerenciamento de Software

A área de “Gerenciamento software”, foi escolhida por considerar que esta é uma área que influencia e recebe influência das outras áreas da engenharia de software, sendo desta forma fundamental para atingir um bom resultado ao final do projeto.

O gerenciamento da engenharia de software pode ser definido como a aplicação de atividades de acompanhamento planejamento e controle que garantem um desenvolvimento e uma manutenção sistemática dos projetos de softwares. Essas atividades podem ocorrer em três níveis: gerenciamento organizacional, gerenciamento de projeto e controle e planejamento de programas de medição.

Outro aspecto importante do gerenciamento é atividades relacionadas com o gerenciamento de pessoas, levando em consideração equipe, clientes e responsáveis da própria organização. Estas atividades tratam de treinamento, motivação pessoal. Além disso são necessários, os planejamentos e gerenciamentos da comunicação entre essas pessoas para melhorar o entendimento de todos, fator primordial para um bom resultados finais. Este ponto desperta um interesse extremo nesta área, pois se separa um pouco das áreas técnicas da engenharia de software, trazendo o seu foco para a compreensão e ajustamento dos indivíduos envolvidos e seus relacionamentos em grupo.

Segundo o PMBOK a área de “Gerenciamento da engenharia de software” se divide em 7 sub-áreas: gerenciamento de integração do projeto, gerenciamento do tempo do projeto, gerenciamento do custo do projeto, gerenciamento da qualidade do projeto, gerenciamento dos recursos humanos do projeto e gerenciamento das comunicações do projeto. As cinco primeiras estão relacionadas com o processo de gerenciamento do projeto e as duas ultimas relacionam-se com medições de dados do projeto. O processo de gerenciamento e as quantificações métricas estão intimamente ligados e um depende do outro para que se obtenha um gerenciamento efetivo e satisfatório.

Um fator importante com relação a esta área é que, como pôde ser observada, ela possui atividades distribuídas durante todo o ciclo de vida do projeto. Isto significa que ela está ligada a praticamente todas as atividades que acontecem durante o projeto e, caso as atividades do gerenciamento estejam comprometidas, as atividades de qualquer fase do ciclo de vida podem ser afetadas reduzindo a qualidade de seus resultados finais.

Áreas de Engenharia de Software - Projeto de Software

O projeto de software é a definição da arquitetura, dos componentes, das interfaces de um sistema ou componente. As sub-áreas que compõem esta área são as seguintes: fundamentos de projeto de software, pontos chaves no projeto de software, estrutura e arquitetura do projeto de software, análise e avaliação do projeto de software, notações do projeto de software e estratégias e métodos para projeto de software.

Esta é uma área de grande importância pois é durante suas atividades que podem ser detectados problemas do funcionamento do software que podem comprometer seu uso e até mesmo a conclusão do mesmo. Caso estes problemas fosse detectados apenas no transcorrer das atividades de construção do software, as suas correções poderiam ser bastante custosas e grande parte do trabalho de desenvolvimento poderia ser perdido. Além disso, com o projeto do software pode-se obter uma visão mais geral do sistema, permitindo-se calcular melhor quais os impactos de cada decisão tomada no decorrer do projeto.


Áreas de Engenharia de Software - Requisitos de software

O requisito pode ser definido como a propriedade que deve ser relatada com o intuito de solucionar um problema real. Esta área é dividida em sete sub-áreas: fundamentos de requisitos de software, processo de requisitos, elicitação de requisitos, análise de requisitos,especificação dos requisitos, validação dos requisitos e considerações práticas.

Esta área está relacionada com o levantamento das propriedades que o software deve possuir e as restrições existentes. Ela elícita, analisa e valida os requisitos de maneira a permitir que no final do projeto o software tenha uma chance maior de atender as necessidades dos clientes. Esta área é de extrema importância pois ao fazer a analise e a validação dos requisitos do software podem ser percebidos carência de algumas propriedades que o software deve possuir e até mesmo conflito entre as necessidades existentes, possibilitando prever problemas e propor mudanças antes do software começar a ser implementado.

Áreas de Engenharia de Software - Processo de Engenharia de Software

A área de conhecimento do processo de engenharia de software está relacionada com a definição, implementação, controle, e proposta de mudança no próprio processo. Esta área pode visualizada em dois níveis. O primeiro nível engloba as atividades técnicas e gerenciais executadas durante a aquisição, desenvolvimento e manutenção do software. O segundo nível, tratado nesta área de conhecimento, considera as definições, implementações, gerenciamento e mudanças no próprio processo.

O processo de engenharia de software envolve vários outros processos, como o de desenvolvimento o de gerenciamento, o de qualidade. Esta área está ligada com qualquer parte do gerenciamento do processo de ciclo de vida do software, onde mudanças são propostas com o intuito de melhorar o produto ou até mesmo o processo de produção.

Ao contrário do que é suposto, essa área importante não apenas para empresas grandes, mas também devem ser levadas em consideração para pequenas empresas, facilitando e auxiliando no crescimento dessas. O objetivo desse gerenciamento do processo é implementar novas práticas individuais, de projeto ou até mesmo organizacionais.

Uma das grandes dificuldades enfrentadas por está área é que a implementação das suas práticas geralmente não traz benefícios em curto prazo, porém com a evolução dos processos a empresa vai aumentando o seu nível de maturidade e o desempenho das equipes e qualidade final dos produtos é beneficiada.

domingo, 8 de junho de 2008

Computabilidade e Modelos de Computação

Computabilidade é uma propriedade elementar das máquinas ditas computáveis. Os computadores possuem a capacidade de receber como entrada de dados uma sentença (um programa) escrito em uma linguagem artificial computável (uma linguagem que o computador entende) e execultar tarefas bem definidas, baseada na interpretação da sentença recebida. O ato de interpretação da sentença é a execução do programa. Durante sua execução, o programa recebe entrada de dados informadas pelo usuário e produz saída de dados, que são captadas pelo usuário.
A entrada de dados efetuada pelo usuário do programa é formada por sentenças em uma linguagem abstrata (linguagem L1, mas adequada para pessoas). Assim a entrada de dados do programa pertence à linguagem artificial definida pelo programador.
A capacidade computacional plena (computabilidade) surge no momento em que a linguagem de máquina(linguagem L0), na qual o programa (a linguagem do programador) é construído, permite a construção de sentenças suficientemente poderosas (programas P0, escritos em L0), cuja a execução permite entrada de dados na linguagem abstrata (linguagem L1) , onde L1 irá tornar-se tão poderosa quanto L0. Os primeiro modelos de computabilidade, foram com:
  • Kurt Göedel - funções recursivas.
  • Alonso Church - lambda-calculus.
  • Alan Turing - Máquina de Turing.
Essas invenções levaram a construção dos primeiros computadores.
Modelos de computação são modelos que buscam representar, e estudar a forma como calculamos, assim a CC, segundo as definições de Modelo Matemático , é verdadeiramente uma componente da matemática com a ciência.
Tomando por base o funcionamento de um computador, modelos de computação devem associar sinais de entrada e saídas, representar a memória (estado interno), basear-se na especificação de regras e de uma sequência para sua execução, e depender de um intérprete ou executor(computador).

links:
Teoria da Computação_Lucilia Figueiredo_UFOP2008
Computabilidade_Jorge Fernandes_maio2002

quinta-feira, 5 de junho de 2008

Complexidade computacional

A Teoria da complexidade computacional é a parte da teoria da computação que estuda os recursos necessários durante o cálculo para resolver um problema.. Os recursos comumente estudados são o tempo (número de passos de execução de um algoritmo para resolver um problema) e o espaço (quantidade de memória utilizada para resolver um problema). Pode-se estudar igualmente outros parâmetros, tais como o número de processadores necessários para resolver o problema em paralelo.

Tipos

  • Espacial: Este tipo de complexidade representa o espaço de memória usado para executar o algoritmo, por exemplo.
  • Temporal: Este tipo de complexidade é o mais usado podendo dividir-se em dois grupos:
    • Tempo (real) necessário à execução do algoritmo.
    • Número de instruções necessárias à execução...

Perspectivas

São usadas três perspectivas no estudo do caso da complexidade:

  • Melhor Caso – Representado por Ω( ), consiste em assumir que vai acontecer o melhor. Pouco utilizado e de baixa aplicabilidade.
  • Caso médio – Representado por θ( ). Este é o caso que é o mais difícil de ser determinado, pois, necessita de análise estatística e em conseqüência de muitos testes, contudo é muito utilizado, pois é o que representa mais corretamente a complexidade do algoritmo.
  • Pior Caso – Representado normalmente por O( ). Se dissermos que um determinado algoritmo é representado por g(x) e a sua complexidade Caso Pior é n, será representada por g(x) = O(n). Consiste em assumir que o pior dos casos pode acontecer, sendo de grande utilização e também normalmente o mais fácil de ser determinado.

Wikipédia 1, 2

Análise de algoritmos

Em ciência da computação, a análise de algoritmos tem como função determinar os recursos necessários para executar um dado algoritmo. A maior parte dos algoritmos são pensados para trabalhar com entradas (inputs) de tamanho arbitrário. Em geral, a eficiência ou complexidade de um algoritmo é função do tamanho do problema, do número de passos necessário (complexidade temporal) e da complexidade espacial ou de memória do sistema usado para executar o algoritmo. Esta disciplina faz parte da mais vasta teoria da complexidade computacional, que permite fazer estimativas quanto aos recursos necessários para que um algoritmo resolva um determinado problema computacional.

Assim, o objetivo final não é apenas fazer códigos que funcionem, mas que sejam também eficientes. Para isso, deve-se estudar alguns tipos de problemas que podem ser resolvidos computacionalmente. Em seguida, deve ser visto como a abordagem adotada para resolver pode influenciar, levando a um algoritmo mais ou menos eficiente.



Wikipédia

sábado, 31 de maio de 2008

Linguagens Formais e Autômatos


A teoria das Linguagens formais e dos autômatos é entendido como o estudo dos modelos matemáticos que possibilitam a especificação e o reconhecimento de linguagens (suas classificações, estruturas, propriedades, características e inter-relacionamento).
A Teoria das Linguagens Formais foi desenvolvida na década de 1950, com o objetivo inicial de desenvolver teorias relacionadas com as linguagens natural, logo foi verificado que era importante no estudo de linguagens artificiais, em especial, para as linguagens originarias da computação e informática, desde então desenvolveu significadamente. As aplicações mais recentes dela são em animações, hipertextos e hipermídias e em linguagens não -lineares (planares, espaciais, n-dimensionais).
As linguagens formais, são mecanismos para representação e especificação de linguagens baseado na Teoria da Computação. As representações podem ser feitas por reconhecedores e geradores. Os reconhecedores são dispositivos formais que servem para verificar se uma sentença pertence ou não à determinada linguagem, são os autômatos (ex.: autômatos finitos, autômatos de pilha e Máquina de Turing). Os geradores são dispositivos formais que permitem a geração sistemática de todas as sentenças de uma linguagem. Os principais geradores disponíveis são as gramáticas, onde se destaca a gramática de Ghomsky.
Então, linguagens formais podem ser representadas de maneira finita e precisa atravéis de sistemas com sustentação matemática.
A importância desse estudo na Ciência da Computação é duplo: pois necessita de uma visão geral dos Fundamentos Teóricos da Computação, como a decibilidade, computabilidade, complexidade computacional por exemplo, como fundamenta diversas aplicações computacionais, como processamento de linguagens, reconhecimento de padrões e modelagem de sistemas. Existindo uma capacidade de correlacionar aspectos teóricos e práticos da computação.
Objetivo

Capacitar para a aplicação sistematizada e formalizada de conceitos e resultados relativos às linguagens, gramáticas, autômatos e reconhecedores.

links:
wikipédia
Linguagens Formais e Autômatos


Áreas de Ciência da Computação

Teoria da Computação (subárea)

Computabilidade e Modelos de Computação Linguagem Formais e Automatos

Análise de Algoritmos e Complexidade de Computação

Lógicas e Semântica de Programas


Matemática da Computação (subárea)

Matemática Simlica

Modelos Analíticos e de Simulação


Metodologia e Técnicas da Computação (subárea)

Linguagens de Programação

Engenharia de Software Banco de Dados Sistemas de Informação

Processamento Gráfico (Graphics)


Sistemas de Computação (subárea)
Hardware

Arquitetura de Sistemas de Computação

Softwaresico

Teleinformática

domingo, 25 de maio de 2008

Sistemas de Informação

Sistemas de Informação( em inglês, Information System), é o termo para descrever um sistema automatizado (que pode ser denominado também como Sistema de Informação Computadorizado), ou mesmo manual, que estende a pessoas, máquinas, e/ou métodos organizados para coletar, processar, transmitir e disseminar dados que representam informação para o usuário.
O termo SI(Sitemas de Informação) também é utilizado para descrever a área de conhecimento encarregada do estudo de Sistemas de Informação, Tecnologia da Informação e suas relações com as organizações. Neste contexto, SI é comumente classificada como uma Ciência Social Aplicada, ao contrário de CC, considerada uma Ciência Exata.
A área de conhecimento SI é considerada pelos pesquisadores como uma área multi ou trans-disciplinar, devido às inter-relações com outras áreas de conhecimento, tais como Ciência da Computação, Administração, Gestão da Informação, Economia, Sociologia, Direito, Engenharia de Produção, Ciência da Informação, entre outras.
A expressão SI refere-se também ao curso de graduação, cujo o foco deste é o desenvolvimento e aplicação de Sistemas de Informação Computadorizados nas organizações. O conteúdo do curso abrange aspectos técnicos, gerencias e sociológicos, abrangendo em forma geral os conteúdos relevantes estudados na área de conhecimento Sistemas de Informação.
Podemos ter a classificação dos Sistemas de Informação baseados em TI de acordo com o tipo de informação processada:
  • Sistemas de Informação Operacional: tratam das transações rotineiras da organização; Comumenente encontrados em todas as empresas automatizadas.
  • Sistemas de Informação Gerencial: agrupam e sintetizam os dados das operações da organização para facilitar a tomada de decisão pelos gestores da organização;
  • Sistemas de Informação Estratégicos: integram e sintetizam dados de fontes internas e externas à organização, utilizando ferramentas de análise e comparação complexas, simulação e outras facilidades para a tomada de decisão da cúpula estratégica da organização.
Veja aqui neste link uma coluna muito interesante sobre a importância dos Sistemas de Informação.

Fonte: Sistemas de Informação



Software básico

Um sistema de computação está organizado em 2 componentes:
  • HARDWARE - é a parte física
  • SOFTWARE: é o conjunto de programas, que está classificado em dois tipos: o software aplicativo e o software básico.


Os programas aplicativos se concentram na solução de algum tipo de problema específico, utilizando o computador como ferramenta (o foco está na aplicação).
exemplos: jogos, planilhas eletrônicas e aplicações gráficas.


O software básico têm como objetivo possibilitar a operação e o uso do computador, seja qual for a aplicação (o foco está na máquina)
– o software básico se concentra na necessidades gerais de grande parte dos usuários.
exemplos: sistemas operacionais, compiladores, editores de texto, etc.


http://www.dimap.ufrn.br/~ivan/sb.html
http://www.eduardosilvestri.com.br/fmu/redes/sistop/2aula/SO-Aula002.pdf

sexta-feira, 23 de maio de 2008

Algumas Escolas DE Engenharia da Computaçã do Brasil (em ordem alfabética)

ÁREA1-BA: Faculdade de Ciência e Tecnologia - Salvador/BA
CEFET-CE: Centro Federal de Educação Tecnológica do Ceará - Fortaleza/CE
CEFET-MG: Centro Federal de Educação Tecnológica de Minas Gerais - Belo Horizonte/MG
EESC-USP: Escola de Engenharia de São Carlos - USP - São Carlos/SP
FACIT: Faculdade de Ciências e Tecnologia de Montes Claro - Montes Claros/MG
FACENS: Faculdade de Engenharia de Sorocaba - Sorocaba/SP
FASP: Faculdades Associadas de São Paulo - São Paulo/SP
FIAP: Faculdade de Informática e Administração Paulista - São Paulo/SP
FURG-RS: Fundação Universidade Federal de Rio Grande - Rio Grande/RS
IESAM: Instituto de Estudos Superiores da Amazônia - Belém/PA
IESB: Instituto de Educação Superior de Brasília - Brasília/DF
IME: Instituto Militar de Engenharia - Rio de Janeiro/RJ
IMT: Instituto Mauá de Tecnologia - São Caetano/SP
INATEL: Instituto Nacional de Telecomunicações - Santa Rita do Sapucaí/MG
IPA: Centro Universitário Metodista IPA - Porto Alegre/RS
ITA: Instituto Tecnolológico de Aeronáutica - São José dos Campos/SP
LOGATTI: Faculdades Logatti - Araraquara/SP
METODISTA: Universidade Metodista de São Paulo - São Bernardo do Campo/SP
POLI-USP: Departamento de Engenharia de Computação e Sistemas Digitais - Escola Politécnica da USP - São Paulo/SP
PUC-CAMPINAS: Faculdade de Engenharia de Computação - Campinas/SP
PUC-MINAS: Pontifícia Universidade Católica de Minas Gerais - Belo Horizonte/MG
PUC-PR: Pontifícia Universidade Católica do Paraná - Curitiba/PR
PUC-RIO: Pontifícia Universidade Católica do Rio de Janeiro - Rio de Janeiro/RJ
PUC-RS: Pontifícia Universidade Católica do Rio Grande do Sul - Porto Alegre/RS
SOCIESC: Sociedade Educacional de Santa Catarina - Joinville/SC
UBC: Universidade Braz Cubas - Mogi das Cruzes/SP
UBM: Universidade de Barra Mansa - Campus CICUTA - Volta Redonda/RJ
UCDB: Universidade Católica Dom Bosco - Campo Grande/MS
UCG: Universidade Católica de Goiás - Goiânia/GO
UCP: Universidade Católica de Petrópolis - Petrópolis/RJ
UEMA: Universidade Estadual do Maranhão - São Luís/MA
UEFS: Universidade Estadual de Feira de Santana - Feira de Santana/BA
UEPG: Universidade Estadual de Ponta Grossa - Ponta Grossa/PR
UERJ: Universidade Estadual do Rio de Janeiro - Rio de Janeiro/RJ
UFAM: Universidade Federal do Amazonas - Manaus/AM
UFC: Universidade Federal do Ceará - Sobral/CE
UFES: Universidade Federal do Espírito Santo - Vitória/ES
UFG: Universidade Federal de Goiás - Goiânia/GO
UFPA: Universidade Federal do Pará - Belém/PA
UFPE: Universidade Federal de Pernambuco - Recife/PE
UFRGS: Universidade Federal do Rio Grande do Sul - Porto Alegre/RS
UFRJ: Universidade Federal do Rio de Janeiro - Rio de Janeiro/RJ
UFRN: Universidade Federal do Rio Grande do Norte - Natal/RN
UFSCAR: Universidade Federal de São Carlos - São Carlos/SP
UNICAMP: Universidade Estadual de Campinas - Campinas/SP
IC: Instituto de Computação (modalidade AA - Sistemas de Computação)
FEEC: Faculdade de Engenharia Elétrica e de Computação (modalidade AB - Sistemas e Processos Industriais)
UNICEP: Centro Universitário Central Paulista - São Carlos/SP
UNICEUB: Centro Universitário de Brasília - Brasília/DF
UNIDERP: Universidade para o Desenvolvimento do Estado e da Região do Pantanal - Campo Grande/MS
UNIFACS: Universidade Salvador - Salvador/BA
UNIFAE: Centro Universitário das Faculdades Associadas de Ensino – São João da Boa Vista/SP
UNIFAI: Centro Universitário Assunção – São Paulo/SP
UNIFEI: Universidade Federal de Itajubá - Itajubá/MG
UNIFOR: Universidade de Fortaleza - Fortaleza/CE
UNIPAC: Universidade Presidente Antonio Carlos - Lafaiete/MG
UNIPINHAL: Centro Regional Centro Regional Universitário de Espírito Santo do Pinhal - Espírito Santo do Pinhal/SP
UNIP: Universidade Paulista - Várias cidades do Brasil
UNIRP: Centro Universitário de São José do Rio Preto - Rio Preto/SP
UNISANTA: Universidade Santa Cecília - Santos/SP
UNISANT'ANNA: Universidade Uni Sant'Anna - São Paulo/SP
UNISC: Universidade de Santa Cruz do Sul - Santa Cruz do Sul/RS
UNISINOS: Universidade do Vale do Rio dos Sinos - São Leopoldo/RS
UNIUBE: Universidade de Uberaba - Uberaba/MG e Uberlândia/MG
UNIVALI: Universidade do Vale do Itajaí - São José/SC
UNIVASF: Universidade Federal do Vale do São Fransisco - Juazeiro/BA
UNIVATES: Universidade do Vale do Taquari - Lajeado/RS
UNOPAR Universidade Norte do Paraná - Londrina/PR
UPE: Universidade de Pernambuco - Departamento de Sistemas e Computação - Recife/PE
USJT: Universidade São Judas Tadeu - São Paulo/SP
USF: Universidade São Francisco - Itatiba/SP
UTFPR: Universidade Tecnológica Federal do Paraná - Curitiba/PR

WIKIPEDIA

ENGENHARIA DA COMPUTAÇÃO

A Engenharia de Computação (Engenharia de Sistemas de Computação ou, em Portugal, Engenharia Electrotécnica e de Computadores) é um curso superior com disciplinas especializadas que combinam a Electrônica e a Ciência da Computação. Não deve ser confundida com Engenharia Informática.


O Profissional
Possui formação plena em Engenharia e uma sólida formação técnico-científica e profissional, que o capacita a especificar, desenvolver, implementar, adaptar, industrializar, instalar e manter sistemas computacionais, bem como perfazer a integração de recursos físicos e lógicos necessários para o atendimento das necessidades informacionais, computacionais e da automação de organizações em geral.

A Formação
O curso de graduação em Engenharia de Computação tem sido adicionado às universidades desde o início dos anos 1990. Algumas universidades como o MIT (Instituto de Tecnologia de Massachussetts), nos Estados Unidos, optaram por unir os departamentos de engenharia elétrica e de ciência da computação.
Uma vez que os Engenheiros de Computação focam-se, essencialmente, em eletrônica e computadores, o conteúdo dos seus cursos terão, tendencialmente, menos disciplinas de ciências naturais como a estática ou a dinâmica do que os cursos tradicionais de engenharia, salvo cursos que possuem Ciclo Básico. Em vez disso, são ministrados cursos sobre os fundamentos da ciência da computação.
No caso do Brasil, a maioria dos cursos de Engenharia de Computação surgiu como uma especialização do curso de Engenharia Elétrica, e é isto que os diferencia dos cursos de Ciência da Computação. Enquanto em Ciência da Computação existe um foco mais específico em desenvolvimento de software, complexidade de algorítmos, sistemas operacionais, compiladores e bancos de dados, a Engenharia de Computação foca mais em hardware, processos, automação e software embarcado.
Como a graduação em Ciência da Computação começou a surgir no país no final da década de 60 - o primeiro curso de Bacharelado em Ciência da Computação foi criado na Unicamp em 1968 - ocorreu que, em várias universidades que já ofereciam aquele curso, a instauração do curso de Engenharia de Computação seguiu o padrão do MIT. Um exemplo disso é a própria Unicamp, que instaurou duas modalidades de curso: um com ênfase em desenvolvimento de software, ministrado pelo Instituto de Computação, e outro com ênfase em hardware e processos, ministrado pela Faculdade de Engenharia Elétrica e de Computação. Mais tarde, ela voltou a oferecer o curso de Bacharelado em Ciência da Computação - apenas no período noturno.
Outro exemplo recente que seguiu o mesmo modelo é o da Universidade Federal de Pernambuco, que criou a graduação em Engenharia de Computação numa parceria entre o Centro de Informática e o Departamento de Eletrônica e Sistemas, mantendo também o curso original de Bacharelado em Ciência da Computação.
Um caso diferente foi o da Universidade Federal de São Carlos, que possuía duas modalidades do curso de Ciência da Computação: um com ênfase em software e outro com ênfase em hardware. Neste caso, foi mantido o curso original de Bacharelado com ênfase em software, e o curso com ênfase em hardware foi transformado no curso de Engenharia de Computação.
No caso da USP de São Paulo, o curso de Engenharia de Computação foi criado dentro da Escola Politécnica, que já oferecia um curso de Engenharia Eletrônica com ênfase em sistemas, e o curso original de Bacharelado em Ciência da Computação continuou sendo oferecido pelo Instituto de Matemática e Estatística, não havendo qualquer relação entre os dois cursos.

Áreas de Especialização
Arquitetura de computadores;
Banco de dados;
Engenharia de software;
Processamento digital de sinal (DSP)
Redes de computadores;
Sistemas artificiais inteligentes (Computação flexível, inteligência computacional, cognição artificial);

WIKIPEDIA

REALIDADE VIRTUAL

O foco das pesquisas do Núcleo de Realidade Virtual é em sistemas computacionais de alto desempenho para visualização, simulação e interação.
Grande parte dos sistemas utilizados pelo núcleo foram desenvolvidos internamente, gerando uma equipe com alto conhecimento em produção e utilização das mais modernas tecnologias de realidade virtual.

Dentre as principais pesquisas do núcleo, a que mais se destaca é o pioneirismo na produção de aglomerados de computadores (clusters) para a síntese de imagens gráficas de alta qualidade para ambientes imersivos.

O Núcleo também abriga a CAVERNA Digital, uma infra estrutura importante para as pesquisas em múltiplas projeções e ambientes imersivos. O sistema deu ao núcleo pioneirismo em diversas frentes de pesquisa e reconhecimento internacional.

Atualmente, o núcleo conta com uma equipe que trabalha na otimização de aglomerados de computadores convencionais e no desenvolvimento de aplicativos para visualização de estruturas de dados complexas 3D em tempo real.

lsi.ups

Inteligência Artificial

A inteligência artificial (IA) é uma área de pesquisa da ciência da computação dedicada a buscar métodos ou dispositivos computacionais que possuam ou simulem a capacidade humana de resolver problemas, pensar ou, de forma ampla, ser inteligente.

O desenvolvimento da área começou logo após a Segunda Guerra Mundial, com o artigo "Computing Machinery and Intelligence" do matemático inglês Alan Turing, e o próprio nome foi cunhado em 1956. Seus principais idealizadores foram os cientistas Marvin Minsky, Herbert Simon, Allen Newell, John McCarthy, Warren MuCulloch e Walter Pitts, entre outros.

A construção de máquinas inteligentes interessam a humanidade há muito tempo, havendo na história um registro significante de autômatos mecânicos (reais) e personagens míticos, como Frankenstein, que demonstram um sentimento ambíguo do homem, composto de fascínio e de medo, em relação à Inteligência Artificial.

Apenas recentemente, com o surgimento do computador moderno, é que a inteligência artificial ganhou meios e massa crítica para se estabelecer como ciência integral, com problemáticas e metodologias próprias. Desde então, seu desenvolvimento tem extrapolado os clássicos programas de xadrez ou de conversão e envolvido áreas como visão computacional, análise e síntese da voz, lógica difusa, redes neurais artificiais e muitas outras.

Inicialmente a IA visava reproduzir o pensamento humano. A Inteligência Artificial abraçou a idéia de reproduzir faculdades humanas como criatividade, auto-aperfeiçoamento e uso da linguagem. Porém, o conceito de inteligência artificial é bastante difícil de se definir. Por essa razão, Inteligência Artificial foi (e continua sendo) uma noção que dispõe de múltiplas interpretações, não raro conflitantes ou circulares.

Link de um pdf sobre o assunto.