CIIC/INSO Course Catalog

CIIC 3011
Introduction to Computer Programming I

Description: Descripción: Analysis of algorithmic problems, development of solutions, and their implementation in a high level programming language using object-oriented programming techniques. Topics: Numerical systems, internal representation, constants, variables, and data types, selection, and iteration control structures, functions, and data passing mechanisms, basic data structures, pointers, and dynamic memory management, data input/output, files, and software development environments.

Pre-requisites: Pre-requisitos: None

Terms Offered: Periodos en oferta: First Semester, Second Semester

Years Offered: Años en oferta: Every Year

CIIC 3075 (ICOM 4075)
Foundations of Computing

Description: Descripción: Discrete structures in computer sciences and engineering with emphasis on problem-solving skills and algorithms. Topics include: set theory, logic and proof techniques, graph theory, computability, and discrete probability applied to computing problems.

Pre-requisites: Pre-requisitos: CIIC 3011 or INGE 3016. Corequisite: MATE 3031.

Terms Offered: Periodos en oferta: First Semester, Second Semester

Years Offered: Años en oferta: Every Year

CIIC 3081
Computer Architecture I

Description: Descripción: Study of fundamental concepts of logic circuit analysis and design with the aim of understanding and designing the main components of a modern processor. Topics include: boolean algebra, logic gates, combinational and sequential circuits, arithmetic logic units (ALU ), memory and programmable logic devices, data paths, and control units. Practice with logic circuit design problems.

Pre-requisites: Pre-requisitos: INEL 3105 and (CIIC 4010 or ICOM 4015)

Terms Offered: Periodos en oferta: First Semester

Years Offered: Años en oferta: Every Year

CIIC 4010 (ICOM 4015)
Advanced Programming

Description: Descripción: Advanced programming techniques applied to the solution of engineering problems, extensive use of subprograms, logical and specifications statements. Principles of multiprogramming, multiprocessing, and real-time systems.

Pre-requisites: Pre-requisitos: CIIC 3011 or INGE 3016

Terms Offered: Periodos en oferta: First Semester, Second Semester

Years Offered: Años en oferta: Every Year

CIIC 4019
High-Performance Computing

Description: Descripción: Study of the fundamentals concepts associate with the performance of a computing system. Discussion of techniques for the reduction of operations with the aim of minimizing the response time of a system to problems whose solution poses a high demand of computational resources. Study of parallelization, and concurrency strategies, and practical experiences with the use of systems and tools implementing them.

Pre-requisites: Pre-requisitos: CIIC 4020 or ICOM 4035

Terms Offered: Periodos en oferta: First Semester

Years Offered: Años en oferta: Odd Years

CIIC 4020 (ICOM 4035)
Data Structures

Description: Descripción: Data structures in programming languages; representation of information as data lists in linear, orthogonal, string, and array form; tree structures; techniques for storage allocation, distribution collection, and sorting of data.

Pre-requisites: Pre-requisitos: (CIIC 4010 or ICOM 4015) and MATE 3031 and (CIIC 3075 or ICOM 4075)

Terms Offered: Periodos en oferta: First Semester, Second Semester

Years Offered: Años en oferta: Every Year

CIIC 4025 (ICOM 4038)
Analysis and Design of Algorithms

Description: Descripción: Study of methods and techniques for the complexity analysis of computer algorithms. Design of new algorithms capable of minimizing execution time while optimizing the use of computer resources. Topics include: asymptotic analysis, greedy strategies, divide and conquer, dynamic programming, backtracking, and graph, search, and sorting algorithms.

Pre-requisites: Pre-requisitos: CIIC 4020 or ICOM 4035

Terms Offered: Periodos en oferta: Second Semester

Years Offered: Años en oferta: Every Year

CIIC 4030 (ICOM 4036)
Programming Languages

Description: Descripción: Comparative study of programming styles, including imperative, object-oriented, functional, logic, and concurrent programming. Concepts of data encapsulation and inheritance. Formal specification of the syntactic structure of a language. Context-free grammars and parse trees.

Pre-requisites: Pre-requisitos: CIIC 4020 or ICOM 4035

Terms Offered: Periodos en oferta: First Semester

Years Offered: Años en oferta: Every Year

CIIC 4050 (ICOM 5007)
Operating Systems

Description: Descripción: Study of operating systems, multiprogramming, multiprocessing, batch, partitioned, and real time processing, organization and processing of file systems, queuing theory and information flow control.

Pre-requisites: Pre-requisitos: (CIIC 4020 or ICOM 4035) and (CIIC 4082 or INEL 4206)

Terms Offered: Periodos en oferta: First Semester, Second Semester

Years Offered: Años en oferta: Every Year

CIIC 4060 (ICOM 5016)
Database Systems

Description: Descripción: Study of database system architectures, design and implementation of database applications, conceptual and representational models, SQL and the relational model, functional dependencies and normalization, transaction processing.

Pre-requisites: Pre-requisitos: CIIC 4020 o ICOM 4035. Correquisite: CIIC 4050 o ICOM 5007

Terms Offered: Periodos en oferta: Second Semester

Years Offered: Años en oferta: Every Year

CIIC 4070 (ICOM 5026)
Computer Networks

Description: Descripción: Study and development of skills required for the design of network protocols and network-centric applications, with emphasis on Internet protocols. Topics include: the ISO layered model, TCP/IP, routing, client-server model, World Wide Web, and Web Services. Practice with analysis and programming problems.

Pre-requisites: Pre-requisitos: CIIC 4050 or ICOM 5007

Terms Offered: Periodos en oferta: Second Semester

Years Offered: Años en oferta: Every Year

CIIC 4082
Computer Architecture II

Description: Descripción: Study of fundamental computer architecture concepts with the objective of designing efficient processors and computing systems to support operating systems and high-level programming languages. Topics include: subroutines, exceptions, input/output, pipelining, and hierarchical memories. Practice with analysis, design, and programming problems.

Pre-requisites: Pre-requisitos: CIIC 3081

Terms Offered: Periodos en oferta: Second Semester

Years Offered: Años en oferta: Every Year

CIIC 4998
Undergraduate Research

Description: Descripción: Development of a research project related to Computer Science and Engineering, under the supervision of a faculty member.

Pre-requisites: Pre-requisitos: CIIC 4020 or ICOM 4035 or authorization of the Director of the Department.

Terms Offered: Periodos en oferta: According to Demand

Years Offered: Años en oferta: (Español) [en]According to Demand Según demanda

CIIC 5015 (ICOM 5015)
Artificial Intelligence

Description: Descripción: An introduction to the field of artificial intelligence: Lisp language, search techniques, games, vision, representation of knowledge, inference and process of proving theorems, natural language understanding.

Pre-requisites: Pre-requisitos: CIIC 4020 o ICOM 4035

Terms Offered: Periodos en oferta: Second Semester

Years Offered: Años en oferta: Odd Years

CIIC 5017 (ICOM 5017)
Operating Systems and Network Administration and Security

Description: Descripción: Practical experience with the administration and security of operating systems and computer networks. Design and development of methods for the detection and response to attacks on such systems.

Pre-requisites: Pre-requisitos: CIIC 4070 or ICOM 5026

Terms Offered: Periodos en oferta: First Semester

Years Offered: Años en oferta: Every Year

CIIC 5018 (ICOM 5018)
Criptography and Network Security

Description: Descripción: Theoretical and practical aspects of computing system and network security, threat models, system vulnerability to attacks such as: hackers, malicious code, Trojan horses, viruses, and worms, cryptographic techniques used to defend systems from such attacks.

Pre-requisites: Pre-requisitos: CllC 4050 or ICOM 5007

Terms Offered: Periodos en oferta: Second Semester

Years Offered: Años en oferta: Even Years

CIIC 5029 (ICOM 4029)
Compilers Development

Description: Descripción: Study and application of techniques associated with the analysis of source languages and the generation of efficient object codes with emphasis on the components of a compiler.

Pre-requisites: Pre-requisitos: CIIC 4082 or INEL 4206. Corequisites: CIIC 4030 or ICOM 4036.

Terms Offered: Periodos en oferta: Second Semester

Years Offered: Años en oferta: Even Years

CIIC 5045
Automata and Formal Languages

Description: Descripción: Study of theoretical computational models, languages, and machines. Introduction to the theory of intractable and un-decidable problems. Topics include: finite automata, regular languages, context-free languages, pushdown automata, Turing machine, halting problem, undecidability, and intractable problems.

Pre-requisites: Pre-requisitos: CIIC 4025 or ICOM 4038.

Terms Offered: Periodos en oferta: First Semester

Years Offered: Años en oferta: Every Year

CIIC 5995
Selected Topics

Description: Descripción: Selected topics in computer science and engineering.

Pre-requisites: Pre-requisitos: Authorization of the Director of the Department.

Terms Offered: Periodos en oferta: According to Demand

Years Offered: Años en oferta: (Español) [en]According to Demand Según demanda

INSO 4101 (ICOM 4009)
Introduction to Software Engineering

Description: Descripción: Introduction to the software development cycle. Models for the software development process and related metrics. Ethical issues in software engineering.

Pre-requisites: Pre-requisitos: CIIC 4020 or ICOM 4035

Terms Offered: Periodos en oferta: First Semester

Years Offered: Años en oferta: Every Year

INSO 4111
Introduction to Human-Computer Interaction

Description: Descripción: Introduction to the principles of human-computer interaction with the objective of developing the skills necessary to design and implement graphical user interfaces (GUI). Topics include: cognitive psychology, human factors, and interaction styles. Practice in designing and evaluating the usability of various graphical user interfaces.

Pre-requisites: Pre-requisitos: ICOM 4035 or CIIC 4020.

Terms Offered: Periodos en oferta: First Semester

Years Offered: Años en oferta: Even Years

INSO 4115
Software Engineering Requirements

Description: Descripción: Techniques used to determine the requirements of a complex software system: specification standards, the UML language, validation, specification management tools, and quality metrics. Elicitation and development of software system requirements. Discussion of ethical issues arising during requirements elicitation.
(TO BE OFFERED BEGINNING IN THE SPRING 2018)

Pre-requisites: Pre-requisitos: INSO 4101 or ICOM 4009

Terms Offered: Periodos en oferta: Second Semester

Years Offered: Años en oferta: Every Year

INSO 4116
Software Design

Description: Descripción: Fundamental principles and development of skills required for the effective design of complex software systems. Topics include: formal design methods, design specification standards, design patterns, design validation, and design metrics. Use of computer-aided software engineering (CASE) tools.
(TO BE OFFERED FOR BEGINNING IN THE FALL 2018)

Pre-requisites: Pre-requisitos: INSO 4115

Terms Offered: Periodos en oferta: First Semester

Years Offered: Años en oferta: Every Year

INSO 4117
Software Reliability Testing

Description: Descripción: Software testing and validation techniques with the aim of developing the skills required to design reliable and fault-tolerant software systems. Topics include: unit, integrated, performance, stress, usability, and fault tolerance testing. Practice with computerized testing and debugging tools.
(TO BE OFFERED BEGINNING IN THE SPRING 2019)

Pre-requisites: Pre-requisitos: INSO 4116

Terms Offered: Periodos en oferta: Second Semester

Years Offered: Años en oferta: Every Year

INSO 4118
Software Engineering Project Management

Description: Descripción: Discussion of techniques and tools for estimation, planning, monitoring, documentation, evaluation, refinement, and quality control of software. Development of skills for the effective administration of complex software engineering projects. Practice in project administration.

Pre-requisites: Pre-requisitos: INSO 4101 or ICOM 4009

Terms Offered: Periodos en oferta: Second Semester

Years Offered: Años en oferta: Even Years

INSO 4151
Software Engineering Project I

Description: Descripción: Team project to design, implement, test, and document a system that encompasses all phases of the software engineering development process to solve an academic, governmental, commercial, or industrial problem.

(TO BE OFFERED BEGINNING FALL 2019)

Pre-requisites: Pre-requisitos: INSO 4117

Terms Offered: Periodos en oferta: First Semester

Years Offered: Años en oferta: Every Year

INSO 4998
Undergraduate Research in Software Engineering

Description: Descripción: Development of a research project related to Software Engineering, under the supervision of a faculty member

Pre-requisites: Pre-requisitos: Authorization of the Director of the Department.

Terms Offered: Periodos en oferta: According to Demand

Years Offered: Años en oferta: (Español) [en]According to Demand Según demanda