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.
 

1 post - Apresentação e aula de Leila

By Fundamentos da Computação 2009.1
Bom, como essa é a primeira postagem, irei me apresentar. Sou Matheus Amazonas, 18 anos, estudante do 1º período de Ciência da Computação na Universidade Federal de Sergipe (UFS). Nasci e sempre morei em Aracaju, e estudei no Master.Não nasci apaixonado pela computação, mas desde pequeno tenho coputador em casa, e aprendi mexendo mesmo - as vezes quebrando. Não tenho muito conhecimento em programação, mas estou disposto a aprender.

Como pedido pelo professor, vou falar hoje sobre a aula de Leila:

Profª Leila é coordenadora do curso de CC, e também professora. As 3 palestras dela ao longo da 1ª semana serviram para nos situar na UFS, entender alguns de seus órgaos e nos apresentar o curso. Sobre os cursos oferecidos pela UFS na área de computação:
  • Sistema de Informação: apresenta o aluno as linguagens de programação, aprende uma parte de computação, mas também com algumas matérias de Administração, voltadas para gestão e abbiente empresarial. Nesse curso, você é voltado para empresas, podendo o formando programas de forma básica, mas não desenvolver softwares mais complicados.
  • Ciência da Computação: forma engenheiros de Software, pessoas perfeitamente capazes de criar qualquer programa, lidar com qualquer sistema. Tem sua base teória em cálculos, algumas disciplinas teóricas, tendo disciplinas de Matemática, mas não tendo de Administração. É o curso onde a programação, linguagens, compiladores e sistemas operacionais são vistos com mais enfoque.
  • Engenharia da Comptação: trabalha com a parte da informática voltada par Hardware, utilizando linguagens de mais baixo nível (mais próximas do hardware) e tem algumas disciplinas de Engenharia Elétrica. Forma pessoas capazes de criar novos chips, e peças para computadores, capazes também de programá-los.
Sobre as entidades da UFS :
  • Reitoria: maior autoridade na UFS, onde se encontra o reitor e lida com a parte administrativa da universidade, como estrutura, novos cursos, verbas liberadas.
  • DAA: Departamento de Adminsitração Acadêmica - cuida (como o próprio nome sugere) dos assuntos acadêmicos.
  • DCOMP: é o Departamento de Computação, que engloba os 3 cursos. Ele que cuida dos assuntos desses cursos, desde equipamentos dos laboratórios até professores. É na secretaria do departamento onde você procura várias informações.
  • DCE: Diretório Central de Estudantes: é o centro estudantil da UFS, é lá onde se organizam reuniões, decicões e de onde parte todo assunto direcionado ao DAA ou Reitoria. É o órgao que representa todos estudantes.
  • CALICOMP - Centro Acadêmico Livre de Computação: é quem representa os alunos do DCOMP, estando ligado ao DCE. Qualquer problema deve ser comunicado a ele primeiro para então ser repassado.
  • SofTeam - Software Team: é a empresa Júnior (a mais antiga da UFS por sinal). É lá onde os alunos podem aplicar seu conhecimento, exercitando em forma de projetos remunerados. Projetos esses podendo ser encomendados pela propria UFS ou por outras empresas. É onde o aluno também aprende a interagir numa empresa e a trabalhar no mercado.
Fora da UFS, também exista a SBC (Sociedade Brasileira de Computação), que serve para manter informados pesquisadores, professores e alunos nessa área. Cadastrando-se no site, você passa a receber "jornais" periódicos com artigos publicados, pesquisas a se iniciarem e eventos nacionais que irão acontecer. Tem como objetivos o incentivo à pesquisa científica, se preocuar com a política que afeta a área de Computação, a promoção do Congresso Nacional da SBC, e incentivar outros congressos, reuniões, tudo isso visando a divulgação da ciência e os interesses da comunidade de Computação.

Sobre o curso, Leila nos mostrou que ele tem suas dificuldades, mas se você tiver disciplina e determinação, não terá problemas.
Sobre o histórico do curso: foi implantado na UFS em 1991, ainda sem estrutura e tendo dificuldades com professores. Só pro curiosidade: Monteiro é um dos fundadores do DCOMP.

Enfim, acho que é isso.