COMP 198 / TEACHING COMPUTER SCIENCE
Term: Spring 2024Units 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: Spring 2024Units 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: Spring 2024Units 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: Spring 2024Units 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: Spring 2024Units 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: Spring 2024Units 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: Spring 2024Units 3Days: MON WEDTimes: 13:00:00-14:10:00Ön Koşullar: COMP 132

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: Spring 2024Units 3Days: TUES THURSTimes: 16:00:00-17:10:00Ön Koşullar: (COMP. 106 or INDR 201 or (MATH 103 and MATH 104)) and 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: Spring 2024Units 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: Spring 2024Units 3Days: MON WEDTimes: 11:30:00-12: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 302 / SOFTWARE ENGINEERING
Term: Spring 2024Units 3Days: TUES THURSTimes: 11:30:00-12: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: Spring 2024Units 3Days: MON WEDTimes: 16:00:00-17:10:00Ön Koşullar: 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: Spring 2024Units 3Days: TUES THURSTimes: 14:30:00-15:40: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 306 / DATABASE MANAGEMENT SYSTEMS
Term: Spring 2024Units 3Days: MON WEDTimes: 14:30:00-15:40:00Ön Koşullar: COMP. 202 or consent of the instructor

Conceptual and practical aspects of databases and database management systems. Entity-relationship model, relational model, relational algebra, Structured Query Language (SQL), normal forms and normalization, transaction management, scheduling and serializability, concurrency control and locking, indexing, recent trends in databases and NoSQL.

COMP 319A / MOBILE DEVICE PROGRAMMING-ANDROID
Term: Spring 2024Units 3Days: TUES THURSTimes: 10:00: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 Symbian, Android, Mobile Windows.

COMP 340 / APPLIED LINEAR ALGEBRA FOR DATA SCIENCE
Term: Spring 2024Units 3Days: TUES THURSTimes: 8:30:00-9:40:00

Basics of linear algebra and their applications to data-centric real-world problems with real-time coding and demonstrations. Vectors and matrices, eigenvalues, eigenvectors and singular value decomposition: mathematical foundations, geometrical intuitions and practical applications. Least Squares for data fitting and classification, Markov Chains, Principal Component Analysis (PCA), low-rank approximation and compression, clustering, gradient descent (batch- minibatch and stochastic) and basics of neural networks.

COMP 341 / INTRODUCTION TO ARTIFICIAL INTELLIGENCE
Term: Spring 2024Units 3Days: TUES THURSTimes: 16:00:00-17:10: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 350 / SELECTED TOPICS IN COMPUTER ENGINEERING
Term: Spring 2024Units 3Days: MON WEDTimes: 13:00:00-14:10:00

COMP 410 / COMPUTER GRAPHICS
Term: Spring 2024Units 3Days: TUES THURSTimes: 11:30:00-12:40:00Ön Koşullar: COMP. 202 or consent of the instructor

Theory and practice of 3D computer graphics. Topics covered include graphics systems and models; geometric representations and transformations; graphics programming; input and interaction; viewing and projections; compositing and blending; illumination and color models; shading; texture mapping; animation; rendering and implementation; hierarchical and object-oriented modeling; scene graphs; 3D reconstruction and modeling.

COMP 423 / COMPUTER VISION FOR AUTONOMOUS DRIVING
Term: Spring 2024Units 3Days: TUES THURSTimes: 10:00:00-11:10:00

Main problems, datasets, evaluation metrics, and approaches in computer vision for autonomous driving, depth / motion estimation, localization, mapping, free-space estimation, object detection / tracking, semantic / instance segmentation, and end-to-end learning of driving. Credits: 3

COMP 437 / INTELLIGENT USER INTERFACES
Term: Spring 2024Units 3Days: MON WEDTimes: 10:00:00-11:10:00Ön Koşullar: (COMP. 125 or COMP. 100) or consent of the instructor

Applications of artificial intelligence in user interfaces. Design, implementation, and evaluation of user interfaces that use machine learning, computer vision and pattern recognition technologies. Supporting tools for classification, regression, multi-modal information fusion. Gaze-tracking, gesture recognition, object detection, tracking, haptic devices, speech-based and pen-based interfaces.

COMP 442 / NATURAL LANGUAGE PROCESSING
Term: Spring 2024Units 3Days: MON WEDTimes: 13:00:00-14:10:00

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.

COMP 447 / DEEP UNSUPERVISED LEARNING
Term: Spring 2024Units 3Days: MON WEDTimes: 16:00:00-17:10:00Ön Koşullar: ENGR 200 and MATH 107 or Consent of instructor

Fundamental concepts and recent advances in deep unsupervised learning, autoregressive models, normalizing flow models, variational autoencoders, generative adversarial networks, energy-based models, discrete latent variable models, self-supervised learning, pretraining language

COMP 448 / MEDICAL IMAGE ANALYSIS
Term: Spring 2024Units 3Days: TUES THURSTimes: 8:30:00-9:40:00

Imaging modalities. Applications and challenges. Medical image segmentation. Feature extraction. Medical image classification. Deep learning for medical images. Convolutional neural networks. Fully convolutional networks. Generative adversarial networks. Multiple-instance learning. Case studies.