Cursos e Campos de Estudo em CC

sexta-feira, 23 de maio de 2008

Engenharia de software

Engenharia de software é uma área do conhecimento da informática voltada para a especificação, desenvolvimento e manutenção de sistemas de software aplicando tecnologias e práticas de ciência da computação, gerência de projetos e outras disciplinas, objetivando organização, produtividade e qualidade.

Atualmente, essas tecnologias e práticas englobam linguagens de programação, bases de dados, ferramentas, plataformas, bibliotecas, padrões, processos e a questão da Qualidade de Software.

Os fundamentos científicos para a engenharia de software envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software, avaliando e garantindo suas qualidades. Além disso, a engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento de um sistema de informação.


Um bom pdf que trata sobre o assunto. Link

quinta-feira, 22 de maio de 2008

Linguagem de programação

Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias.

O conjunto de palavras (tokens), compostos de acordo com essas regras, constituem o código fonte de um software. Esse código fonte é depois traduzido para código de máquina, que é executado pelo processador.

Uma das principais metas das linguagens de programação é permitir que programadores tenham uma maior produtividade, permitindo expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (código de máquina). Assim, linguagens de programação são projetadas para adotar uma sintaxe de nível mais alto, que pode ser mais facilmente entendida por programadores humanos. Linguagens de programação são ferramentas importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez.

Linguagens de programação também tornam os programas menos dependentes de computadores ou ambientes computacionais específicos (propriedade chamada de portabilidade). Isto acontece porque programas escritos em linguagens de programação são traduzidos para o código de máquina do computador no qual será executado em vez de ser diretamente executado. Uma meta ambiciosa do Fortran, uma das primeiras linguagens de programação, era esta independência da máquina onde seria executada.


História

A primeira linguagem de programação para computadores foi provavelmente Plankalkül, criada por Konrad Zuse na Alemanha Nazista, mas que teve pouco ou nenhum impacto no futuro das linguagens de programação.

A primeira linguagem de programação de alto nível amplamente usada foi Fortran, criada em 1954.

Em 1957 foi criada [B-0], que daria origem a Flow-Matic (1958), antecessor imediato de COBOL, de 1959. Lisp e ALGOL foram criadas em 1958.


Classificação

As linguagens de programação podem ser classificadas e sub-classificadas de várias formas.


Classificação da ACM

A ACM mantém um sistema de classificação com os seguintes sub-itens:

Quanto ao paradigma

Diferentes linguagens de programação podem ser agrupadas segundo o paradigma que seguem para abordar a sua sintaxe:

Quanto a estrutura de tipos

Quanto ao grau de abstração

Quanto à geração

quarta-feira, 21 de maio de 2008

Teoria da Computação



A área de TC (Teoria da Computação) procura fornecer fundamentos matemáticos rigorosos para as diversas áreas da computação.
TC é básica e de fundamental importância para a CC, pois proporciona uma adequada base teórica necessária para um amplo entendimento da ciência envolvida na computação.
A TC introduz conceitos fundamentais que são desenvolvidos em outras áreas. A abordagem de reconhecimento de linguagens é a base de todo o estudo das Linguagens Formais, Semântica Formal, Compiladores, e todo o conjunto de disciplinas que tratam de Linguagens de progamação. Ao introduzir processamento de funções lança a base para o desenvolvimento de algoritmos eficientes, não só na resolução dos problemas, mas também no estudo da otmização de algoritmos (programas).
A complexidade estrutural diz respeito à estrutura de controle adotada e à otmização em termos do número de instruçôes e da eliminação de instruções desnecessárias.
A Complexidade Computacional diz respeito à quantidade de trabalho na resolução do problema pelo algoritmo (tempo). Também se pode considerar a quantidade de memória necessária (espaço), e no caso de processamento paralelo e distribuido, o número de processadores necessários.
Contribuições da Teoria da Computação

No campo cognitivo ( relativo ao conhecimento), TC proporciona mais um estágio na formação do raciocínio lógico, com destaque ao pensamento indutivo ou recursivo. No desenvolvimento de demonstrações e de suas técnicas, não só provas formais, mas também informais. E ainda contribui no desenvolvimento da capacidade de abstração-> princípio da redução de problemas.
Veja neste link da UNICAMP o procedimento para a obtenção do certificado em Teoria da computação.

Links:
Teoria da Computação

Arquitetura de informação

Arquitetura de informação, usualmente abreviada para AI (não confundir com Artificial Inteligence em inglês), consiste na estruturação das informações de sistemas computacionais de forma lógica e na criação de soluções quanto à organização visual destas informações. Envolve a organização do fluxo de informação visando torná-la útil e inteligível. Na Web, envolve também a estruturação do fluxo de navegação de uma página. Une três campos vitais, a tecnologia, o design e produção de texto.


O melhor exemplo sobre Arquitetura da informação que encontrei na net é esse link: http://www.jbruni.com.br/AI/introducao.html


Outro link que é importante http://www.guilhermo.com/. Aonde vc encontra informações básicas sobre a área.

Como é o curso de Ciência da Computação?

A Ciência da Computação abrange uma área de amplo espectro, envolvendo tanto a construção de equipamentos de dispositivos (Hardware) quanto o desenvolvimento de programas (Software). É a este segundo domínio que o bacharelado em Ciência da Computação confere maior ênfase.


O Curso de Ciência da Computação está direcionado para a sólida formação de recursos humanos capazes de promover o desenvolvimento tecnológico da computação e aplicar estas tecnologias aos interesses da sociedade. Ao final do curso, os egressos devem estar aptos a projetar e construir softwares, especialmente aplicativos, utilizando metodologias de análise, projeto e desenvolvimento de sistemas e ferramentas para ambientes computacionais, a fim de solucionar problemas genéricos ou particulares de automação nas mais diversas áreas da atividade humana.

terça-feira, 20 de maio de 2008

Alguns projetos de Ciência da Computação

Encontrei na CAPES (Fundação Coordenação de Aperfeiçoamento de Pessoal de Nível Superior) alguns projetos na área de Cíênica da Computação.


Link: Projeto de Pesquisa

Banco de dados

Bancos de dados (ou bases de dados), são conjuntos de registros dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação. Um banco de dados normalmente agrupa registros utilizáveis para um mesmo fim.

Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD). Normalmente um SGBD adota um modelo de dados, de forma pura, reduzida ou estendida. Muitas vezes o termo banco de dados é usado como sinônimo de SGDB.

O modelo de dados mais adotado hoje em dia é o modelo relacional, onde as estruturas têm a forma de tabelas, compostas por linhas e colunas.


A maneira mais prática de bancos de dados é de acordo com a forma que seus dados são vistos pelo usuário, ou seja, seu modelo de dados. Diversos modelos foram e vem sendo utilizados ao longo da história, com vantagens para um ou para outro por determinados períodos.


Atualmente, a classificação mais comum citaria 3 modelos básicos:



Porém, outros modelos podem ser citados, incluindo:


Sub-áreas que fazem para de Banco de Dados:

Listas do Banco de Dados