terça-feira, 30 de julho de 2019

Sistemas de Computadores




          Sistemas de Computadores        



        REQUISITOS PRÉVIOS         
Para o suceso nesta disciplina é necesário que os estudantes possuam conhecimentos de:
  • Sistemas de Comunicação, especialmente a telefonía
    • Programação de sistemas de computadores
    • Electricidade e Electrónica
    • Teoría de sistema e sinais
    • Arquitectura de Computadores
        FINALIDADE       
Abordar conceitos básicos relacionados com redes de comunicação de dados, desde a simples utilização ao planeamento, projeto e gestão de redes, na dupla vertente de recursos e segurança, permitindo uma melhor apreensão das potencialidades emergentes.

      OBJECTIVOS       
No final desta disciplina, o estudante devera ser capaz de:
    • Planificar e implementar redes de computadores assentes em diferentes plataformas
    • Compreender os conceitos, problemas e soluções relativos à transmissão digital de dados.
    • Analisar e gerir o uso dos protocolos de comunicação de computadores e de aplicações em redes de computadores
    • Gerir e manter redes complexas de informação em Intranet e Internet
    • Desenvolver e testar aplicativos para melhorar o desempenho de sistemas de computadores;

       PROGRAMA DA CADEIRA     
O programa da cadeira será desenvolvido abrangendo as seguintes temáticas:
Introdução sobre os conceitos básicos e definições de sistemas de computadores
  • Introdução a redes de computadores;
  • Componentes básicos de uma rede de computadores;
  • Categoria dos equipamentos de redes;
  • Tipos de redes;
  • Aplicação de redes de computadores;
  • Classificação de redes de computadores;
  • Conceitos de redes de computadores(Internet, Extranet, Internet e Internet 2).

Principais topologias
  • Conceito de topologia;
  • Topologias principais e suas características(BUS, ANEL, Arvore, Estrela, encadeada, Grafo e Híbrida .
Meios de Transmissão
  • Meios de transmissão
    • Físico (Coaxial, UTP blindado e não blindado, Fibra óptica)
    • Lógico (Wireless)

Modelo OSI e TCP
  • Introdução e comparação do modelo OSI com o modelo TCP/IP
  • Endereçamento TCP
    • Endereçamento IP e Classes de IP
    • Notação CIDR
    • Endereços especiais
    • Endereçamento estático e dinâmico
    • Tabelas de roteamento

Protocolos de comunicação Ponto-a-Ponto
Problema: Como fazer com que as aplicações (processos) comuniquem?
  • UDP
  • TCP
  • Remote Procedure Call
  • Desempenho (Latency e Throughput)

Hardware de rede
  • Introdução a dispositivos de redes
  • Características principais
  • Instalação e configuração

Implementação e configuração de Serviços principais de redes
  • DNS
  • Webserver;
  • Mailserver;
  • Proxy Server;

Tecnologias de Acesso a rede
  • Protocolos de roteamento(RIP, BGP, etc)
  • DSL e ADSL
  • Wimax
  • FDDI
  • ATM

Desempenho da Rede
  • Medidas de desempenho
  • Latência
  • Throughput, Capacity, And Goodput
  • Jitter


Segurança de redes de computadores
  • Assegurar que a informação e dados da rede são acedidos pelas pessoas e sistemas autorizados
  • Criptografia
  • Mecanismos de segurança (Protocolos de Autenticação, protocolos de integridade de mensagens, Infra-estrutura de chaves publicas)
  • Exemplos (PEM, PGP, TLS, SSL, HTTPS, IP security-IPSEC)
  • Firewalls
  • Infrastrutura PKI


         ORIENTAÇÃO DO ENSINO        

Nas aulas teóricas far-se-á a exposição e explicação dos vários conceitos, princípios e métodos que norteiam toda filosofia à volta da constituição e funcionamento do computador. As mesmas, são completadas com a resolução de alguns casos ilustrativos. Nos seminários promove-se a discussão dos casos propostos nas fichas de exercícios, sendo os estudantes incentivados a resolver individualmente ou em grupo esses problemas. Aqui dar-se-á maior ênfase ao saber fazer.

As aulas devem ser apoiadas nos meios áudio visuais ao dispor dos professores da cadeira (aulas em PowerPoint e/ou Vídeos).
Módulos de computadores que poderão ser utilizados: placas de memória, placas de redes, motherboard, gabinetes, teclados, quadros, livros, retroprojectores e outros materiais didácticos pertinentes.

Avaliação desta disciplina será feita através de duas frequências (testes), a realizar em datas a serem definidas pelo docente. A classificação final do estudante será calculada considerando um peso de 25% para a participação nos seminários (reflexão dos trabalhos para casa) e, 75% a média aritmética das notas dos dois testes.
Todos os testes serão sem consulta de quaisquer apontamentos. A disciplina consiste em aulas teóricas, teórico-práticas.

  1.            Bibliografia principal          
Nhadumbuque, Geraldo. Fundamentos de Redes de Computadores
MONTEIRO, E. & BOAVIDA, F. : Engenharia de Redes Informáticas. 2ª Edição. FCA - Editora Informática. 2000
SOARES, L. F. G. (at all).: Redes de Computadores. 2ª Edição. Editora Campus. Rio de Janeiro. 1995.
TANENBAUM, A. S.: Computer Networks. 4ª Edição, Amsterdam.
HUNT, C. TCP/IP Network Administration, 2nd Edition, O´Reilly, 1997.

AELLEN, F. Essential System Administration, 2nd Edition, O´Reilly, 1995.

COMER, D. Computer and Networks, Prnetice Hall, 1997.

COMER, D. Internetworking with TCP/IP, V. 1, Prentice Hall, 1992. 


Recomenda-se também a consulta aos seguintes livros:
W. Stellings, Cryptography and Network Security: Principles and Practices. 3rd Edition, Prentice-Hall, 2003. ISBN: 0-13-091420-0
Huston, G.,ISP Survival Guide – Strategies for Running a Competitive. ISP, John Wiley, New York, USA, 1999.
Courcoubetis, C., Weber, R., Pricing Communication Networks: Economics, Technology and Modelling, John Wiley, Sussex, England, 2003.
Louis, P., Telecommunications Internetworking, McGraw- Hill, New York, USA, 2000.


         AULAS        
  • Aula 00/01 Introdução à Redes de Computadores



Share:

Protocolos de Comunicação



          Protocolos de Comunicação        

        Introdução    

No domínio das redes de computação, um protocolo é um conjunto de especificações objetivas que os computadores entendem. Tecnicamente, é um conjunto de regras-padrão que caracterizam o formato, a sincronização, a sequência e, ainda, a deteção de erros e falhas na comutação de pacotes, isto é, na transmissão de informação entre computadores. Assim, dois ou mais computadores, para comunicarem numa rede, têm de falar a mesma linguagem, ou seja, usar o mesmo protocolo.

       Objectivos    
  • Explicar o que são e como funcionam os protocolos de comunicação;
  • Expor o impacto, características e limitações dos protocolos das camadas de rede e de transporte.
       Programa temático    
  • Introdução a redes de computadores
  • Protocolos: Conceitos básicos 
  • Arquitectura dos protocolos de comunicações 
  • Modelo TCP/IP 
  • IPX /SPX 
  • NetBEUI 
  • APPLETALK
  • X.25
  • Frame Relay
  • ATM
  • IGP 
  • EGP 

           Avaliação    

    A avaliação desta disciplina será feita através de três avaiações (testes):
    • Teste 1 (24-09)
    • Teste 2 (22-10)
    • Trabalho prático.

    A classificação final será calculada considerando um peso de 25% para a participação nos seminários, trabalhos práticos, 75% a média simples das notas dos dois testes. 


           Bibliográfia    

    CARVALHO, J. E. M.: Introdução às Redes de Micros. São Paulo, Makron Books. 1998

    PEREIRA, J. P.: Tecnologias de Bases de Dados – 2a Edição. FCA- Editora de Informática. 1998


    STANEK, W. R.: Microsoft Windows 2000 Administrators Pochet Consultant, Second Edition. 2000

           Aulas    

    • Aula 00/01 Introdução à Redes de Computadores


    Share:

    Protocolos de Comunicação Aula 01


    Protocolos de Comunicação


    Share:

    terça-feira, 7 de maio de 2019

    Noção de Pesquisa



    Noção de Pesquisa


    Share:

    segunda-feira, 6 de maio de 2019

    Validação de formulários


              Validação de formulários/Form Validation

    A validação de formulários é uma parte muito importante na programação web, pois permite efectuar a verificação da "sintaxe se dados" ou a formatação básica dos dados, de modo a evitar que dados inválidos sejam submetidos a base de dados, minimizando desta forma a ocorrência de erros e garantir uma maior consistência nos dados.  

    Atributo required

    Atributo required pode ser definido no javascript 

              var x = document.getElementById("text").required  

    ou

         var x = document.getElementById("text").required = true;  

    O atributo required pode ser definido no elemento html da seguinte forma:


         <input type="text" name="name" required="true">        

    Com esta sso informa ao navegador da Web (com reconhecimento de HTML5) que o campo deve ser considerado de preenchimento obrigatório. 

    Exemplo:

    Efectue a validação básica dos seguintes campos:
    Nome
    E-mail
    Código Postal
    Pais
    Código HTML:




    Código JS para efeitos de validação:





                Exercícios 

    Usando JavaScrip:

    1. Formate o campo nome apenas para permitir no mínimo 10 caracteres;
    2. Formate o campo e-mail para verificar se o texto inserido no campo e-mail possui o simbolo @ e ponto(.).



                References  

    https://www.the-art-of-web.com/html/html5-form-validation/
    https://www.tutorialspoint.com/javascript/javascript_form_validations.htm






    Share:

    Estruturas


                Estruturas em C             

    Um vector é uma colecção de variáveis de um mesmo tipo, que compartilham o mesmo nome e que ocupam posições consecutivas de memória.

    Estruturas em C exercem um papel fundamental por permitir agregar vários tipos de dados. São a base para criação de objetos e classes em C. Estruturas são usadas para representar um registo. Suponha que você queira armazenar dados de aluno. Poderá precisar de seguintes atributos: nome, disciplina, teste1, teste2, etc.
    Para este cenário é mais fácil representar usando estruturas:

    struct ficha_de_aluno
      {
        char nome[50];
        char disciplina[30];
        float teste1;
        float teste2;
      };

    Sintaxe:

        struct nome 
        {
            tipoDado identificador;
            tipoDado identificador1;
            ...
         };
    Onde:
        nome - é o nome da estrutura
        tipoDado - é o tipo de dado da váriavel que pode ser do tipo numérico, literal ou vector.
        identificador - é o nome da variavél.

    Após a definição da estrutura é necessário declarar associando a estrutura a um identificador da seguinte maneira:
                  struct nome varEstr;    ou  struct nome varEstr1, varEstr2;

    Inicialização:
    Tal como as variáveis as estruturas podem ser inicializadas da seguinte forma:
         struct nome varEstr = { valor1, valor2 };

                        ou

       struct nome varEstr;
           varEstr.atributo = valor1;
           varEstr.atributo2 = valor2;
      
                
    Exemplo1:

           struct Docente
        {
            char nome[50];
            int codigo;
            float salario;
        };

        int main()
        {
            struct Docente Docente1, Docente2, p[20];
        return 0;
    }

    Exemplo2
    Crie uma estrutura que permite exibir a data no formato Maio, 31 de 2020.
    #include <stdio.h>
    int main (void){    
            struct data{
            char mes[20];
            int dia;
            int ano;
        };    
    
        struct data hoje;
        strcpy(hoje.mes,"Maio");
        hoje.dia = 25;
        hoje.ano = 2020;
        printf (" Hoje é dia: %s %d %.2i.\n", hoje.mes, hoje.dia,hoje.ano);
       
     return 0;
    }
    A primeira instrução dentro de main define a estrutura chamada data, composta por  um valor do tipo char e dois inteiros. Os membros são mes, dia e ano. Na segunda declaração, a variável hoje é declarado como sendo do tipo struct. A primeira instrução simplesmente define a data. A segunda instrução declara que uma variável é do tipo struct data e, portanto, faz com que a memória seja reservada para armazenar os três valores, um do tipo char dois do tipo inteiro.

    Estrutura e expressões



    Algumas caracteristicas:
    • Elementos da estrutura podem ser acedidos apartir de qualquer local, desde que respeite o seu escopo.
    • Funções e estruturas - A linguagem C não permite funções dentro de estruturas.
    • Elementos estáticos - estruturas não podem conter elementos estáticos.
    • Modificadores de acesso - As estruturas não podem conter modificadores de acesso nem constructores


    Exemplo2:

    Neste exemplo, primeiro cria-se uma variável do aluno do tipo struct ficha do aluno, e o comando fgets(), stdin corresponde a entrada padrão via teclado.


    Video aula: 
     




    Exercícios
    Usando estruturas resolva os seguintes exercícios.
    1. Estrutura que permite exibir a data no formato Maio, 31 de 2020.
    2. Programa que solicita a data de hoje e exibe a data do dia seguinte no formato mm dd yyyy.
    3. Programa que recebe o nome e salário de vários funcionários e exibir na tela.


    Referencias
    https://www.programiz.com/c-programming/c-structures
    https://www.geeksforgeeks.org/structures-c/
    Share:

    Ponteiros


    Programação em C/C Programming

          Ponteiros



     Algumas tarefas de programação na linguagem de programação C, são executadas com maior facildade recorrendo a ponteiros e outras tarefas.
    Os ponteiros também são variáveis e desempenham um papel muito importante na linguagem de programação C. Eles são usados por vários motivos, como:

    • Strings
    • Alocação de memória dinâmica
    • Enviando argumentos da função por referência
    • Construindo estruturas de dados complicadas
    • Apontando para funções
    • Construindo estruturas de dados especiais (ou seja, árvore, tentativas, etc ...)
    • E muitos mais.



              O que é um ponteiro? 


    Um ponteiro é essencialmente uma variável inteira simples que contém um endereço de memória que aponta para um valor, em vez de manter o próprio valor real.

    A memória do computador é um armazenamento sequencial de dados e um ponteiro aponta para uma parte específica da memória. Nosso programa pode usar ponteiros de tal forma que os ponteiros apontem para uma grande quantidade de memória - dependendo de quanto decidimos ler a partir desse ponto.


              Declaração de ponteiros 

    Um ponteiro é uma variável cujo valor é o endereço de outra variável, ou seja, o endereço da memória. Como qualquer variável ou constante, você deve declarar um ponteiro antes de usá-lo para armazenar qualquer endereço variável. A forma geral de uma declaração de variável de ponteiro é:

    sintaxe:

        tipo *nome_variavel;

    Exemplos:
       int *n;     
       double *n1;
       float *n2;
       char *sexo;

    Exemplo:


          Problemas com ponteiros 

    Problemas com ponteiros de tipos incompatíveis.



    A saída do programa é 42 4142 FFDA4142 . O acesso a partir de b é o único que consegue recuperar o dado corretamente. Através do ponteiro a, obtém-se apenas metade do valor e através de c, o dado é recuperado com lixo.



          References 

    https://www.tutorialspoint.com/cprogramming/c_pointers.htm
    https://www.learn-c.org/en/Pointers
    Share:

    Seguidores

    Visitantes do blog

    Pesquisar neste blogue

    posts recentes

    Traduzir