GIN510Advanced Computer Architecture
3 credits
This course first reviews general computer architecture and presents the concept of cache memory and pipelining in single processor systems. Multiprocessing systems are then discussed, starting with a global overview to tackle the next advanced topics: interconnection networks, shared memory and cache coherence, abstract models and algorithms for multiprocessor systems, the parallel virtual machine and message passing.
GRT635Advanced Networks Architectures
3 credits
Students will study: internal routing protocols (RIP, OSPF, EIGRP); external routing protocol (BGP4), evolution; architecture of IP multicast and group management protocol (IGMP) and multicast routing protocols (DVMRP, PIM-SM, PIM-DM); IP networks multi-service, IP and Quality of Service (QoS); DiffServ and differentiated quality of service, architecture; IntServ, architecture and protocols; voice and telephony over IP; Optical IP/ MPLS and GMPLS (architecture, main concepts, traffic engineering); METRO Ethernet; VPN services evolution; VPN architectures (layer 2 and layer 3); mobility in IP networks (Internet and private); mobility mechanisms in IPv4 networks; IPv6 basic mechanisms; mobile IPv6; Hierarchical Mobile IP (HMIP); handover mechanisms based on IPv6; and overlay networks (caches, CDN and peer-to-peer).
GRT673Advanced Networks Architectures Lab
1 credits
GBMStudents will experience advanced routing techniques, IP Multicast, IP and Quality of Service, voice and telephony over IP, VPN, the mobility mechanism in IP networks, basic IPv6 mechanisms, and peer-to-peer networks.
GIN632Artificial Intelligence
3 credits
This course covers the techniques used to design intelligent computer systems using the recent artificial intelligence (AI) techniques. Topics include intelligent agents, problem solving by searching, informed search and exploration, constraint satisfaction problems, knowledge representation and reasoning, planning, uncertain knowledge and reasoning and Machine Learning. The course also discusses advanced AI applications such as natural language processing, computer games, and robotics.
GIN622Computer Network Security
3 credits | Pre-requisite: GIN550
The purpose of this course is to introduce the principles of security in fixed and mobile networks. The course starts with an introduction to information security concepts, security services and security mechanisms. In the second part, we discuss the concepts of symmetric and asymmetric cryptography, the hash function and the signature and key sharing procedures and we apply these concepts to secure the data communication using the SSL and the IPSec protocols. In the third part, we discuss security in wireless networks, intrusions and filtering mechanisms through the use of firewalls. Finally, we discuss security management and risk management concepts.
GIN550Cryptography and Computer Security
3 credits
The objectives of this course are to provide cryptographic and information security topics and algorithms, such as symmetric key and public key encryptions, block and stream ciphers, message authentication, program and OS security as well as network and Web security.
GEL559Microcontrollers
3 credits
The purpose of this course is to provide an introduction to microcontroller families: Motorola, Intel, Microchip. We will be studying the internal resources and programming of Microchip PIC microcontrollers, as well as developing multiple practical applications.
GEL577Microcontrollers Lab
1 credits
The main objective of this course is to apply different microcontroller topics and peripherals, introduced using the C language, physically. To do so, the PIC24FJ256DA210 Development Board is used along with the MPLAB program to build and make the program. Software Debugging using the ICD3 is also applied.
GIN625Mobile Devices Programming
2 credits
Students will learn about programming mobile devices with an emphasis on the environment and the Android platform. This course focuses on research and projects. The main themes of the course revolve around the design of applications for mobile devices with unique challenges (user interface, mobile-specific technologies), and the importance of performance. The Android SDK has its own interesting aspects to learn. The multi-touch model, accelerometer, and other important API receive significant attention. Students will learn the concepts of development applicable to any type of mobile environment: iOS, BlackBerry, Symbian, Windows Phone.
GIN623Planning and Configuration of Computer Networks
3 credits | Pre-requisite: GIN622
Students will study: computer network planning process; requirements and specifications; modeling of the main network planning problems; topological design and expansion;location of equipment; computer networks at several levels; design of computer networks and routing traffic with performance, reliability and quality of service QOS; resource allocation in computer networks; case studies; protocols and operation of switches and routers; network design including the choice of technologies, protocols and equipment; configuration of switches and routers (wired and wireless); structured cabling; network operating systems; telephony and VoIP; network management (performance management, configuration and faults in networks); and virtualization.
GIN612Software Verification and Validation
3 credits
This course covers the following topics: validation of a software product by testing its complete integration; preconditions, post-conditions and invariants; use of models in software development; test and verification of software; audit programs by symbolic execution; predicate logic of first-order; Hoare logic; and development of correct programs built from templates.