Fundamentos da Computação - Matheus Amazonas
Blog da Matéria Fundamentos da Computação 2009.1 de Matheus Amazonas

Linguagens de Programação

By Fundamentos da Computação 2009.1
Neste post, irei comentar sobre 2 linguagens que escolhi: Ruby e HTML

Ruby

O Ruby ganhou espaço quando Dave Thomas e Andrew Hunt, conhecidos como "Programadores Pragmáticos", adotou-a como uma de suas linguagens preferidas. Originalmente criada por Yukihiro “matz” Matsumoto, que tentou unir caracteristicas de suas linguagens preferidas, ela á uma linguagem interpretada, orientada a objetos, de alto nível, com uma tipagem dinâmica, mas forte. Tem uma sintaxe muito enxuta, dispensando o uso de colchetes e outros caracteres. Tem como foco na simplicidade e produtividade.
Tendo uma aplicação muito geral, desde editores de texto até aplicações em Iphone, a Ruby se diferencia das outras linguagens por tratar tudo, até um número inteiro, como um objeto. Tem uma sintaxe que as vezes chega a ser engraçada. Pode-se modificar qualquer aspecto, podendo até trocar comados ou operadores, como por exemplo, o operador "+" por "plus".

HTML

O HTML não é uma linguagem de programação em si. É uma linguagem interpretada voltada para web, na parte de desenvolver páginas, sendo os navegadores seus interpretadores. Tem como característica uma linguagem formada não por blocos, mas por marcadores - ou etiquetas. A tecnologia nasceu do casamento entre HyTime e SGML. Por não ser uma linguagem de programação propriamente dita, não existem programas ou APIs desenvolvidos em HTML, mas é infinito o número de sites e páginas baseados nessa tecnologia.
Por ser uma das linguagens mais utilizadas hoje em dia, é muito grande o número de editores de HTML, sendo que um site pode ser desenvilvido até num simples bloco de notas. Por ser interpretada, esta linguagem não requer um compilador.
Um documento básico em HTML é dividido em: cabeçalho e corpo, onde no corpo é que fica o conteúdo em si - imagens, textos, e sua principal característica: hiperlinks.
É uma linguagem imperativa e linear.
-----------------------------------------
Fontes:
http://pt.wikipedia.org/wiki/Ruby_(linguagem_de_programação
http://pt.wikipedia.org/wiki/Html
http://www.ruby-lang.org/pt/
Material do Curso Joomla! da Softeam
 

Regulamentação da profissão

By Fundamentos da Computação 2009.1
Neste post falarei das leis, da posição da SBC e opinarei sobre a Regulamentação das Profissões ligadas à Informática

Para a SBC, a profissão precisa ser regulamentada, mas não necessita da criação de conselhos estaduais ou municipais, e memso criados, não podem limitar os profissionais. A SBC, depois de váriso debates sobre o assunto em vários Congressos e Simpósios decidiu criar uma proposta de projeto de lei, que se transformou no projeto de lei n°1561 abaixo descrito:

Para o projeto de lei n°1561 do ano de 2003, qualquer cidadão é livre para exercer uma profissão na área de Informática e o exercício é livre de conselhos, ou seja: conselhos estaduais não poderão limitar a liberdade de exercício da profissão. Embora, é direito do contratante exigir diploma ou certificado.

Opondo-se a SBC e ao PL 1561, existem os projetos de lei 11569, o PL 7232/2006 e o PLS 607/2007.

De Acordo com o PL n°11569 do ano de 2007, só poderão exercer a profissão de Analista de Sistemas quem tiver diploma ou exerceu no mínimo por 5 anos essa profissão. Para Técnico em Informática, também com diploma ou ceritificado, ou exerceu função por no mínimo 4 anos.
Dessa maneira, o PL (projeto de lei) pretende regulamentar as profissões ligadas à Informática e estabelecer um padrão dos profissionais. Logo, quem não é formado e aprendeu como dar manutenção em um computador sozinho, não pode exercer a profissão de técnico, tendo que estudar em uma escolá técnica e pegar um certificado ou diploma para então exercê-la.


Tenho que, devem ser criados conselhos estaduais na Área de Informmática, mas somente para defender os interesses dos profissionais da área. Cabe à sociedade e a população julgá-los capazes -ou não - de exercer tais funções. Logo a profissão deve ser livre, mas com regulamentação.
 

Assembler e Debug

By Fundamentos da Computação 2009.1

Neste tópico falarei de linguagem assembler e do arquivo Debug.exe.

Assembler: é uma linguagem de baixo nível, com interpretação difícil, se aproximando da linguagem de hardware. O básico dela é mover dados para lugares na memória como o exemplo proposto  pelo professor:

0CF2:0100 mov cx, 100
0CF2:0103 mov ah, 2
0CF2:0105 mov dl, cl
0CF2:0107 int 21
0CF2:0109 loop 103

Na primeira parte (em destaque) de todos os comandos, está o endereçoda memória (parte em hexadecimal e parte em decimal) onde o trabalho será executado.

O comando "mov" vai levar um valor até o registrador "cx". No 1 Caso é o valor 100.
O comando "int" executa uma interrupção do tipo 21.
O comando "loop" pula para um endereço da memória.

Logo:
No contador cx (que se divide em cl e ch) ele coloca o valor 100
No contador ah, ele coloca o valor 2
Pega o valor de dl e coloca em cl
Faz uma interrupção.
Vai pro valor na memória 103

Obs: CX é um registrador do tipo contador, DX é um registrador de dados, AX é um registrador acumulador


Debug é um programa que pode acessado pelo MS-DOS, por linha de comando. Ele tanto serve para lê a memória e procurar erros e os corrige, como também serve para programar em linguagem assembler.

 

5 post - Conhecendo meu Computador

By Fundamentos da Computação 2009.1
ESTE POST SERÁ REFORMULADO, AGUARDE.

Lista dos itens do Setup da BOIS:
  • First/Second/Third Boot Devide
    -Indica a ordem dos dispositivos que serão acessados procurando um SO
  • Current CPU Temperature
    - informa temperatura do processador
  • Current System Temperature
    - informa a temperatura do sistema
  • Current FAN Speed
    - informa a velocidade do cooler do processador
  • IDE Primery/Secondary Master/Slave
    - informa os dispositivos de armazenamento/leitura e estão conectados como principal/secundário
  • CPU Internal Cache
    - informa qual o tamanho da memória cache do processador
  • Sistem Memory
    - indica a quantidade de memória disponível no sistema
  • AGP Aperture Size
    - indica o tamanho da memória da placa de vídeo
  • Set Password
    - grava a senha para acesso ao setup
  • Reset Configuration Data
    - reseta as configurações para as de fábrica
  • DRAM Speed
    - indica a frequência da memória
  • CPU Frequency
    - indica a frequência do processador
  • System Bus Speed
    - indica a frequência do barramento
  • CPU voltage
    - indica a voltagem que passa pelo processador
  • System Date/Time
    - indica hora e data gravados na bios
  • Shutdown Temperature
    - indica a temperatura maxima q o processador desliga, para proteção
  • Save and Exit
    - salva as configurações alteradas e reinicia o computador
 

4 Post - SBC

By Fundamentos da Computação 2009.1
Esse 4 post sera sobre a palestra do professor Rogério sobre a SBC (Sociedade Brasileira de Computação)


1 - Introdução
A SBC é uma instituição sem fins lucrativos fundada em 1978 que tem por finalidade reunir os profissionais, estudantes e professores na área de computação, seja por jornais trimestrais, encontros ou debates. Dentre esses encontros destaca-se o Congresso da Sociedade Brasileira de Computação (CSBC) que acontece anualmente - este ano aconteceŕa em Bento Gonçalves.

Outros eventos também organizados pela SBC são workshops, palestras, maratonas de programação e olimpiadas de informática. Os mais importantes:


  • ERBASE - Escola Regional de Computação Bahia,Sergipe e Alagoas.

  • WTICG - Workshop de Trabalhos de Iniciação Científica

2 - Estrutura
A SBC é tem a segunite estrutura administrativa e representativa:


  • Presidente e Vice;

  • Diretorias (nas diversas áreas)

  • Conselho (com 10 membros titulares e 5 suplentes);

  • Assembléia Geral

  • Secretarias regionais (Sergipe está na Nordeste 3 juntamente com Alagoas e Bahia)

  • Comissões Especiais (Em todos as áreas: Bando de Dados, Engenharia de Software, Inteligência Artificial,Computação Gráfica....)
Existem simpórios anuais de todas as áreas das comissões especiais para discutir problemas e novidades em cada área.

3 - Associação
Ao associar-se na SBC (pagando uma taxa), você tem as seguintes vantagens:

São benefícios comuns a todas as categorias de sócios:



  • Entrar para o nosso cadastro ativo;

  • Participar de todas as discussões de matérias em pauta nas Assembléias da SBC;

  • Ter acesso aos documentos oriundos da diretoria da SBC e destinados a órgãos públicos ou privados, expressando posições políticas da Sociedade;

  • Receber a revista Computação Brasil, publicação jornalística da SBC;

  • Inscrever-se na lista eletrônica de discussão sbc-l, assim como nas listas eletrônicas de discussão específicas das comissões especiais da SBC;

  • Ter desconto na inscrição do congresso anual, dos simpósios, das escolas regionais e dos demais eventos promovidos pela SBC.
Fonte: http://www.sbc.org.br/index.php?language=1&subject=105

4 - Desafios
Exis
tem 5 desafios propostos pela SBC em 2006 com um prazo de 10 anos para serem atingidos. São eles:


  1. Gestão de Informação em grandes volumes de dados multimídias distribuídos;

  2. Modelagem Computacional de Sistemas Complexos artificiais, naturais e socio-econômicos;

  3. Impactos para a área da computação da transição do silício para as novas tecnologias (hardware);

  4. Acesso participativo e universal do cidadão brasileiro ao conhecimento. (inclusão digital);

  5. Desenvolvimento tecnológico de qualidade: sistemas disponíveis, corretos, seguros, escaláveis, persistentes e ubíquos (funcionar em qualquer lugar, bem e sempre)
Aí se encaixa a pergunta proposta pelo professor Uriel:
As graduações em computação estão preparadas para formar pessoas capazes de dar conta de tais desafios?
Acredito que sim, a grade curricular do curso de Ciência da Computação na UFS pro exemplo, tem cadeiras, condições e estímulos para esses desafios serem cumpridos. Os desafios são perfeitamente possíveis, dependendo dos alunos, professores e governo.

Outra pergunta proposta:
A que áreas do conhecimento humano diz respeito o desenvolvimento da área de Computação?
Atualmente, quase todas. O avanço tecnológico abandonou a área de diversão e computadores familiares e avançou para muitas outras áreas. Dentre elas: Medicina, todas as Engenharias, Música, Matemática, Física, Direito....quase infinitas. Hoje por exemplo, a digitalização de processos do TRT (Tribunal Regional do Trabalho) é uma realidade que economiza tempo, papel, e burocracia. A "superdigitalização" vem ajudando todos os ramos das ciências.
 

3 Post - Lógica

By Fundamentos da Computação 2009.1
O termo lógica tem um significado vasto. Dentre outras palavras para definir-la podemos usar: pensamento, idéias, razão lógica, argumentos e relatos. Tendo sua base na matemática mas fortemente ligada à Filosofia onde tem por objetivo garantir que pensemos corretamente para chegar a conclusões verdadeiras.

Aristóteles
Em seu conjunto de 6 obras conhecido como 'Organon', Aristóteles (considerado o maior lógico de todos os tempos) vê a lógica como um instrumento, uma introdução para o saber, tendo verdades para contrução do conhecimento. Tem como sua base o silogismo - teoria que chega a uma conclusão através de 2 premissas (ou proposições). Como clássico exemplo temos:
Todo grego é homem
Todo homem é mortal

Logo, tendo as premissas como verdade, com certeza a afirmação será também verdadeira:
Todo grego é mortal.
Assim, nasce a lógica clássica - e considerada por ele perfeita.

George Boole

Criador da Álgebra Booleana, muito usada na matemática e Ciência da Computação. Baseia-se nos conectivos lógicos E, OU e NÃO (denotados por ∧,∨ ¬), ainda muito usados hoje. A álgebra booleana mais importante só tem valores verdadeiros ou falsos (1 e 0) para suas proposições. Tendo como exemplo o silogismo de Aristóteles:
Todo grego é homem <- denotaremos como "a"
Todo homem é mortal <- denotaremos como "b"

A conclusao: Todo grego é mortal <-denotaremos como "c"

Logo: a e b são verdades (1):
a =1
b=1
então: a ∧ b também é uma verdade: a ∧ b = c, c=1
Concluimos que "c" é verdadeiro.

Gottlob Frege
Criador da Lógica Matemática Moderna, sempre trabalhou na fronteira entre Matemática e Lógica, sendo considerado, depois de Aristóteles, o maior lógico do mundo. A grande contribuição de Frege para a lógica matemática foi o criação de um sistema de representação simbólica para representar a estrutura dos enunciados lógicos e suas relações. A mairo preocupação dele era em sistematizar o raciocínio matemático, contrariamente a Aristóteles. Observando que os matemáticos da época cometiam erros na demonstração de seus teoremas, Frege resolveu formalizar as regras de demonstração, iniciando com regras elementares, bem simples, que em sua aplicação não restassem dúvidas.
----------------------------------------
Fontes: http://pt.wikipedia.org/wiki/L%C3%B3gica
http://www.pucsp.br/~logica/
 

2 post - Perfil

By Fundamentos da Computação 2009.1
Qual o perfil de um aluno de CC ?
É quem se sente confortável com cálculos, e principalmente em trabalhar na frente de um computador. Disciplina, determinação e atitude proativa são essenciais no curso, que tem fama de reprovar muitos alunos. O Ciencista da Computação tem que ser um cara curioso, atento a tudo em volta e ter capacidade de seguir lógicas, pois sem isto não existe programação.

O que espero do curso ?
Sair como um Engenheiro de Software, capacitado para desenvolver qualquer programa. Espero terminar não sabendo todas linguagens possíveis, mas tendo uma base para aprender todas existentes e poder desenvolver sistemas operacionais. Quero muito terminar o curso, fazer um Mestrado e se possível Douturado. Senti muita atração por Inteligência Artificial e Engenharia de Software.