Primeiro período
Evolução da computação. Computação moderna e contemporânea. Organização básica das máquinas computacionais. Grandezas computacionais. Representação de dados e informações digitais. Lógica matemática e computacional. Fundamentos de sistemas computacionais. Conceitos de sistemas operacionais. Conceitos de redes de comunicação. Desafios para a computação moderna.
Conjuntos Numéricos. Álgebra. Funções. Limites e Continuidade de funções. Derivada: definição e conceito. Regras de derivação. Regra da Cadeia. Aplicações de Derivadas: taxas relacionadas, derivação implícita, otimização e gráficos de funções, Regra de L’Hôpital.
Lógica computacional. Metodologias e técnicas para o desenvolvimento de algoritmos. Estruturas de dados estáticas em memória principal. Técnicas essenciais de programação: estruturas de controle condicional, estruturas de seleção e estruturas de repetição. Abstrações de dados. Procedimentos e funções. Recursividade.
Exploração de uma linguagem de programação de médio nível. Exploração de uma linguagem de programação de alto nível. Práticas investigativas para desenvolvimento de projetos de software e aplicativos usando linguagens e/ou ferramentas de programação de médio e alto nível.
Desenvolvimento de protótipos usando microcontroladores. Desenvolvimento de programas embarcados. Simulação e interação com dispositivos físicos. Linguagens e plataformas para programação visual.
Atividades de acolhimento ao ingressante. Estrutura curricular do curso de Ciência da Computação. Atividades de nivelamento. Atos legais do curso. Mercado de trabalho: organização, perspectivas salariais e expectativas de carreira. Possibilidades das práticas extensionistas baseadas em computação. Organização de projetos de pesquisa e inovação em computação. Atividades complementares de graduação (ACG).
Palestras e oficinas sobre temas sócio-econômicos, ambientais, religiosos, técnico-científicos de interesse geral e específicos da Ciência da Computação. Oficinas técnicas de interesse para a Ciência da Computação.
Segundo período
Estruturas de dados dinâmicas em memória principal. Algoritmos de ordenação e pesquisa em memória principal. Organização, armazenamento e recuperação de dados em memória secundária. Reconhecimento de padrões e compactação.
Exploração de uma linguagem de programação de alto nível. Práticas investigativas para desenvolvimento de projetos de software e aplicativos utilizando linguagens e/ou ferramentas de programação de alto nível.
Sistemas numéricos e de codificação. Álgebra Booleana. Lógica combinacional. Lógica sequencial. Dispositivos de lógica programável. Linguagem de descrição de hardware. Análise e síntese de circuitos lógicos digitais. Aritmética computacional. Organização de computadores: unidade central de processamento, memórias, barramentos e dispositivos de entrada e saída. Linguagens de montagem. Modos de endereçamento, conjunto de instruções.
Dispositivos vetoriais e matriciais. Sistemas e equipamentos gráficos. Algoritmos para conversão matricial e preenchimento de primitivas gráficas. Transformações geométricas em duas e três dimensões. Sistema de coordenadas cartesianas bidimensionais e tridimensionais, vetores, transformações de coordenadas afins. Coordenadas homogêneas e matrizes de transformação. Transformação entre sistemas de coordenadas 2D e 3D e recorte. Transformações de projeção paralela e perspectiva; câmera virtual; transformações de eixos de sistemas de coordenadas 3D. Definição de objetos e cenas tridimensionais. Rendering. Retas e planos no espaço. Cálculo de área e volume: funções continuas e discretas. Texturas. Criação de gráfico de funções e animação de objetos 2D e 3D.
Mundo Digital: organização e impactos. Sociedade digital e dociedade da informação. Mundo Cibernético: impactos e riscos. Plataformas Digitais: comércio eletrônico, governança eletrônica, entretenimento digital, mídias e redes sociais. Computação do futuro. Preparação de projetos para a sociedade digital.
Palestras e oficinas sobre temas sócio-econômicos, ambientais, religiosos, técnico-científicos de interesse geral e específicos da Ciência da Computação. Oficinas técnicas de interesse para a Ciência da Computação.
Terceiro período
Linguagens formais e gramáticas: a hierarquia de Chomsky. Autômatos e máquina de Turing. A tese de Church-Turing. Decidibilidade e computabilidade.
Microprocessadores e microcontroladores. Mecanismos de interrupção e de exceção. Barramentos, interfaces e periféricos. Evolução de arquiteturas de computadores. Arquiteturas atuais. Arquiteturas não-convencionais. Avaliação de desempenho, otimizações e análises de custos.
Práticas investigativas de projetos utilizando microprocessadores e microcontroladores.
Introdução a Robótica: definição, aplicações e conceitos básicos. Arquiteturas para robótica móvel: reativas, deliberativas e híbridas. Navegação, localização e mapeamento da robótica móvel. Atuadores e sensores: noções básicas de tipos e características. Robótica inteligente.
As origens da Filosofia. A Filosofia como busca do conhecimento. Ciência e Filosofia: o surgimento da modernidade, a racionalidade instrumental e o impacto das novas tecnologias. A questão do saber e da linguagem nas sociedades contemporâneas.
Perspectivas e possibilidades profissionais em computação. PUC Carreiras. Marketing digital e utilização de redes sociais profissionais. Valorizando as competências. Investigando fontes de vagas de emprego. Intercambios. Considerações sobre a carreira acadêmica.
Palestras e oficinas sobre temas sócio-econômicos, ambientais, religiosos, técnico-científicos de interesse geral e específicos da Ciência da Computação. Oficinas técnicas de interesse para a Ciência da Computação.
Quarto período
Espaço cibernético e o mundo digital: organização, impactos e riscos. Crimes cibernéticos. Princípios da segurança de dados e informações. Auditoria de tecnologia da informação. Preservação de dados, informações e ambientes computacionais. Criptografia. Certificação digital. Computação forense.
Estatísticas descritivas. Noções de probabilidade. Distribuições de Probabilidade. Inferência Estatística. Metodologia de data science .Análise Exploratória de Dados. Visualização de Dados. Aprendizado de Máquina. Classificação e Regressão. Mineração de Textos. Modelagem, Integração e Processamento de Big Data e Sistemas de Gerenciamento.
Evolução das linguagens de programação. Paradigmas de programação. Conceitos de linguagens de programação. Linguagens imperativas, declarativas, funcionais e orientadas a objetos. Sistemas de tipos. Conceitos e princípios da programação orientada a objetos. Exemplos práticos e estudos de caso em linguagens dos diversos paradigmas.
Compiladores e Interpretadores. Análise léxica. Análise sintática. Análise semântica. Geração de código intermediário. Tradução dirigida pela sintaxe. Geração de código. Ambientes de execução. Projeto e Implementação de um Compilador/Interpretador.
Concepções filosófico-antropológicas. O ser humano como ser no mundo e sua dimensão simbólico-cultural. A condição ética da ação humana. Questões éticas fundamentais e atuais, sociedade de consumo, diversidade étnica e desafios ecológicos.
Metodologia de Pesquisa. Redação Técnica. Multidisciplinaridade, Interdisciplinaridade e Transdisciplinaridade.
Aplicação de conhecimentos adquiridos ao longo do curso com ênfase no diagnóstico, na descrição e nas propostas de solução de problemas reais.
Palestras e oficinas sobre temas sócio-econômicos, ambientais, religiosos, técnico-científicos de interesse geral e específicos da Ciência da Computação. Oficinas técnicas de interesse para a Ciência da Computação.
Quinto período
Estrutura de um sistema operacional. Gerência de processos: processos, comunicação, escalonamento, multiprocessamento, programação concorrente. Gerência de memória: memória virtual, paginação, segmentação, mudança de contexto, proteção. Entrada e saída: interrupção e DMA. Sistemas de arquivos: dispositivos, proteção, segurança. Práticas investigativas de IPC (Comunicação entre processos). Análise e simulação de módulos dos principais sistemas operacionais.
Conceitos básicos de redes de computadores. Comunicação de dados. Protocolos de comunicação. Arquiteturas e padrões.
Introdução aos sistemas de gerenciamento de banco de dados (SGBDs). Modelagem de dados ER e modelo relacional. Projeto de bancos de dados relacionais. Linguagens de consulta e de manipulação de dados em bancos de dados relacionais. Modelos de bancos de dados. Sistemas Gerenciadores de Banco de Dados. Estrutura de Sistema e Armazenamento de Dados. Controle de Transações. Controle de Concorrência. Processamento de Consultas. Recuperação de Falhas. Segurança de Banco de Dados. Bancos de dados distribuídos. Bancos de dados cliente/servidor. Bancos de dados não-convencionais. Uso da Linguagem Estruturada de Consulta. Projeto de bancos de dados.
Características de sistemas computacionais móveis, arquiteturas, plataformas e ambientes de desenvolvimento. Paradigmas de computação móvel, ubíqua e pervasiva. Projeto de aplicações locais e interoperabilidade entre aplicações multi-meios, incluindo arquitetura cliente-servidor.
O fenômeno religioso: experiência e linguagem. O fenômeno religioso como experiência específica: limites e possibilidades da experiência de Deus. As categorias fundamentais de interpretação e de linguagem do fenômeno religioso. A Bíblia: livro de formação cultural do Ocidente. A Bíblia em sua formação histórica, cultural e literária. Os critérios de interpretação, os temas e as perspectivas de estudo da Bíblia e a experiência mística e de abertura que o livro sagrado propicia. O cristianismo e os desafios do diálogo ecumênico e inter-religioso no contexto de um mundo globalizado. História e fundamentos da cultura e tradições religiosas afro-brasileiras e indígenas.
Metodologia de pesquisa. Multidisciplinaridade, interdisciplinaridade e transdisciplinaridade. Aplicação de conhecimentos adquiridos ao longo do curso, com ênfase na análise e no desenvolvimento da solução de problemas reais.
Sexto período
Notações para complexidade de algoritmos. Crescimento assintótico de funções e classes de complexidade. Análise de algoritmos iterativos e recursivos. Teorema Mestre. Indução matemática. Algorítmos fundamentais para busca,ordenação e seleção. Técnicas de Projeto de Algoritmos: força-bruta, retrocesso, branch and bound, divisão e conquista, programação dinâmica e algoritmos gulosos. Tratabilidade de problemas. Teoria da Complexidade. Teorema de Cook. Introdução à teoria dos conjuntos. Grafos e seus algoritmos. Divisibilidade. Congruência. Análise de eficiência de Algorítmos.
Sistemas de informação. Conceitos básicos de engenharia de software. Processo de software. Engenharia de requisitos. Métodos e técnicas para análise de sistemas de informação. Conceituação de projeto de software. Projeto lógico e projeto físico. Projeto baseado em casos de uso e centrado no usuário. Modelagem estrutural e comportamental. Projeto da arquitetura. Projeto da camada de domínio. Projeto da camada de persistência. Prototipação de software.
Introdução à administração e ao gerenciamento de redes heterogêneas. Arquitetura de um sistema de gerenciamento de redes, protocolos padrões para o gerenciamento de redes. Metodologias e protocolos para segurança em redes interconectadas. Monitoramento e ferramentas de gerenciamento.
Práticas investigativas de projetos utilizando uma arquitetura consolidada para comunicação de computadores, ancorandos no modelo OSI da ISO. IPC (Inter process communication) para explorar protocolos, serviços e sistemas de comunicação entre dispositivos interconectados.
Empreendedorismo, identificação de necessidades e oportunidades, modelagem de negócios, validação, negócios digitais, e-commerce, negócios virtuais.
Fundamentação da práxis cristã com referência no ensino social da Igreja. A categoria pessoa em diálogo com as categorias antropológicas contemporâneas. Temas atuais à luz do ensino social da Igreja: a família e a dimensão afetivo-sexual; o mundo do trabalho e a situação da propriedade; ordem social e política; cidadania, o compromisso com o cuidado e a defesa da vida humana e a ecologia e as perspectivas de construção de uma nova ordem mundial centrada na sustentabilidade, no amor e na paz.
Multidisciplinaridade, interdisciplinaridade e transdisciplinaridade. Aplicação de conhecimentos adquiridos ao longo do curso, com ênfase no desenvolvimento de planos de negócios e em práticas de empreendedorismo.
Sétimo período
Conceitos básicos. Métodos de resolução de problemas. Representação do conhecimento: lógica proposicional, lógica de predicados de primeira ordem, sistemas baseados em regras, redes semânticas e frames). Tratamento de incerteza: raciocínio probabilístico e lógica fuzzy. Computação bioinspirada: redes neurais, computação evolutiva e inteligência coletiva. Aplicações.
Padrões de projeto. Reuso. Framework de software. Interação homem-máquina. Processo de software ágil. Noções de gerência de projetos. Medição de software. Estimativas de recursos para desenvolvimento de projetos de software. Qualidade de software. Testes sistemáticos de software. Modelos de maturidade de processo. Gerência de configuração de software. Engenharia de software como serviço.
Níveis de processamento. Fundamentos matemáticos para formação de imagens. Discretização: amostragem estatística e quantização. Realce de Imagens, aguçamento de bordas e filtros derivativos. Derivada e aplicações. Histograma e equalização: Distribuição de frequencia e Probabilidade. Operações espaciais, ruído, convolução e correlação: Integração indefinida. Domínio da frequência. Restauração de imagens. Segmentação: Cônicas, retas e cincunferências. Extração de características: Áreas, volumes usando produto escalar, vetorial e misto, entre outras características. Reconhecimento e interpretação.
Conceitos de web. Arquitetura e padrões web. Clientes e sevidores de web. Introdução ao desenvolvimento web e seus padrões. Desenvolvimento Full Stack: front-end, back-end e frameworks.
Métodos de elaboração de documentos técnicos. Orientações e acompanhamento de atividades desenvolvidas em um ambiente técnico (acadêmico ou profissional).
Oitavo período
Introdução ao processamento paralelo. Organização de computadores para processamento paralelo. Classificação e estudo de arquiteturas paralelas.
Conceituação sobre cidades inteligentes e estudos de casos de referência. Introdução à análise transdisciplinar para tomada de decisões com base em aspectos de planejamento e desenho Urbano, tecnologias da informação e gestão de serviços públicos.
Conceituação e introdução aos sistemas distribuídos.Organização de Computadores para computação distribuída. Redes de computadores e comunicação para sistemas distribuídos. Sistemas operacionais distribuídos.
Conceitos de Internet das Coisas. Histórico e evolução. Tecnologias para suporte à IoT. Conectando os objetos. Aplicações e negócios em IoT: Smart Cities, Segurança e Transporte; Smart Grid, Energia e Sistemas de Infraestrutura; Smart Home e Saúde; Agronegócio e Indústria. Projeto e implementação de sistemas para a Internet das Coisas
Proposição de temas para projetos de síntese dos conhecimentos adquiridos ao longo do curso, aplicados à área de Ciência da Computação. Seminários apresentados pelos alunos relatando suas experiências no decurso do trabalho de diplomação.