CMKT 501 / MARKETING MANAGEMENT
Term: Fall 2016Units 3Days: MON TUES WED THURS FRI*Times: 14:00-18:00

Marketing management in modern organizations; knowledge and application of key strategic frameworks to customer analysis, environment, competition, and organizational strengths and weaknesses. Creative selection of target markets and planning the components of the marketing mix. The role and use of information in marketing planning, determinants of and the nature of buying behavior. The complexity of developing and managing the marketing process in a multinational arena.

CMSE 501 / INTRODUCTION TO COMPUTATIONAL SCIENCE
Term: Fall 2016Units 3Days: MON WEDTimes: 13:00-14:15

An introduction to methods and software tools used in scientific computing. Software development, data abstraction and the concept of object oriented programming. Hands-on exploration of some of the principal modern software tools of computational science including computing environments, symbolic computing, numerical libraries and software repositories. An introduction to high performance computing and parallel programming.

COMM 202 / MEDICAL ENGLISH
Term: Fall 2016Units 3Days: TUES THURSTimes: 14:30-15:45

Ability to communicate in English with a special emphasis on medical terminology deve- lopment, spelling and pronunciation. Reading and listening to medical terminology, understanding its meaning and writing short essays using terms correctly.

COMM 202 / MEDICAL ENGLISH
Term: Fall 2016Units 3Days: TUES THURSTimes: 16:00-17:15

Ability to communicate in English with a special emphasis on medical terminology deve- lopment, spelling and pronunciation. Reading and listening to medical terminology, understanding its meaning and writing short essays using terms correctly.

COMP 106 / DISCRETE MATHEMATICS FOR COMPUTER SCIENCE AND ENGINEERING
Term: Fall 2016Units 3Days: TUES THURSTimes: 10:00-11:15

An introductory course covering: Logic, formal reasoning, propositional ?logic, sets, growth of functions, algorithmic complexity, number theory, mathematical induction, ?combinatorics, recurrence, generating functions, relations, graphs, and models of computation.

COMP 110 / INTRODUCTION TO COMPUTER PROGRAMMING WITH MATLAB
Term: Fall 2016Units 3Days: TUES THURSTimes: 16:00-17:15

COMP 110 is a first course in computer programming. The objective is to introduce the principles of computer programming and algorithm development using Matlab, with particular emphasise on scientific computation and data processing. Topics covered include basic computer literacy and organization; variables, operators, expressions, data types, arrays, matrices; conditional and repetition control statements; modular programming, built-in and user-defined functions; string manipulation; text and binary file processing; structures; debugging; data plotting and visualization; graphical user interfaces.

COMP 110 / INTRODUCTION TO COMPUTER PROGRAMMING WITH MATLAB
Term: Fall 2016Units 3Days: TUES THURSTimes: 08:30-09:45

COMP 110 is a first course in computer programming. The objective is to introduce the principles of computer programming and algorithm development using Matlab, with particular emphasise on scientific computation and data processing. Topics covered include basic computer literacy and organization; variables, operators, expressions, data types, arrays, matrices; conditional and repetition control statements; modular programming, built-in and user-defined functions; string manipulation; text and binary file processing; structures; debugging; data plotting and visualization; graphical user interfaces.

COMP 130 / INTRODUCTION TO PROGRAMMING (JAVA)
Term: Fall 2016Units 3Days: TUES THURSTimes: 13:00-14:15

This course is a general introduction to programming using the Java programming language. It emphasizes the structured programming language aspects of Java and de-emphasizes its object-oriented aspects. The latter are covered only to the extent that enables students to use standard Java libraries for common tasks. Students who complete this course successfully should gain a solid foundation in algorithmic thinking and structured programming, and should be able to perform basic, common computational tasks easily and efficiently.

COMP 130 / INTRODUCTION TO PROGRAMMING (JAVA)
Term: Fall 2016Units 3Days: TUES THURSTimes: 10:00-11:15

This course is a general introduction to programming using the Java programming language. It emphasizes the structured programming language aspects of Java and de-emphasizes its object-oriented aspects. The latter are covered only to the extent that enables students to use standard Java libraries for common tasks. Students who complete this course successfully should gain a solid foundation in algorithmic thinking and structured programming, and should be able to perform basic, common computational tasks easily and efficiently.

COMP 130 / INTRODUCTION TO PROGRAMMING (JAVA)
Term: Fall 2016Units 3Days: MON WEDTimes: 14:30-15:45

This course is a general introduction to programming using the Java programming language. It emphasizes the structured programming language aspects of Java and de-emphasizes its object-oriented aspects. The latter are covered only to the extent that enables students to use standard Java libraries for common tasks. Students who complete this course successfully should gain a solid foundation in algorithmic thinking and structured programming, and should be able to perform basic, common computational tasks easily and efficiently.

COMP 131 / INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING
Term: Fall 2016Units 3Days: MON WEDTimes: 11:30-12:45

Overview of computers, Programming, algorithms, and programming languages. Programming with Python: Data types, variables, operators. Control statements: conditionals, loops, iteration. String manipulation. Functions, recursion, decomposition and abstraction. Tuples, lists, dictionaries. Aliasing, mutability, cloning. Functional programming, lambda expressions. Files. Object oriented programming, classes, inheritance. Testing, debugging, exception handling, program efficiency.

COMP 200 / STRUCTURE AND INTERPRETATION OF COMPUTER PROGRAMS
Term: Fall 2016Units 3Days: TUES THURSTimes: 08:30-09:45

Introduction to core software engineering concepts. Control of complexity in large programming systems. Building abstractions with procedures and data. Modularity, objects and state. Machine models, compilers and interpreters. Concurrency.

COMP 301 / PROGRAMMING LANGUAGE CONCEPTS
Term: Fall 2016Units 3Days: MON WEDTimes: 08:30-09:45

Programming languages (i.e. C++, Java, Ada, Lisp, ML, Prolog), concepts and paradigms. Syntax, semantics. Abstraction, encapsulation, type systems, binding, run-time storage, sequencers, concurrency, control. Providing examples from functional, object-oriented and logic programming paradigms.

COMP 302 / SOFTWARE ENGINEERING
Term: Fall 2016Units 3Days: MON WEDTimes: 13:00-14:15

Review of methods and tools used in software development. Object oriented design and open software architectures. Requirements analysis, design, implementation, testing, maintenance and management. Engineering applications.

COMP 303 / COMPUTER ARCHITECTURE
Term: Fall 2016Units 3Days: TUES THURSTimes: 14:30-15:45

Hardware organization of computers. Computer components and their functions. Instruction sets, instruction formats and addressing modes. Pipelining and pipeline hazards. Instruction level parallelism. Assembly and machine language. Data and control paths. Computer arithmetic. Floating point representation. Memory hierarchy, cache organization and virtual memory. Parallel architectures.

COMP 317 / EMBEDDED SYSTEMS
Term: Fall 2016Units 3Days: TUES THURSTimes: 10:00-11:15

Microcomputer fundamentals including architecture and operation of a typical microprocessor; bus organization; instruction set; addressing modes; analysis of clocks and timing; interrupt handling; memory (RAM and ROM); DMA, serial and parallel input/output; assembly language programming.

COMP 341 / INTRODUCTION TO ARTIFICIAL INTELLIGENCE
Term: Fall 2016Units 3Days: MON WEDTimes: 10:00-11:15

Introduction to artificial intelligence concepts; agent based thinking; uninformed and informed search; constraint satisfaction; knowledge representation; logic; introduction to machine learning and its relation to artificial intelligence; representing uncertainty; markov decision processes; examples from vision, robotics, language and games.

COMP 408 / COMPUTER VISION AND PATTERN RECOGNITION
Term: Fall 2016Units 3Days: TUES THURSTimes: 13:00-14:15

Study of computational models of visual perception and their implementation in computer systems. Topics include: image formation; edge, corner and boundary extraction, segmentation, matching, pattern recognition and classification techniques; 3-D Vision: projection geometry, camera calibration, shape from stereo/silhouette/shading, model-based 3D object recognition; color texture, radiometry and BDRF; motion analysis.

COMP 416 / COMPUTER NETWORKS
Term: Fall 2016Units 3Days: TUES THURSTimes: 11:30-12:45

Principles of data communications and computer networks; ISO/OSI reference model with emphasis on data link, network and transport layers; TCP/IP protocol suite; asynchronous and synchronous transmission; data link control; multiplexing; wide area networks; routing; congestion control; local area networks; communications architecture and transport protocols; distributed applications.

COMP 429 / PARALLEL PROGRAMMING
Term: Fall 2016Units 3Days: TUES THURSTimes: 16:00-17:15

Fundamental concepts of parallelism. Overview of parallel architectures, multicores, heterogeneous systems, shared memory and distributed memory systems. Parallel programming models and languages. Multithreaded, message passing, data driven, task parallel and data parallel programming. Design of parallel programs, decomposition, granularity, locality, communication, load balancing, and asynchrony. Performance modeling of parallel programs, sources of parallel overheads.

COMP 443 / MODERN CRYPTOGRAPHY
Term: Fall 2016Units 3Days: MON WEDTimes: 16:00-17:15

Introduction to cryptographic concepts. Symmetric encryption, the public-key breakthrough, one-way functions, hash functions, random numbers, digital signatures, zero-knowledge proofs, modern cryptographic protocols, multi-party computation. Everyday use examples including online commerce, BitTorrent peer-to-peer file sharing, and hacking some old encryption schemes.

COMP 491 / COMPUTER ENGINEERING DESIGN I
Term: Fall 2016Units 4Days: WEDTimes: 17:30-18:30

A capstone design course where students apply engineering and science knowledge in a computer engineering design project. Development, design, implementation and management of a project in teams under realistic constraints and conditions. Emphasis on communication, teamwork and presentation skills.

COMP 492 / COMPUTER ENGINEERING DESIGN II
Term: Fall 2016Units 3Days: MONTimes: 16:00-17:00

A capstone design project on an industrially relevant problem. Students work on teams in consultation with faculty and industrial members.

COMP 508 / COMPUTER VISION AND PATTERN RECOGNITION
Term: Fall 2016Units 3Days: TUES THURSTimes: 13:00-14:15

Study of computational models of visual perception and their implementation in computer systems. Topics include: image formation; edge, corner and boundary extraction, segmentation, matching, pattern recognition and classification techniques; 3-D Vision: projection geometry, camera calibration, shape from stereo/silhouette/shading, model-based 3D object recognition; color texture, radiometry and BDRF; motion analysis.