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.
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.
General introduction to computational thinking and programming. Emphasizes key components of problem solving such as expressing solutions as logically ordered steps (algorithms), decomposition, and abstraction. Procedural and structured programming. Emphasis is on programming, abstractions (procedural, data structures), and problem solving, not on the programming language. Gain a solid foundation in algorithmic thinking and programming, abiltiy to perform basic, common computational tasks efficiently, and ability to apply to problems across disciplines including administrative sciences, humanites, social sciences.
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.
Object oriented programming using Java. Data types, expressions, control statements, strings, arrays. Classes, objects, methods, overloading, variable scope, memory. Recursion. Inheritance, polymorphism, abstract classes, interfaces, nested classes, anonymous classes. Exception handling. Strings and regular expressions. File I/O. Generic collections. Generic classes and methods. Lambdas and streams. Event-driven programming. Multithreading.
The aim of the course is to give qualified engineering students a unique opportunity to teach as a part of their undergraduate experience. Students are responsible for teaching sections for the course COMP130 Introduction to Programming. Students cover and teach materials such as functional decomposition, control statements, methods, recursion, strings, arrays, abstract data types, exception handling, graphical user interface and other fundamental elements of modern programming by using the Java language.
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.
This course covers programming environments and languages over mobile devices. Mobile device architectures and environments, MIDP Application Model, User Interface Libraries, High Level User Interface Components, Low Level User Interface Libraries, MIDP Persistance Libraries. Mobile device operating system environments. Operating Systems such as iPhone OS.
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.
Fundamental concepts and current research in natural language processing. Algorithms for processing linguistic information. Computational properties of human languages. Analysis at the level of morphology, syntax, and semantics. Modern quantitative techniques of using large corpora, statistical models, and machine learning applied to problems of acquisition, disambiguation and parsing. Applications such as machine translation and question answering.
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.
A capstone design project on an industrially relevant problem. Students work on teams in consultation with faculty and industrial members.
Fundamental concepts and current research in natural language processing. Algorithms for processing linguistic information. Computational properties of human languages. Analysis at the level of morphology, syntax, and semantics. Modern quantitative techniques of using large corpora, statistical models, and machine learning applied to problems of acquisition, disambiguation and parsing. Applications such as machine translation and question answering.
Presentation of research topics to introduce the students into thesis research.