COMP 110 / INTRODUCTION TO COMPUTER PROGRAMMING WITH MATLAB
Term: Fall 2017Units 3Days: TUES THURSTimes: 13:00:00-14:15:00

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 2017Units 3Days: TUES THURSTimes: 10:00:00-11:15:00

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 2017Units 3Days: TUES THURSTimes: 16:00:00-17:15:00

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 2017Units 3Days: MON WEDTimes: 14:30:00-15:45:00

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.

COMP 198 / TEACHING COMPUTER SCIENCE
Term: Fall 2017Units 3Days: MON WEDTimes: 10:00:00-11:15:00Ön Koşullar: COMP 132 or consent of the instructor

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.

COMP 200 / STRUCTURE AND INTERPRETATION OF COMPUTER PROGRAMS
Term: Fall 2017Units 3Days: TUES THURSTimes: 8:30:00-9:45:00Ön Koşullar: COMP. 106 or consent of the instructor

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 2017Units 3Days: MON WEDTimes: 16:00:00-17:15:00Ön Koşullar: COMP. 200 or COMP 201 and COMP 202

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.

COMP 302 / SOFTWARE ENGINEERING
Term: Fall 2017Units 3Days: MON WEDTimes: 8:30:00-9:45:00Ön Koşullar: COMP 132 and COMP. 202 or consent of the instructor

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 2017Units 3Days: MON WEDTimes: 13:00:00-14:15:00Ön Koşullar: ELEC. 204 or ELEC 205 or consent of the instructor

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 2017Units 3Days: TUES THURSTimes: 14:30:00-15:45:00Ön Koşullar: ELEC. 204 or ELEC 205 or consent of the instructor

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 319B / MOBILE DEVICE PROGRAMMING-IOS IPHONE
Term: Fall 2017Units 3Days: THURSTimes: 16:00:00-18:45:00Ön Koşullar: COMP. 202 or COMP. 132 or consent of the instructor

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.

COMP 341 / INTRODUCTION TO ARTIFICIAL INTELLIGENCE
Term: Fall 2017Units 3Days: MON WEDTimes: 11:30:00-12:45:00Ön Koşullar: ENGR 200 or 201 or MATH 201 or 211 or MATH 202

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 2017Units 3Days: TUES THURSTimes: 14:30:00-15:45:00Ön Koşullar: ELEC. 201 or consent of the instructor

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 2017Units 3Days: TUES THURSTimes: 11:30:00-12:45:00Ön Koşullar: COMP. 132 or consent of the instructor

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.

COMP 421 / INTRODUCTION TO MACHINE LEARNING
Term: Fall 2017Units 3Days: MON WEDTimes: 13:00:00-14:15:00Ön Koşullar: MATH 107 and 203 and ENGR 200 AND COMP 110 or 125 or 131

A broad introduction to machine learning covering regression, classification, clustering, and dimensionality reduction methods; supervised and unsupervised models; linear and nonlinear models; parametric and nonparametric models; combinations of multiple models; comparisons of multiple models and model selection.

COMP 443 / MODERN CRYPTOGRAPHY
Term: Fall 2017Units 3Days: TUES THURSTimes: 13:00:00-14:15:00Ön Koşullar: COMP. 106 or consent of the instructor

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 2017Units 4Days: WED*Times: 17:30:00-18:45:00Ön Koşullar: (COMP. 202 and COMP. 302) or consent of the instructor

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 508 / COMPUTER VISION AND PATTERN RECOGNITION
Term: Fall 2017Units 3Days: TUES THURSTimes: 14:30:00-15:45:00

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 521 / INTRODUCTION TO MACHINE LEARNING
Term: Fall 2017Units 3Days: MON WEDTimes: 13:00:00-14:15:00

A broad introduction to machine learning covering regression, classification, clustering, and dimensionality reduction methods; supervised and unsupervised models; linear and nonlinear models; parametric and nonparametric models; combinations of multiple models; comparisons of multiple models and model selection.

COMP 543 / MODERN CRYPTOGRAPHY
Term: Fall 2017Units 3Days: TUES THURSTimes: 13:00:00-14:15:00Ön Koşullar: COMP. 106 or consent of the instructor

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 546 / ALGORITHM DESIGN AND ANALYSIS
Term: Fall 2017Units 3Days: TUES THURSTimes: 16:00:00-17:15:00Ön Koşullar: COMP. 202 or consent of the instructor

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.

COMP 550 / SELECTED TOPICS IN COMPUTER ENGINEERING
Term: Fall 2017Units 3Times: 0:00:00-0:00:00

COMP 559 / SELECTED TOPICS IN COMPUTER ENGINEERING
Term: Fall 2017Units 3Times: 0:00:00-0:00:00

COMP 590 / SEMINAR
Term: Fall 2017Units 0Times: 0:00:00-0:00:00

Presentation of research topics to introduce the students into thesis research.