by Portal FACOM
Published: 10/05/2019 - 09:40
Last modification: 06/06/2019 - 14:54

Computer Science Undergraduate Program Courses:


GBC011 - Entrepreneurship and Informatics: Introduction to entrepreneurship: origins, importance, characteristics, types of entrepreneur; Innovation, creativity, ideas and opportunities: concepts, differences and inter-relations; Identification of opportunities; Business plan: concepts, objectives, elements; Operational aspects of a business.

GBC012 – Calculus 1:  One variable real function; Limits and continuity; Derivatives; Indefinite integrals; Definite integrals.

GBC013 - Analytic Geometry and Linear Algebra: Analytical geometry in the plane: free vectors; coordinate systems; vectors in the plane; straight line and circumference; change of coordinated axes; polar coordinates. Analytical geometry in space: coordinate system; vectors in space; straight lines and planes; quadrics; cylindrical surfaces and rotating surfaces around the Cartesian axes. Matrices and linear systems; Vector spaces; Linear transformations; Eigenvalues and eigenvectors of square matrices and of Linear operators, Internal products.

GBC014 – Procedural Programming: Reasoning about programming; Algorithms; Solving problems by algorithms; Basic data types, variables and constants; Instructions (input/output, value assignments, conditional, loop); Arrays (Vectors, Matrices); Complex data types (composition of basic data types); Disk files. Functions (primitives and user-written).

GBC015 – Introduction to Computer Science: Definition and history of computer science; History of hardware; Introduction to Computability; Panoramic view of Computing and Informatics; Education of Ethnic-Racial Relations; Histories and Cultures of Afro-Brazilian people, African people and Indigenous people; Digital Inclusion as a form of Social Inclusion and decrease of the differences between different cultures and races.

GBC016 – Logic in Computer Science: Propositional Logic: language, semantics and semantic properties, methods for determining the validity of formulas, axiomatic system, semantic tableaux and resolution. Logic of predicates: language, semantics, semantic properties, methods for determining the validity of formulas and logic programming.


GBC021 - Computer Science Profession: Professional positions in Informatics; Professional behavior: computer ethics, professional ethics codes, cases of computer ethics; IT professional responsibilities: security, intellectual property, ethics over Internet; Technology impact on society; Environmental education and green computing.

GBC022 - Calculus 2:  Multiple variables real functions; Partial derivatives; Multiple integrals; Numerical series and Power series.

GBC023 - Mathematics for Computer Science: Induction and Recursion; Set Theory: sets, cardinality, function, relation, order and lattices; Theory of Numbers: great common divisor, prime numbers, modularity; Combinatorics: permutation, combination, recurrence; Asymptotic behavior.

GBC024 - Algorithms and Data Structures 1: Dynamic allocation of memory; Dynamic structures: stacks, queues, linked lists; Abstract data types.

GBC025 - Logical Programming: Propositional logic resolution; Logic of first order; Declarative programming paradigm; facts rules, recursion, control structures, operators; Case studies.

GBC026 - Digital Systems: Numerical systems: representations, operations; Binary numbers:  fixed point, floating point; Codes for non-numeric data; Introduction to error detection and error correction; Algebra for logical variables; Logical ports; Logical circuits; Simplification of logical functions; Combinational circuits: latches, flip-flops; registers; Sequential machines; Synchronous sequential circuits; Simplification of sequential machines; Asynchronous sequential circuits.


GBC041 – Statistics: Basic concepts of statistics; Statistical method phases; Data organization; Measures: central tendency and position; Measures of dispersion; Probability theory; Data dependency and data independence; Random variables; Random variables distribution models; Approximations and adjustments for theoretical distributions; Confidence intervals; parametric hypothesis tests.

GBC032 - Calculus 3: Ordinary differential equations of first order; Linear ordinary differential equations of second order; Laplace transform; Fourier series; Fourier integrals.

GBC033 - Functional Programming: The functional paradigm: object types, functional expressions, operators and functions, functional polymorphism, tuples, lists, algebraic data types, type classes, high order functions; Program evaluation forms; Infinite lists; Input and output functions; Program debugging; Program modularization.

GBC034 - Algorithms and Data Structures 2: Recursion; Dynamic programming; Principles of Algorithm analysis: empirical analysis, mathematical analysis, asymptotic analysis, O-notation; Sort algorithms; Graphs; Trees; Search: binary search tree (BST), Balanced BST, hashing.

GBC035 – Object-Oriented Programming 1: Fundamental concepts of object-oriented programming: classes, objects, encapsulation, inheritance, polymorphism; Class components: constructors, destructors, variables, methods; Object-oriented programming language; Development of applications using object-oriented programming.

GBC036 - Architecture and Organization of Computers 1: Digital Computers: history and evolution; Levels of virtual machines; Structured Organization of Computers; Von Neumman Architecture: control unit, logic and arithmetic unit, main memory, I/O units; Microarchitecture level; Instruction set architecture; Machine language (Assembly) programming.


FAMAT31041 - Computational Statistics: Statistical softwares; Estimative methods; Experimental design; Multiple linear regression analysis; Nature of multivariate data; Main component analysis; Cluster analysis.

GBC042 – Graph Theory: Oriented and non-oriented graphs; Representations of graph (geometric and matrix); Isomorphism and planarity of graphs; Subgraphs; Trees and spanning trees; Connectivity; Eulerian tours and Hamiltonian cycles; Pairing; Independent sets and clicks; Vertex coloring and Edge coloring; Network flows.

GBC043 - Database Systems: Architecture of a database system; Entity Relationship model; Relational model; Data definition language; Data manipulation language; Database Project (functional dependency, keys, normalization, visions); Transactions, concurrency control, recovery from failure; Object-oriented database model; Distributed database; Implementation of application using a database management system (DDL, DML, procedural language on the database server, SQL language embedded in programming languages); Communication between application ("front-end") and the DBMS.

GBC044 - Formal Languages and Automata: Languages, grammars and parsers; Hierarchy of Chomsky (regular languages, context-free languages, context-sensitive languages; recursively enumerable languages); Finite automata; Stack automata; Linearly restricted automata; Turing machine; Church-Turing thesis; Undecidable problems and the limits of conventional computing.

GBC045 – Operating Systems: Structure and architecture of operating systems; Processes and threads; Process (communication, competition, synchronization); Memory management; Input/Output system; File system; Distributed operating systems.

GBC046 - Architecture and Organization of Computers 2: Abstractions and computational technologies; Computer instruction set; Computer Architecture Performance Evaluation; MIPS (architecture, computer arithmetic, processor (data path and control pipeline; superscalar)); Low level consumption energy architectures.


GBC051 - Scientific Computing and Optimization: Error analysis; Theory of approximation (interpolation and curve approximation); Non-linear equations; Linear systems; Non-linear systems; Numerical integration; Ordinary differential equations; Partial differential equations; Numeric optimization; Linear programming; Gradient-based methods.

GBC052 – Analysis of Algorithm: Asymptotic analysis (asymptotic notations Ο, Ω and θ); Solution of sums and recurrences; Performance analysis of iterative algorithms; Performance analysis of recursive algorithms; Worst-case analysis and probabilistic analysis (middle case); Search and sorting algorithms; Dynamic programming; Greedy algorithms; Graph algorithms; Approximate Algorithms.

GBC053 - Database Management: Architecture of a Database Management System (DBMS); File organization (data and index files); Data storage (devices and management); Disk indexing structures (B-tree + and Hash); Sorting files on disk; Implementation of relational operators; Implementation of DBMSs (data types, data storage, data description language processing; data manipulation language (insert, change, delete, query) processing).

GBC054 - Software Modeling: Software modeling problems (diversity of artifacts, models diversity, semantic gap between requirements and implementation);  Development processes; Modeling languages (UML, Structured diagrams, formal notations (algebraic, logical, operational)); Implementation Paradigms (Procedural, Object-oriented, Aspects-oriented; Features-oriented); Modeling with UML (Use Cases, Activities, Classes, Sequence, Collaboration, Competition, States, Components and Deployment).

GBC055 – Object-Oriented Programming 2: Advanced concepts about object-oriented programming (polymorphism, and dynamic linking); Software reuse (frameworks and components); Design/Architecture patterns (bad smells, and software refactoring); Advanced APIs (graphical interfaces, concurrency, and distribution).

GBC056 - Computer Network Architectures: Layered design concepts; Elements of a network protocol; Philosophical aspects of distributed communications; Open Systems Interconnection (OSI - philosophical and architectural aspects); OSI layers (physics; logical link; network; transport; session; presentation; and application).


GBC061 - Business Management: Evolution of administrative protocols in organizational environment; Business administration and business planning; Management and enterprises; Control and Information technology in enterprises.

GBC062 - Theory of Computation: Automata and languages (a review); Computability (Church-Turing Thesis, decidability, reducibility); Complexity of problems (time and space); Intractability.

GBC063 - Artificial Intelligence: Introduction to artificial intelligence; Solving problems (searching, information retrieval); Knowledge representation; Reasoning; Learning; Advanced topics.

GBC064 - Software Engineering: Introduction to software engineering; Requirements (requirement engineering, requirement management tools, traceability.); Metrics; Software development process management; User Interface Design; Software testing; Software quality; Software documentation; Requirement models; Software architecture description languages; Design and architecture patterns; Frameworks and software components; Component Technology; Metamodels (OCL, MDA, BPEL4WS); Models of Analysis. Patterns of Analysis.

GBC065 - Modeling and Simulation: Markov chains; Poisson process; Birth and death process; Branching process; Random numbers generation; Random tests; Queueing theory (special types of queues); Simulation under computer.

GBC066 - TCP/IP Networks Architecture: TCP/IP architecture: layered organization (subnet, network, transport, application); Access to subnet (services and main protocols (ARP, RARP)); IP protocol (PDU format, MEF/FSM protocol, addressing (classful, subnetting, VLSM, CIDR), protocol analysis case study); IP routing (static and dynamic, routing protocols (RIP, OSPF, BGP, ...), layer protocols (ICMP, IGMP, ...), protocol analysis case study); UDP protocol (PDU format, MEF/FSM protocol, addressing, IP interface, protocol analysis case study); TCP protocol (PDU format, MEF/FSM protocol, addressing, UDP interface, protocol analysis case study); Application Protocols (DNS, HTTP, DHCP, others, PDUs formats, MEFs/FSMs, addresses, interfaces with TCP, protocol analysis case study); Other case studies (connectivity problems, traffic characterization, routing, service differentiation applications, etc).  


GBC071 - Construction of Compilers: Grammars; Automata; Lexical analysis; Syntax analysis; Code Generation; Error recovery; Meta-compilers.

GBC072 - Undergraduate Project 1: Scientific research protocol; Research planning (theme, statement of the problem, objectives and justifications); Writing the research text (hypotheses, theoretical references, quotations, article, monography); Execution of the research plan (specification of a problem and a computational solution under scientific methodology).

GBC073 - Computational Intelligence: Artificial neural networks (perceptron, multiple layers, Hopfield, Kohonen); Evolutionary computing (genetic algorithms, genetic programming, Classifying Systems); Fuzzy systems; Applications of paradigms such as interpolation, optimization, classification and control; Other bio-inspired paradigms.

GBC074 – Distributed Systems: Motivation to distributed systems; Distributed systems models; Communication between distributed processes; Global consistency; Distributed shared memory; Distributed file systems; Name/Directory server; Distributed Transactions.


GBC081 - Law and Legislation: Structure of the State; Power of the State; Fundamental rights; Telematic contracts - Consumer Protection Code; General notions of copyright; Software law; Internet law; Cybercrimes.

GBC082 - Undergraduate Project 2: Elaboration of a monography (also known as Graduation Conclusion Work) about a Computer Science problem (preferably the one stated in GBC072) under the advising of a teacher.

GBC083 - Information Security: History of cryptography; Symmetrical and asymmetric cryptography; Relevant symmetric and asymmetric algorithms for encryption; Relevant algorithms for cryptographic hashing; Relevant algorithms for digital signatures; Protocols for key exchange; Protocols for distributed systems authentication ( IPSec, SSL and TLS);  Information security (contingency planning and business endurance, security policies and procedures); Systems and software certification; Security in software; Computer operation security; Security over network and over telecommunications.

GBC084 - Internet Programming: History of the Internet; Multimedia systems; Trend analysis; Web software development (languages (such as JSP) and tools, graphic design, graphic animation, case-study); Dynamic Web programming; Multi-layer software for Web; Web software architecture (client-server); Distributed objects over the Internet; Database connection on Internet.