COMP 125 / PROGRAMMING WITH PYTHON
Term: Fall 2022Units 3Days: TUES THURSTimes: 16:00:00-17:10:00

This course emphasizes computational thinking and programming using Python. Gain a solid foundation in algorithmic thinking and structured programming, and perform basic, common computational tasks easily and efficiently. Examine the fundamentals of data storage, input and output, control structures, functions, sequences and lists, file I/O, graphics and objects.

COMP 125 / PROGRAMMING WITH PYTHON
Term: Fall 2022Units 3Days: MON WEDTimes: 14:30:00-15:40:00

This course emphasizes computational thinking and programming using Python. Gain a solid foundation in algorithmic thinking and structured programming, and perform basic, common computational tasks easily and efficiently. Examine the fundamentals of data storage, input and output, control structures, functions, sequences and lists, file I/O, graphics and objects.

COMP 132 / ADVANCED PROGRAMMING
Term: Fall 2022Units 3Days: TUES THURSTimes: 11:30:00-12:40: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 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 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

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 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 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 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.