-
1º Semestre
-
Fundamentos de Programação
- Lógica de programação: Compreensão da estrutura lógica que orienta a resolução de problemas por meio da programação.
- Algoritmos: Desenvolvimento de sequências de passos para solucionar problemas e realizar tarefas computacionais.
- Linguagens de programação: Introdução às linguagens de programação, como Python, Java, C++, entre outras, e suas sintaxes básicas.
- Variáveis e tipos de dados: Conceitos sobre variáveis, tipos de dados (inteiros, caracteres, booleanos, etc.) e como usá-los em programas.
- Estruturas de controle: Conhecimento de estruturas condicionais (if-else) e de repetição (loops) para controlar o fluxo de execução do programa.
- Funções: Aprender a criar e utilizar funções, que são blocos de código reutilizáveis que podem ser chamados em diferentes partes do programa.
- Resolução de problemas: Desenvolvimento de habilidades para quebrar problemas complexos em etapas menores e abordá-los de forma mais organizada e eficiente.
-
Lógica de Programação
- Algoritmos: Sequências de passos lógicos para resolver problemas e realizar tarefas computacionais.
- Variáveis: Espaços na memória para armazenar dados que serão utilizados pelo programa.
- Tipos de Dados: Definição dos diferentes tipos de informações que podem ser manipuladas pelo programa, como números inteiros, números de ponto flutuante, caracteres, booleanos, etc.
- Operadores: Símbolos utilizados para realizar operações matemáticas e lógicas, como adição, subtração, multiplicação, igualdade, etc.
- Estruturas Condicionais: Uso de comandos como "if", "else" e "else if" para permitir que o programa tome decisões baseadas em condições específicas.
- Estruturas de Repetição: Utilização de loops, como "while" e "for", para repetir um conjunto de instruções até que uma condição seja satisfeita.
- Sub-rotinas: Criação de blocos de código reutilizáveis, chamados de funções ou procedimentos, para modularizar o programa.
-
Matemática Aplicada
- Modelagem matemática: Criação de modelos matemáticos para representar situações do mundo real e prever comportamentos futuros.
- Análise de dados: Utilização de técnicas estatísticas para analisar grandes conjuntos de dados e extrair informações relevantes.
- Otimização: Aplicação de métodos matemáticos para encontrar a melhor solução possível para um problema, sujeito a restrições específicas.
- Teoria das probabilidades: Estudo de eventos aleatórios e cálculo de probabilidades para auxiliar na análise de risco e incerteza.
- Equações diferenciais: Utilização de equações diferenciais para modelar fenômenos que envolvem taxas de mudança.
- Processos estocásticos: Estudo de sistemas que evoluem aleatoriamente ao longo do tempo.
- Dinâmica de sistemas: Análise do comportamento de sistemas complexos ao longo do tempo.
-
Arquitetura de Computadores
- Unidade Central de Processamento (CPU): Estudo da CPU, que é responsável por executar as instruções dos programas e realizar operações lógicas e aritméticas.
- Memória: Compreensão dos diferentes tipos de memória utilizados em computadores, como memória RAM, memória cache e memória secundária.
- Barramentos: Estudo dos caminhos de comunicação entre os componentes do computador, como barramento de dados, barramento de endereços e barramento de controle.
- Conjunto de Instruções: Análise das instruções que a CPU pode executar e como elas são codificadas.
- Hierarquia de memória: Compreensão da organização hierárquica da memória, visando o acesso mais rápido e eficiente aos dados.
- Periféricos: Estudo dos dispositivos de entrada e saída que permitem a interação do computador com o mundo externo, como teclado, mouse, monitor, impressora, etc.
- Arquiteturas paralelas e distribuídas: Introdução a conceitos de processamento paralelo e distribuído para melhorar o desempenho dos computadores.
- Organização e interconexão de componentes: Compreensão da organização geral do computador e a interconexão entre seus componentes principais.
-
Comunicação e Expressão
- Comunicação verbal: Desenvolvimento das habilidades de fala e expressão oral, incluindo a capacidade de articular ideias de maneira coerente e persuasiva.
- Comunicação escrita: Aprendizado de técnicas para redigir textos claros, organizados e gramaticalmente corretos, tais como ensaios, relatórios e e-mails profissionais.
- Leitura e interpretação de textos: Desenvolvimento da capacidade de compreender e analisar textos diversos, identificando pontos-chave, argumentos e estrutura.
- Linguagem adequada: Instrução sobre o uso apropriado da linguagem, considerando o público-alvo e o contexto da comunicação.
- Apresentações em público: Treinamento para falar em público com confiança, organização e clareza.
- Escrita acadêmica: Introdução às normas e convenções da escrita acadêmica, como citações e referências bibliográficas.
- Comunicação não verbal: Exploração da importância da linguagem corporal, gestos e expressões faciais na comunicação efetiva.
-
2º Semestre:
-
Programação Orientada a Objetos
- Classe: É uma estrutura que define um tipo de objeto. Ela contém atributos (variáveis) que representam os dados do objeto e métodos (funções) que definem o comportamento do objeto.
- Objeto: É uma instância de uma classe, ou seja, um objeto é criado a partir da definição da classe e representa uma entidade real ou conceitual com seus dados e comportamentos.
- Encapsulamento: É o conceito de ocultar os detalhes internos de uma classe e permitir o acesso aos dados e comportamentos apenas através de interfaces bem definidas.
- Herança: É a capacidade de uma classe herdar atributos e métodos de outra classe, permitindo a criação de hierarquias de classes.
- Polimorfismo: Permite que objetos de diferentes classes sejam tratados de forma uniforme, através do uso de interfaces comuns ou sobrecarga de métodos.
-
Banco de Dados
- Tabelas: As informações são organizadas em tabelas, que são estruturas retangulares compostas por linhas (registros) e colunas (atributos).
- Registros: Cada linha em uma tabela representa um registro individual contendo um conjunto de informações específicas.
- Atributos: As colunas de uma tabela representam os atributos ou características dos registros, como nome, idade, endereço, etc.
- Chaves: Uma chave é um atributo que identifica de forma única cada registro em uma tabela. Chaves primárias são utilizadas para identificação única, enquanto chaves estrangeiras estabelecem relações entre diferentes tabelas.
- Linguagem SQL: É uma linguagem de consulta que permite acessar, inserir, atualizar e excluir dados em bancos de dados relacionais.
- Modelo Relacional: É um modelo de banco de dados que representa as relações entre diferentes tabelas por meio de chaves primárias e estrangeiras.
- Normalização: É o processo de organização de tabelas em bancos de dados para evitar redundância e inconsistência de dados.
-
Estrutura de Dados
- Listas: Sequências ordenadas de elementos, onde cada elemento pode ser acessado por sua posição na lista.
- Pilhas: Uma coleção de elementos organizados em uma ordem específica, onde o último elemento adicionado é o primeiro a ser removido (LIFO - Last In, First Out).
- Filas: Uma coleção de elementos organizados em uma ordem específica, onde o primeiro elemento adicionado é o primeiro a ser removido (FIFO - First In, First Out).
- Árvores: Estruturas hierárquicas compostas por nós, onde cada nó possui um ou mais nós filhos.
- Grafos: Conjuntos de nós (vértices) conectados por arestas, representando relações entre os elementos.
- Tabelas Hash: Estruturas que mapeiam chaves a valores, permitindo acesso rápido aos dados através de uma função de hash.
- Listas Ligadas: Sequências de elementos, onde cada elemento contém uma referência ao próximo elemento na sequência.
-
Sistemas Operacionais
- Gerenciamento de Processos: O SO gerencia a execução dos processos (programas em execução) e coordena o compartilhamento de recursos do sistema entre eles.
- Gerenciamento de Memória: É responsável por alocar e desalocar memória para os processos e garantir a proteção dos espaços de memória uns contra os outros.
- Gerenciamento de Dispositivos: Controla a comunicação entre o software e os dispositivos de entrada e saída, permitindo que os aplicativos interajam com o hardware.
- Sistema de Arquivos: Gerencia a organização e o acesso aos dados armazenados em dispositivos de armazenamento, como discos rígidos.
- Interface de Usuário: Fornece uma interface gráfica ou de linha de comando para os usuários interagirem com o sistema e os aplicativos.
- Segurança: Implementa mecanismos de segurança para proteger os dados e garantir que os recursos do sistema sejam utilizados de forma autorizada.
- Agendamento de Processos: Decide qual processo será executado e por quanto tempo, otimizando o uso da CPU e garantindo que todos os processos sejam atendidos.
-
Redes de Computadores
- Protocolos: São conjuntos de regras e convenções que governam a comunicação entre os dispositivos na rede. Exemplos incluem o protocolo TCP/IP, usado na Internet, e o protocolo Ethernet, utilizado em redes locais.
- Roteadores e Switches: São dispositivos de rede que encaminham dados entre os diferentes segmentos da rede. Os roteadores conectam redes diferentes, enquanto os switches conectam dispositivos dentro da mesma rede.
- Topologias de Rede: Refere-se à estrutura física ou lógica da rede, como estrela, anel ou malha.
- Endereçamento IP: Cada dispositivo conectado a uma rede possui um endereço IP exclusivo, permitindo a identificação e o roteamento dos dados.
- Modelo OSI e TCP/IP: São modelos de referência que definem as camadas e funcionalidades envolvidas na comunicação de rede.
- Segurança de Rede: Envolve a proteção dos dados e a prevenção de acessos não autorizados à rede e aos dispositivos conectados.
- Internet: É uma vasta rede global de computadores interconectados, permitindo a comunicação e o compartilhamento de recursos em escala mundial.
-
3º Semestre:
-
Desenvolvimento Web
- Linguagens de marcação: HTML (Hypertext Markup Language) é usada para criar a estrutura e o conteúdo da página web, enquanto o CSS (Cascading Style Sheets) é usado para estilizar e formatar a aparência do conteúdo.
- Linguagens de programação: JavaScript é a principal linguagem de programação para adicionar interatividade e comportamento dinâmico às páginas web.
- Backend e Frontend: O desenvolvimento web é dividido em duas partes principais - backend, que lida com a lógica e a funcionalidade do servidor, e frontend, que lida com a interface do usuário e a interação do cliente.
- Frameworks: São conjuntos de bibliotecas e ferramentas que facilitam o desenvolvimento web, como React, Angular e Vue.js para o frontend, e Node.js, Django e Ruby on Rails para o backend.
- Bancos de Dados: São utilizados para armazenar e recuperar informações em aplicações web. Exemplos incluem MySQL, PostgreSQL, MongoDB, entre outros.
- API (Application Programming Interface): São interfaces que permitem a comunicação entre diferentes sistemas e aplicações, possibilitando a integração de serviços.
- Segurança: É uma preocupação importante no desenvolvimento web, envolvendo práticas para proteger as aplicações contra vulnerabilidades e ataques.
-
Análise de Sistemas
- Levantamento de Requisitos: Compreender e documentar as necessidades dos usuários e da organização para o desenvolvimento do sistema.
- Modelagem de Processos: Representar graficamente os fluxos de trabalho e processos de negócio envolvidos no sistema.
- Projeto de Software: Definir a arquitetura e o design do sistema, determinando a estrutura e as funcionalidades.
- Integração de Tecnologias: Avaliar e selecionar as tecnologias e ferramentas adequadas para o desenvolvimento do sistema.
- Testes e Validação: Realizar testes para garantir que o sistema funcione corretamente e atenda aos requisitos.
- Implantação e Manutenção: Implementar o sistema em ambiente de produção e realizar a manutenção contínua para corrigir problemas e adicionar novas funcionalidades.
- Gerenciamento de Projetos: Planejar e coordenar todas as etapas do desenvolvimento do sistema, garantindo a entrega dentro do prazo e orçamento estabelecidos.
-
Engenharia de Software
- Processos de Desenvolvimento de Software: São abordagens e metodologias utilizadas para guiar o desenvolvimento do software, como o modelo em cascata, desenvolvimento ágil, DevOps, entre outros.
- Gerenciamento de Projetos de Software: Envolve o planejamento, coordenação e controle de todas as atividades envolvidas no desenvolvimento do software, incluindo estimativas de tempo e recursos, rastreamento de progresso e gerenciamento de riscos.
- Análise de Requisitos: Compreender e documentar as necessidades dos usuários e das partes interessadas para garantir que o software desenvolvido atenda aos requisitos e expectativas.
- Design e Arquitetura de Software: Definir a estrutura e a organização do sistema, dividindo-o em componentes reutilizáveis e de fácil manutenção.
- Testes de Software: Realizar testes para garantir que o software funcione corretamente, esteja livre de erros e atenda aos requisitos especificados.
- Manutenção de Software: Realizar atividades de correção, aprimoramento e atualização contínua do software após a sua implantação.
- Controle de Qualidade: Implementar práticas e padrões para garantir a qualidade do software em todas as etapas do desenvolvimento.
-
Interface Homem-Máquina (IHM)
- Elementos Gráficos: Botões, menus, barras de rolagem, caixas de diálogo e ícones que permitem aos usuários interagir com o sistema.
- Layout e Design: Organização visual dos elementos na interface para facilitar a compreensão e a usabilidade.
- Feedback Visual: Respostas visuais do sistema aos comandos do usuário, como mudanças de cor, animações ou ícones que indicam o estado ou o progresso das operações.
- Feedback Sonoro: Efeitos sonoros para fornecer feedback auditivo ao usuário sobre suas ações e eventos do sistema.
- Navegação: Métodos de navegação e fluxos de interação que facilitam a movimentação entre diferentes telas e funcionalidades do sistema.
- Interação Multitoque: Suporte para interações baseadas em toques, como gestos em telas sensíveis ao toque.
- Acessibilidade: Consideração de recursos que tornam a interface acessível a todos os usuários, incluindo aqueles com deficiências visuais, auditivas ou motoras.
-
Gestão de Projetos
- Definição do Escopo: Determinação clara dos objetivos, entregas e limites do projeto.
- Estimativa de Recursos: Avaliação dos recursos necessários, como pessoal, equipamentos e materiais.
- Cronograma: Criação de um cronograma detalhado com as atividades e suas durações.
- Alocação de Tarefas: Designação de responsabilidades e tarefas para as pessoas envolvidas no projeto.
- Orçamento: Estabelecimento do orçamento do projeto e controle dos custos ao longo do desenvolvimento.
- Gerenciamento de Riscos: Identificação, análise e mitigação de riscos que podem afetar o projeto.
- Monitoramento e Controle: Acompanhamento regular do progresso do projeto e ajustes necessários para garantir a conclusão bem-sucedida.
- Comunicação: Manutenção de uma comunicação clara e eficaz com a equipe e partes interessadas do projeto.
-
4º Semestre:
-
Desenvolvimento Mobile
- Linguagens de Programação: Para desenvolvimento nativo, as linguagens comuns incluem Java ou Kotlin para Android e Swift ou Objective-C para iOS. Para o desenvolvimento híbrido, são utilizadas linguagens como JavaScript, HTML e CSS.
- Frameworks e Bibliotecas: Para agilizar o desenvolvimento, são utilizados frameworks e bibliotecas, como React Native, Flutter ou Xamarin, que permitem criar aplicativos para múltiplas plataformas usando uma única base de código.
- Design Responsivo: É importante criar interfaces de usuário adaptáveis a diferentes tamanhos de tela e resoluções, garantindo uma experiência consistente em dispositivos móveis.
- Integração de Recursos do Dispositivo: O desenvolvimento mobile permite acessar recursos do dispositivo, como câmera, GPS, acelerômetro e notificações push.
- Testes: A realização de testes é crucial para garantir a qualidade dos aplicativos móveis, incluindo testes funcionais, de usabilidade e de desempenho.
- Distribuição de Aplicativos: Os aplicativos podem ser disponibilizados nas lojas de aplicativos (App Store para iOS e Google Play Store para Android) ou distribuídos internamente em empresas.
-
Linguagens de Programação para Web
- HTML (Hypertext Markup Language): É a linguagem básica utilizada para criar a estrutura e o conteúdo de páginas web.
- CSS (Cascading Style Sheets): É usada para estilizar e formatar a aparência das páginas web, controlando o layout, cores, fontes, efeitos visuais, entre outros.
- JavaScript: É uma linguagem de programação client-side que permite adicionar interatividade e comportamento dinâmico às páginas web. É amplamente utilizado para validar formulários, criar animações, modificar conteúdo da página em tempo real e muito mais.
- PHP: É uma linguagem de programação server-side amplamente usada para desenvolver aplicativos web dinâmicos. Ela é executada no servidor e pode gerar conteúdo dinâmico que é enviado para o cliente.
- Python: É uma linguagem de programação versátil que também pode ser usada para desenvolvimento web, especialmente com frameworks como Django e Flask.
- Ruby: É outra linguagem de programação popular para desenvolvimento web, com o framework Ruby on Rails sendo uma escolha comum para criação rápida de aplicações web.
- Java: É amplamente utilizado em desenvolvimento web com o uso de frameworks como Spring e JavaServer Faces (JSF).
- TypeScript: É uma extensão do JavaScript que adiciona recursos de tipagem estática, tornando o desenvolvimento de aplicativos web mais robusto e seguro.
- Go: É uma linguagem de programação desenvolvida pelo Google que está ganhando popularidade em desenvolvimento web devido à sua eficiência e desempenho.
- C#: É frequentemente usado no desenvolvimento web em combinação com o framework ASP.NET da Microsoft.
-
Segurança da Informação
- Confidencialidade: Garantir que as informações sejam acessíveis somente por pessoas autorizadas e que medidas sejam tomadas para evitar acesso não autorizado.
- Integridade: Assegurar que os dados e sistemas sejam precisos, completos e livres de alterações não autorizadas.
- Disponibilidade: Manter os recursos de informação e sistemas disponíveis para uso quando necessário.
- Autenticação e Controle de Acesso: Implementar métodos de autenticação seguros para garantir que apenas usuários autorizados tenham acesso aos recursos.
- Criptografia: Proteger dados sensíveis através da codificação, tornando-os ilegíveis para qualquer pessoa sem a chave de descriptografia.
- Gerenciamento de Riscos: Identificar e avaliar os riscos de segurança e implementar medidas para mitigá-los.
- Monitoramento e Detecção de Incidentes: Estabelecer sistemas de monitoramento para identificar e responder a eventos de segurança em tempo hábil.
- Conscientização e Treinamento: Educar os usuários e a equipe sobre as melhores práticas de segurança da informação e como evitar ameaças.
-
Empreendedorismo
- Inovação: Os empreendedores são frequentemente impulsionados pela vontade de inovar e criar soluções únicas para problemas existentes ou atender a novas demandas do mercado.
- Assumir Riscos: Empreender envolve assumir riscos financeiros e incertezas, sendo necessário lidar com a possibilidade de sucesso ou fracasso.
- Visão de Negócio: Ter uma visão clara do negócio e do mercado, entendendo as tendências e necessidades dos clientes.
- Resiliência: Os empreendedores enfrentam desafios e obstáculos ao longo do caminho, e a resiliência é importante para superar essas dificuldades.
- Liderança: Ser capaz de liderar e motivar equipes é fundamental para o sucesso do empreendimento.
- Networking: Construir uma rede de contatos profissionais é essencial para obter suporte, parcerias e oportunidades de negócio.
- Planejamento Estratégico: Desenvolver um plano de negócio bem estruturado, que contemple as metas, recursos e estratégias para alcançar o sucesso.
- Foco no Cliente: Colocar o cliente no centro das decisões e criar soluções que atendam às suas necessidades e expectativas.
-
Ética e Responsabilidade Profissional
- Integridade: Os profissionais devem agir com honestidade e transparência, evitando ações enganosas ou desonestas em suas atividades profissionais.
- Respeito: Devem tratar todos os indivíduos com dignidade e respeito, independentemente de sua origem, raça, gênero, religião ou posição social.
- Confidencialidade: É fundamental manter a privacidade e a confidencialidade das informações confiadas pelos clientes, colegas e empregadores.
- Competência Profissional: Os profissionais devem se esforçar para manter e aprimorar suas habilidades e conhecimentos, garantindo que estejam capacitados para desempenhar suas funções com excelência.
- Responsabilidade Social: Devem considerar o impacto de suas decisões e ações na sociedade e no meio ambiente, buscando contribuir para o bem-estar geral.
- Cumprimento de Leis e Normas: Devem agir de acordo com as leis, regulamentos e normas profissionais aplicáveis ao seu campo de atuação.
- Transparência e Prestação de Contas: Devem ser transparentes em suas ações e assumir a responsabilidade por suas decisões e resultados.
-
5º Semestre:
-
Frameworks e Bibliotecas Front-end
- React: Desenvolvido pelo Facebook, o React é uma biblioteca JavaScript de código aberto amplamente utilizada para a criação de interfaces de usuário. Ele permite criar componentes reutilizáveis e atualizar somente as partes da página que precisam ser alteradas, proporcionando uma experiência rápida e fluida.
- Angular: Desenvolvido pelo Google, o Angular é um framework JavaScript completo para o desenvolvimento de aplicações web de grande escala. Ele oferece recursos poderosos, como injeção de dependências, duas vias de data binding e suporte para desenvolvimento de aplicações SPA (Single Page Application).
- Vue.js: Vue.js é um framework JavaScript progressivo e de fácil aprendizado que permite criar interfaces de usuário interativas. Ele é frequentemente usado em projetos menores e também pode ser adotado gradualmente em projetos existentes.
- jQuery: jQuery é uma biblioteca JavaScript que simplifica a manipulação do DOM (Document Object Model) e interações com elementos HTML. Embora sua popularidade tenha diminuído com a ascensão de frameworks modernos, ainda é amplamente usado em projetos legados.
- Bootstrap: Bootstrap é um framework CSS que oferece uma variedade de estilos e componentes prontos para uso, permitindo criar layouts responsivos e atraentes rapidamente.
- Material-UI: Baseado no conceito de Material Design do Google, o Material-UI é uma biblioteca de componentes React que oferece uma abordagem visual moderna e consistente para o design de interfaces.
- SASS/LESS: São preprocessadores de CSS que estendem a sintaxe do CSS, permitindo o uso de variáveis, funções, mixins e outras funcionalidades para tornar o código CSS mais organizado e reutilizável.
- Esses frameworks e bibliotecas front-end são amplamente utilizados pela comunidade de desenvolvedores web, e a escolha de qual usar dependerá das necessidades específicas do projeto e das preferências da equipe de desenvolvimento. Eles permitem acelerar o desenvolvimento, manter um código mais limpo e modular, além de oferecer uma experiência de usuário mais agradável e responsiva.
-
Desenvolvimento de Aplicações Distribuídas
- Comunicação em Rede: Os componentes da aplicação precisam se comunicar através da rede para trocar dados e coordenar suas atividades.
- Middleware: É uma camada de software que facilita a comunicação e a integração entre os componentes distribuídos.
- Tolerância a Falhas: As aplicações distribuídas devem ser projetadas para lidar com falhas de comunicação ou de componentes de forma resiliente e recuperável.
- Escalabilidade: A capacidade de adicionar recursos e dimensionar a aplicação conforme a demanda, suportando um número crescente de usuários e cargas de trabalho.
- Segurança: A aplicação deve garantir a segurança das comunicações e dos dados em um ambiente distribuído, protegendo contra ameaças e acessos não autorizados.
- Consistência de Dados: É necessário garantir que os dados sejam consistentes entre os componentes distribuídos, evitando conflitos e inconsistências.
- Protocolos e Padrões: O desenvolvimento de aplicações distribuídas frequentemente envolve o uso de protocolos e padrões de comunicação, como REST, SOAP, gRPC, entre outros.
-
Qualidade de Software
- Funcionalidade: O software deve atender a todos os requisitos funcionais especificados, ou seja, ele deve realizar todas as tarefas e funcionalidades esperadas.
- Usabilidade: O software deve ser fácil de usar e compreender, proporcionando uma experiência positiva aos usuários.
- Confiabilidade: O software deve ser confiável e ter um bom desempenho em diferentes situações e ambientes.
- Eficiência: O software deve ser otimizado em termos de tempo de resposta, consumo de recursos e desempenho geral.
- Manutenibilidade: O software deve ser facilmente mantido e atualizado, permitindo a correção de defeitos e a implementação de novas funcionalidades.
- Portabilidade: O software deve ser capaz de funcionar em diferentes plataformas e sistemas operacionais.
- Segurança: O software deve ser projetado com medidas de segurança adequadas para proteger os dados e os usuários de ameaças e ataques.
-
Inteligência Artificial e Machine Learning
-
Inteligência Artificial (IA):
- É o campo da ciência da computação que busca criar sistemas que possam realizar tarefas que normalmente exigiriam inteligência humana.
- Envolve o desenvolvimento de algoritmos e modelos que permitem aos computadores entender, raciocinar, aprender e adaptar-se com base em dados e experiências.
- Inclui várias abordagens, como aprendizado de máquina, processamento de linguagem natural, visão computacional e planejamento.
-
Aprendizado de Máquina (Machine Learning):
- É uma subárea da IA que se concentra na construção de sistemas que podem aprender a partir de dados, identificar padrões e fazer previsões sem serem explicitamente programados.
- O aprendizado de máquina é baseado na criação de modelos estatísticos e algoritmos que permitem aos computadores aprender com exemplos e melhorar o desempenho ao longo do tempo.
- Existem três tipos principais de aprendizado de máquina: supervisionado, não supervisionado e por reforço.
-
Estatística Aplicada
- Descrição de Dados: Resumo e apresentação de dados em gráficos, tabelas e medidas estatísticas, como média, mediana, desvio padrão, entre outros.
- Teste de Hipóteses: Avaliação da validade de afirmações ou hipóteses com base em dados amostrais.
- Análise de Regressão: Identificação de relações entre variáveis e a construção de modelos que possam prever ou explicar comportamentos futuros.
- Análise de Variância (ANOVA): Comparação de médias de diferentes grupos para determinar se há diferenças estatisticamente significativas entre eles.
- Probabilidade: Estudo de eventos aleatórios e a sua probabilidade de ocorrência.
- Estatística Inferencial: Estimação de parâmetros populacionais a partir de amostras e a obtenção de conclusões sobre toda a população.
- Controle de Qualidade: Utilização de ferramentas estatísticas para monitorar e melhorar a qualidade de produtos e processos.
-
6º Semestre:
-
Análise e Modelagem de Sistemas
- Levantamento de Requisitos: Entendimento das necessidades dos usuários e das partes interessadas para definir os requisitos funcionais e não funcionais do sistema.
- Modelagem de Processos: Representação gráfica dos fluxos de trabalho e processos do sistema, ajudando a visualizar as interações e a lógica de funcionamento.
- Diagramas de Casos de Uso: Identificação das principais funcionalidades e interações do sistema por meio de diagramas de casos de uso.
- Modelagem de Dados: Definição da estrutura de dados e das entidades relevantes do sistema por meio de diagramas de entidade-relacionamento ou outros modelos de dados.
- Prototipagem: Criação de protótipos e modelos iniciais do sistema para validar e aprimorar os requisitos com os usuários.
- Análise de Requisitos: Avaliação dos requisitos para garantir sua consistência, completude e correta interpretação.
- Especificação de Requisitos: Documentação detalhada dos requisitos e especificações funcionais do sistema para orientar a etapa de desenvolvimento.
- Validação e Verificação: Garantia de que os requisitos capturados e os modelos desenvolvidos são precisos e adequados às necessidades do sistema.
-
Testes de Software
- Testes Unitários: São focados em verificar a correta funcionalidade de unidades individuais de código (módulos ou classes) para garantir que elas funcionem conforme o esperado.
- Testes de Integração: São realizados para verificar a interação entre unidades de código ou componentes integrados para garantir que eles funcionem em conjunto de forma adequada.
- Testes de Sistema: São realizados em todo o sistema para verificar se ele atende aos requisitos especificados, incluindo funcionalidades, desempenho e segurança.
- Testes de Aceitação do Usuário (UAT): São conduzidos pelos usuários finais para validar se o software está de acordo com suas necessidades e expectativas.
- Testes de Desempenho: Verificam o desempenho do software em diferentes cenários de uso, identificando possíveis gargalos e problemas de escalabilidade.
- Testes de Segurança: Buscam identificar vulnerabilidades de segurança e garantir que o software esteja protegido contra ameaças.
- Testes de Usabilidade: Avaliam a facilidade de uso e a experiência do usuário para garantir que o software seja intuitivo e amigável.
- Testes de Regressão: São executados após a implementação de novas funcionalidades ou correção de defeitos para garantir que as alterações não impactem negativamente no restante do sistema.
-
Computação em Nuvem
-
Existem três principais modelos de serviço na computação em nuvem:
- Infraestrutura como Serviço (IaaS): Nesse modelo, os provedores oferecem infraestrutura de TI sob demanda, como servidores virtuais, armazenamento e redes. Os usuários podem criar e gerenciar suas próprias máquinas virtuais e sistemas operacionais, enquanto o provedor é responsável pela manutenção da infraestrutura física.
- Plataforma como Serviço (PaaS): Nesse modelo, os provedores fornecem uma plataforma completa de desenvolvimento e execução de aplicações, incluindo sistemas operacionais, bibliotecas, linguagens de programação e ferramentas. Os desenvolvedores podem se concentrar na criação de aplicações, sem se preocupar com a complexidade da infraestrutura subjacente.
- Software como Serviço (SaaS): Nesse modelo, os provedores oferecem aplicativos prontos para uso, acessíveis pela internet. Os usuários podem acessar esses aplicativos em seus navegadores, sem a necessidade de instalação ou manutenção local.
-
Alguns dos principais benefícios da computação em nuvem incluem:
- Escalabilidade: Os recursos em nuvem podem ser escalados facilmente para cima ou para baixo, de acordo com a demanda, permitindo um uso eficiente dos recursos e evitando desperdício.
- Flexibilidade: Os usuários podem acessar os recursos em nuvem de qualquer lugar com conexão à internet e a partir de diferentes dispositivos, proporcionando maior mobilidade.
- Redução de Custos: A computação em nuvem permite que as empresas evitem grandes investimentos em infraestrutura física, pagando apenas pelos recursos utilizados.
- Atualizações Automáticas: Os provedores de nuvem são responsáveis por manter e atualizar a infraestrutura e os serviços, garantindo que os usuários tenham acesso às últimas versões e recursos.
- Segurança: Muitos provedores de nuvem oferecem medidas de segurança avançadas para proteger os dados e as aplicações dos usuários.
-
Design de Interfaces
- Arquitetura da Informação: Organização das informações e conteúdos em uma estrutura lógica e hierárquica para facilitar a navegação e o acesso às informações.
- Design Visual (UI Design): Criação da aparência visual da interface, incluindo layouts, cores, tipografia, ícones e elementos gráficos para criar uma identidade visual atraente e coesa.
- Usabilidade: O design deve ser focado na usabilidade, garantindo que os usuários possam interagir facilmente com a interface, encontrar o que precisam e realizar suas tarefas de forma intuitiva.
- Fluxo do Usuário: Planejamento do fluxo de interações e ações que os usuários realizarão na interface, criando uma sequência lógica e fluente de eventos.
- Acessibilidade: Garantir que a interface seja acessível para todos os usuários, incluindo pessoas com deficiências, seguindo diretrizes de acessibilidade.
- Testes de Usabilidade: Realização de testes com usuários reais para avaliar a eficácia do design e identificar possíveis problemas ou melhorias.
- Responsividade: Adaptação do design para diferentes dispositivos e tamanhos de tela, garantindo que a interface seja funcional em smartphones, tablets e computadores.
- Interação e Animação: Adição de elementos interativos e animações para tornar a experiência mais envolvente e atrativa.
-
Sistemas de Informação Gerenciais
- Coleta e Armazenamento de Dados: Os SIG coletam e armazenam dados de várias fontes, como transações comerciais, operações internas e fontes externas.
- Processamento de Dados: Os dados são processados e transformados em informações relevantes, utilizando técnicas como análise, cálculos e sumarização.
- Relatórios e Painéis de Controle: Os SIG geram relatórios e painéis de controle que fornecem uma visão geral das atividades da organização, permitindo que os gestores tomem decisões informadas.
- Apoio à Tomada de Decisões: Os SIG fornecem informações para apoiar a tomada de decisões estratégicas, táticas e operacionais em todos os níveis da organização.
- Integração de Dados: Os SIG podem integrar dados de diferentes sistemas e departamentos, proporcionando uma visão holística do desempenho da organização.
- Análise de Desempenho: Os SIG permitem a análise do desempenho da empresa ao longo do tempo e a identificação de tendências e padrões.
- Acesso Seguro: Os SIG garantem a segurança dos dados e o acesso apenas a usuários autorizados.
- Suporte à Colaboração: Os SIG podem facilitar a colaboração entre diferentes áreas e equipes dentro da organização.