Topics will be announced when offered.
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.
An introduction to interactive Python and Jupyter Notebooks, Python built-in data structures, conditional statements, loops, functions, strings and basic input/output, basics of data manipulation and visualization with relevant Python libraries, different types of plots, vector/matrix representations, linear algebra operations, probability/statistics operations, data analysis applications
Relationship between structure, function and dynamics in biomolecules. Overview of the biomolecular databases and application of computational methods to understand molecular interactions; networks. Principles of computational modeling and molecular dynamics of biological systems.
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.
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.
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 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 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.
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.
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.
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.
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. Files. Object oriented programming, classes, inheritance. Testing, debugging, exception handling, program efficiency.
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.
Programming languages concepts and paradigms. Functional programming. Abstraction, encapsulation, type systems, binding, parameter passing, run-time storage, memory, stack, heap, interpreters. Implementation strategies for interpreters. Data representation, sets, syntax, semantics, behavior specification and implementation.
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.
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.
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.
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.
Principles of computer networks and network protocols; Internet protocol stack with emphasis on application, transport, network and link layers; network edge and network core; client/server and peer-to-peer models; routing algorithms; reliable data transfer; flow and congestion control; protocol design and analysis; network performance metrics; software-defined networks; network programming and distributed applications.
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.
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.
Advanced topics in data structures, algorithms, and their computational complexity. Asymptotic complexity measures. Graph representations, topological order and algorithms. Forests and trees. Minimum spanning trees. Bipartite matching. Union-find data structure. Heaps. Hashing. Amortized complexity analysis. Randomized algorithms. Introduction to NP-completeness and approximation algorithms. The shortest path methods. Network flow problems.