COMP 132 / ADVANCED PROGRAMMING
Term: Fall 2023Units 3Days: TUES THURSTimes: 13:00:00-14:10:00Ön Koşullar: COMP 100 consent of the instructor

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.

COMP 198 / TEACHING COMPUTER SCIENCE
Term: Fall 2023Units 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 2023Units 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 2023Units 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 2023Units 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 2023Units 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 2023Units 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 2023Units 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 2023Units 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 2023Units 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 2023Units 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 2023Units 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 2023Units 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 2023Units 3Days: MON WEDTimes: 10:00:00-11: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: Fall 2023Units 3Days: TUES THURSTimes: 14:30:00-15:40: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: Fall 2023Units 3Days: MON WEDTimes: 11:30:00-12: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 2023Units 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: Fall 2023Units 3Days: TUES THURSTimes: 14:30:00-15:40: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: Fall 2023Units 3Days: TUES THURSTimes: 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 306 / DATABASE MANAGEMENT SYSTEMS
Term: Fall 2023Units 3Days: MON WEDTimes: 10:00:00-11:10: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 317 / EMBEDDED SYSTEMS
Term: Fall 2023Units 3Days: MON WEDTimes: 16:00:00-17:10: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 319A / MOBILE DEVICE PROGRAMMING-ANDROID
Term: Fall 2023Units 3Days: WEDTimes: 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 Symbian, Android, Mobile Windows.

COMP 319B / MOBILE DEVICE PROGRAMMING-IOS IPHONE
Term: Fall 2023Units 3Days: THURSTimes: 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 319B / MOBILE DEVICE PROGRAMMING-IOS IPHONE
Term: Fall 2023Units 3Days: THURSTimes: 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.