COMP 198 / TEACHING COMPUTER SCIENCE
Term: Fall 2022Units 3Times: 0:00:00-0:00: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 198 / TEACHING COMPUTER SCIENCE
Term: Fall 2022Units 3Times: 0:00:00-0:00: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 198 / TEACHING COMPUTER SCIENCE
Term: Fall 2022Units 3Times: 0:00:00-0:00: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 198 / TEACHING COMPUTER SCIENCE
Term: Fall 2022Units 3Times: 0:00:00-0:00: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 198 / TEACHING COMPUTER SCIENCE
Term: Fall 2022Units 3Times: 0:00:00-0:00: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 198 / TEACHING COMPUTER SCIENCE
Term: Fall 2022Units 3Times: 0:00:00-0:00: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 201 / COMPUTER SYSTEMS&PROGRAMMING
Term: Fall 2022Units 3Days: MON WEDTimes: 14:30:00-15:40:00Ön Koşullar: COMP 132

This course gives a solid understanding of the principles and abstractions used in computer systems and machine programs using C. Towards this aim, it covers a broad range of topics, providing students with an in-depth perspective and programming experience regarding the basic topics of C language and how programs are formed and executed at the microprocessor-level. Topics covered include: Bits operations, Integer Representations, Integer arithmetic, Floating point. Strings, Pointers and Arrays. Functions, Stack and Heap. Structures. Machine level representation of programs. Memory hierarchy, caches, disks, locality. Code Optimization, debugging and profiling. Dynamic memory allocation. Static linking, object files, symbols and symbol tables. Dynamic linking with shared libraries.

COMP 202 / DATA STRUCTURES&ALGORITHMS
Term: Fall 2022Units 3Days: MON WEDTimes: 11:30:00-12:40:00Ön Koşullar: (COMP. 106 or INDR 201) and (COMP. 131 or COMP 130 or COMP 132)

Basic data structures, algorithms, and their computational complexity. List, stack, queue, priority queue, map, tree, balanced tree, hash table, heap, skip list, trie, graph. Basic search, selection, sorting, and graph algorithms. Recursion.

COMP 301 / PROGRAMMING LANGUAGE CONCEPTS
Term: Fall 2022Units 3Days: MON WEDTimes: 8:30:00-9:40: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 2022Units 3Days: TUES THURSTimes: 14:30:00-15:40: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 304 / OPERATING SYSTEMS
Term: Fall 2022Units 3Days: TUES THURSTimes: 11:30:00-12:40:00Ön Koşullar: (COMP. 132 and (COMP. 303 or Comp 200)) or COMP 201 or consent of the instructor

Introduction to operating systems concepts, process management, memory management, virtual memory, input-output and device management, file systems, job scheduling, threads, process synchronization, deadlocks, interrupt structures, case studies of operating systems.

COMP 305 / ALGORITHMS&COMPLEXITY
Term: Fall 2022Units 3Days: MON WEDTimes: 16:00:00-17:10:00Ön Koşullar: COMP 202 and (ENGR 200 or ENGR 201 or MATH 211)

Advanced topics in algorithms, and their computational complexity. Amortized complexity analysis. Randomized algorithms. Greedy algorithms. Dynamic programming. Linear programming. Advanced graph algorithms. Turing machines and models of computation. NP-completeness reductions.

COMP 317 / EMBEDDED SYSTEMS
Term: Fall 2022Units 3Days: MON WEDTimes: 8:30:00-9:40: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 2022Units 3Days: MONTimes: 11:30:00-14:10: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 319B / MOBILE DEVICE PROGRAMMING-IOS IPHONE
Term: Fall 2022Units 3Days: MONTimes: 8:30:00-11:10: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 2022Units 3Days: TUES THURSTimes: 8:30:00-9:40: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 411 / COMPUTER VISION WITH DEEP LEARNING
Term: Fall 2022Units 3Days: MON WEDTimes: 10:00:00-11:10:00Ön Koşullar: ENGR 421 or concent of the instructor

Understanding, implementing, training and debugging deep end-to-end neural network architectures for various tasks of computer vision. Image classification. Loss functions and optimization. Backpropagation. Convolutional neural networks. Recurrent neural networks for video and image analysis. Object detection and segmentation. Generative vision models.

COMP 416 / COMPUTER NETWORKS
Term: Fall 2022Units 3Days: TUES THURSTimes: 16:00:00-17:10: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 430 / DATA PRIVACY AND SECURITY
Term: Fall 2022Units 3Days: TUES THURSTimes: 10:00:00-11:10:00Ön Koşullar: COMP 202

Threats to data privacy and security; methods for privacy-preserving data collection, analysis, and sharing; data anonymization; differential privacy; security and privacy in machine learning; adversarial machine learning; real- world applications and case studies.

COMP 441 / DEEP LEARNING
Term: Fall 2022Units 3Days: MON WEDTimes: 11:30:00-12:40:00

Basic linear models for classification and regression; stochastic gradient descent (backpropagation) learning; multi-layer perceptrons, convolutional neural networks, and recurrent neural networks; recent advances in the field; practical examples from machine translation, computer vision; practical experience in programming, training, evaluating and benchmarking deep learning models.

COMP 443 / MODERN CRYPTOGRAPHY
Term: Fall 2022Units 3Days: MON WEDTimes: 13:00:00-14:10: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 2022Units 4Days: MON WEDTimes: 14:30:00-15:40: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 511 / COMPUTER VISION WITH DEEP LEARNING
Term: Fall 2022Units 3Days: MON WEDTimes: 10:00:00-11:10:00

Understanding, implementing, training and debugging deep end-to-end neural network architectures for various tasks of computer vision. Image classification. Loss functions and optimization. Backpropagation. Convolutional neural networks. Recurrent neural networks for video and image analysis. Object detection and segmentation. Generative vision models.

COMP 530 / DATA PRIVACY AND SECURITY
Term: Fall 2022Units 3Days: TUES THURSTimes: 10:00:00-11:10:00

Threats to data privacy and security; methods for privacy-preserving data collection, analysis, and sharing; data anonymization; differential privacy; security and privacy in machine learning; adversarial machine learning; real- world applications and case studies.