| Course Code | Course Name | Theoretic-Practical-Credit | ECTS Credit | Course Language |
|---|---|---|---|---|
| BBM101 | Introduction to Programming I | 3 0 3 | 6 | English |
| BBM103 | Introduction to Programming Laboratory I | 0 2 1 | 4 | English |
| MAT123 | Mathematics I | 4 2 5 | 6 | English |
| FİZ127 | Physics I | 3 0 3 | 5 | English |
| AIN101 | Freshman Seminar | 1 0 1 | 2 | English |
| İNG111 | Language Skills I | 3 0 3 | 3 | English |
| TKD103 | Turkish I | 2 0 2 | 2 | Turkish |
| BEB 650 | Basic Information and Communication Technologies | 0 2 1 | 2 | English |
| Course Code | Course Name | Theoretic-Practical-Credit | ECTS Credit | Course Language |
|---|---|---|---|---|
| BBM102 | Introduction to Programming II | 3 0 3 | 8 | English |
| BBM104 | Introduction to Programming Laboratory II | 0 2 1 | 4 | English |
| MAT124 | Mathematics II | 4 2 5 | 6 | English |
| FİZ128 | Physics II | 3 0 3 | 5 | English |
| FİZ117 | General Physics Lab. | 0 3 1 | 2 | English |
| İNG112 | Language Skills II | 3 0 3 | 3 | English |
| TKD104 | Turkish II | 2 0 2 | 2 | Turkish |
| Course Code | Course Name | Theoretic-Practical-Credit | ECTS Credit | Course Language |
|---|---|---|---|---|
| BBM201 | Data Structures | 3 0 3 | 5 | English |
| BBM203 | Software Laboratory I | 0 2 1 | 2 | English |
| BBM205 | Discrete Structures | 3 0 3 | 5 | English |
| İST292 | Statistics | 3 0 3 | 5 | English |
| AİT203 | Atatürk's Princ. And The History of The Revol. I | 2 0 2 | 2 | Turkish |
| MÜH103 | Occupational Health and Safety I | 1 0 1 | 1 | Turkish |
| AIN212 | Elements of Data Science | 3 0 3 | 6 | English |
| AIN214 | Data Science Lab. | 0 2 1 | 4 | English |
| Course Code | Course Name | Theoretic-Practical-Credit | ECTS Credit | Course Language |
|---|---|---|---|---|
| BBM202 | Algorithms | 3 0 3 | 4 | English |
| BBM204 | Software Laboratory II | 0 2 1 | 2 | English |
| BBM242 | Computer Systems | 3 0 3 | 4 | English |
| AIN211 | Principles of Artificial Intelligence | 3 2 4 | 6 | English |
| MAT254 | Fundamental Linear Algebra | 3 0 3 | 4 | English |
| AIN200 | Computers and Ethics | 3 0 3 | 3 | English |
| AİT204 | Atatürk's Princ. And The History of The Revol. II | 2 0 2 | 2 | Turkish |
| MÜH104 | Occupational Health and Safety II | 1 0 1 | 1 | Turkish |
| Nontechnical Elective | 3 0 3 | 4 |
| Course Code | Course Name | Theoretic-Practical-Credit | ECTS Credit | Course Language |
|---|---|---|---|---|
| AIN300 | Internship I | 0 4 2 | 5 | English |
| AIN311 | Foundations of Machine Learning | 3 0 3 | 6 | English |
| AIN313 | Machine Learning Lab. | 0 2 1 | 4 | English |
| AIN | AIN Technical Elective | 3 0 3 | 6 | English |
| BBM | BBM Technical Elective | 3 0 3 | 6 | English |
| Nontechnical Elective | 3 0 3 | 3 |
| Course Code | Course Name | Theoretic-Practical-Credit | ECTS Credit | Course Language |
|---|---|---|---|---|
| AIN312 | Formal Languages and Automata Theory | 3 0 3 | 6 | English |
| AIN | AIN Technical Elective | 3 0 3 | 6 | English |
| AIN | AIN Technical Elective Lab. | 0 2 1 | 4 | English |
| AIN | AIN Technical Elective | 3 0 3 | 6 | English |
| AIN | AIN Technical Elective Lab. | 0 2 1 | 4 | English |
| Nontechnical Elective | 3 0 3 | 4 |
| Course Code | Course Name | Theoretic-Practical-Credit | ECTS Credit | Course Language |
|---|---|---|---|---|
| AIN400 | Internship II | 0 4 2 | 5 | English |
| AIN401 | Senior Seminar | 0 2 1 | 1 | English |
| AIN479 | Project I | 3 2 4 | 4 | English |
| AIN | AIN Technical Elective | 3 0 3 | 6 | English |
| AIN | AIN Technical Elective | 3 0 3 | 6 | English |
| AIN | AIN Technical Elective Lab. | 0 2 1 | 4 | English |
| Nontechnical Elective | 3 0 3 | 4 |
| Course Code | Course Name | Theoretic-Practical-Credit | ECTS Credit | Course Language |
|---|---|---|---|---|
| AIN480 | Project II | 3 2 4 | 6 | English |
| AIN | AIN Technical Elective | 3 0 3 | 6 | English |
| AIN | AIN Technical Elective Lab. | 0 2 1 | 4 | English |
| AIN | AIN Technical Elective | 3 0 3 | 6 | English |
| AIN | AIN Technical Elective Lab. | 0 2 1 | 4 | English |
| Nontechnical Elective | 3 0 3 | 4 |
| Course Code | Course Name | Theoretic-Practical-Credit | ECTS Credit | Course Language |
|---|---|---|---|---|
| EKO115 | General Economy | 3 0 3 | 4 | Turkish |
| MAN321 | Small Business Management and Entrepreneurship | 3 0 3 | 4 | Turkish |
| PSİ101 | Introduction to Psychology | 3 0 3 | 6 | Turkish |
| SOS101 | Introduction to Sociology | 3 0 3 | 6 | Turkish |
| SOS261 | Communication Sociology | 3 0 3 | 5 | Turkish |
| FEL123 | Introduction to Logic | 3 0 3 | 4 | Turkish |
| MTK203 | Differential Equations | 4 0 4 | 4 | Turkish |
| MTK403 | Introduction to Game Theory | 3 0 3 | 5 | Turkish |
| KAY465 | Informantion Tech. at Public Management | 3 0 3 | 4 | Turkish |
| IYB332 | General Management | 3 0 3 | 5 | Turkish |
| ANT202 | Introduction to Social Anthropology | 3 0 3 | 5 | Turkish |
| FEL110 | Introduction to Philosophy | 3 0 3 | 4 | Turkish |
| FEL122 | Logic I | 3 0 3 | 5 | Turkish |
| MTK479 | Introduction to Cryptography | 3 0 3 | 7 | Turkish |
| KAY124 | Social Psychology | 3 0 3 | 5 | Turkish |
| KAY246 | Labour and Social Security Law | 3 0 3 | 4 | Turkish |
| KAY486 | Commercial Law | 3 0 3 | 5 | Turkish |
Basic concepts of computer programming. Problem formalization and developing algorithms and flowcharts using stepwise refinement method. Fundamental concepts related to structured programming. Data types and variable definitions. Basic control structures. Conditional and looping structures. Function concept and function calls. Single and multi-dimensional arrays in programming languages. File operations. Pointers.
The laboratory includes three or more practical assignments. The students are expected to present a well-designed documentary report with their assignments. The utilization of compilers, package programs and recent IDEs (Integrated Development Environments) is a part of this laboratory.
Basic concepts of object oriented programming. Introduction to learning of an object oriented programming language. Class, object, encapsulation, inheritance, polymorphism, abstract class and interface. Access specifiers and messaging. Exception handling concepts.
The laboratory includes three or more practical assignments. The students are expected to present a well-designed documentary report with their assignments. The utilization of compilers, package programs and recent IDEs (Integrated Development Environments) is a part of this laboratory.
An orientation course to provide counsel to the students about the Department and Computer Engineering in general. An introduction to ethical and legal issues related to computer engineering. An introduction to the faculty and their activities.
Fundamentals of data structures. Relationships between data representation, algorithm design, and program efficiency. Lists, stacks, queues, trees, priority queues, hashing, graphs. Multi-dimensional/triangular/band/sparse matrix representations. Single/double (circular) linked lists. Prefix/infix/postfix expressions.
The laboratory includes three or more practical assignments. The students are expected to present a well-designed documentary report with their assignments. The utilization of compilers, package programs and recent IDEs (Integrated Development Environments) are included in this laboratory.
Fundamental concepts of discrete mathematics: Mathematical logic, set theory, relations, and functions. Propositional logic, first order logic, and mathematical induction. Discrete structures: Modular arithmetic, state machines, graph theory, trees, counting, recursion and recursive relations. Discrete probability theory.
Digital systems, number systems, binary codes, error detecting and error correcting codes. Boolean algebra, switching algebra, binary operations and Boolean functions. Minimization of Boolean functions. Combinational logic, logic gates, analysis of combinational circuits, circuit design with logical gates. Integrated circuits, design with MSI chipsets, ROM, PLA. Synchronous sequential circuits, memory elements, analysis and design procedures. Registers, counters, RAM. Asynchronous sequential circuits.
The laboratory includes practical assignments on the following topics: Logical gates, integrated circuits, properties and rules of Boolean algebra, combinational circuits, minimization of Boolean functions. Code converter, multiplexer, magnitude comparator and parallel adder circuits. Flip-flops and sequential circuits. Counters, registers, serial adder circuits, and memory elements.
Basic concepts of algorithms. Asymptotic notation, performance measurement, space/time complexity. Recursive algorithms, recursive relations, introduction to the concept of algorithm analysis. Binary search tree, recursive and iterative binary tree traversals. Graphs, depth/breadth first search, spanning trees, shortest path problem, activity on vertex/edge networks. Selection, insertion, bubble, counting, quick, merge, heap, radix sorting algorithms and their analysis.
The laboratory includes three or more practical assignments. The students are expected to present a well-designed documentary report with their assignments. Compilers, package programs and recent IDEs (Integrated Development Environments) are utilized in this laboratory.
Problem-solving agents, uninformed search algorithms, heuristic search algorithms, game playing algorithms, constraint satisfaction problems, logical agents, propositional and first order logic, inference and decision making, knowledge representation and reasoning, planning, uncertainity and probabilistic reasoning, Bayesian networks, reinforcement learning, perception, robotics and computer vision
Basic mathematical and logical concepts related to computer architecture. Data representation. Basic computer organization. Central processor organization: Accumulator-based, general-registers processors and stack machine architectures. Machine code instruction concept, microprogramming concept, addressing modes. Memory organization. Mass storage devices. I/O devices. Introduction to Assembly language programming.
Essential principles and paradigms in programming languages. All major topics and the language paradigms are covered. Topics include syntax, semantics, names, bindings, type checking, subprograms, tools for constructing lexical and syntactical analyzers, abstract data types, concurrency, exception handling. The different design choices both for imperative languages and functional languages and the tools for designing lexical and syntactical analyzers are covered in detail. Within this context, the basics of formal, regular and context-free languages, parse trees, ambiguity in grammars, regular expressions and their usage in lexical analyzers are included. Students learn how to write context-free grammars and BNF notation in detail.
Assembly language general concepts. Source and object program. Re-entrant and re-executable program. Addressing techniques. Procedure definitions, procedure communication techniques, macro facilities. Operating system-assembly language connections: system calls. System-call mechanism, input/output interfaces. Loaders, linkers. Microprogramming. One and two pass assemblers. Interrupt mechanism, interrupt management. Fundamental I/O programming techniques. Programmed and interrupted I/O programming. Direct memory access. Embedded systems I/O programming examples. Device drivers: Device types, character device drivers and example, block device drivers.
Basic file concepts. Secondary storage devices and physical file organization. File management system and types. Fundamental file processing operations. Index and types. Indexing by hashing and types. Tree structured indexes. Sorting. Spatial and multidimensional indexing structures. Folded indexes.
Definition of the operating system. Job, process, batch and interactive processing, multitasking and real-time processing concepts. Processes, context and task switching, UNIX process state and queue diagrams, processes management algorithms. Threads. Concurrent processes. Inter-process communication and synchronization, mutual exclusion. Low-level synchronization operators and semaphores. High-level synchronization functions. UNIX pipes and FIFOs. Deadlocks. Memory management: Single and contiguous, static and dynamic partitioned memory, swapping, paging, segmentation, virtual memory. File management: Directory structures, FAT, i-node structures, file allocation methods, security and protection. Distributed processing, TCP/IP, client-server paradigm, socket programming.
Basic concepts of software engineering. Types of computer systems and the software as a part of them. The relation of software engineering to the systems engineering. The scope of software engineering: Software development (analysis, design, coding, and test), software engineering management, software configuration management, software engineering processes, software engineering tools and methods, and software quality assurance. Software metrics and software cost estimation. Cost of software quality. Software development process models and process reference models.
Engineering middle-size software applications from the scratch by using both management and development practices. Initial requirements of software projects and planning its development. Practicing requirements analysis, architectural design, and detailed design of software systems in accordance to a pre-defined software development life-cycle (based on Open Unified Process), and documenting the outputs of these activities in pre-defined formats (as recommended by IEEE). The students are required to show a working prototype of the software architecture by coding several critical requirements of the system at the end of the laboratory. The use of J2EE technologies is intended during the design and implementation of the software system.
At the end of the internship, the student will implement a project and work in an organization.
The student has to attend to a number of technology seminars that will be organized by the department. The subject of the seminars will be determined based on current technological agenda. The presenters might be either internal or external (e.g. from the industry) to the department.
The student has to attend to a number of technology seminars that will be organized by the department. The subject of the seminars will be determined based on current technological agenda. The presenters might be either internal or external to the department.
Digital image fundamentals, linear image filtering and correlation, non-linear filtering, image enhancement, histogram modification techniques, image restoration, image compression, frequency domain processing and segmentation.
Practical applications of topics presented in "Fundamentals of Image Processing". Digital image fundamentals, linear image filtering and correlation, non-linear filtering, image enhancement, histogram modification techniques, image restoration, image compression, frequency domain processing and segmentation.
Theory and practice of video game design and programming. Video game programming as a combination of computer graphics, human computer interaction, networking, artificial intelligence, computer-aided instruction, computer architecture, and databases. Video game history, taxonomy of video games, gameplay design - components of a video game experience, software architecture for video games, intro to 3D graphics and stereoscopic computer graphics, hardware architecture of contemporary video game platforms, human physical and perceptual limits, game AI (artificial intelligence), multiplayer game design, game physics, intro to real time shading effects, toon shading, reflections, lens flares, shadow.
Developing an experience on 3D game programming. The state-of-the-art graphics card pipelines, common graphics libraries such as OpenGL and DirectX and their shading languages, common problems (mainly about time and space inadequacies) of 3D games and methods/tricks that are developed to solve them.
Improvements of Occupational Health and Safety Application Guidelines, Occupational Health and Safety Legislations, Working Life and Chronic Diseases, Occupational Diseases, Stress Management in Working Life, Physical Risks and Preventive Measures, Chemical Risks and Preventive Measures, Laboratory safety, Emergency Plans, Ergonomics - Protection of Musculoskeletal System Health in the Working Environment, Occupation (division) Special Occupational Health and Safety Practices
Introduction to the foundations of networking and network architecture, direct link networks, packet switching (ATM), Internetworking (IP, ARM, ICMP, etc.), end-to-end protocols (UDP, TCP), applications (SMTP, HTTP, etc.), wireless networks
A series of experiments such as sub-netting and addressing, Cisco-IOS, router and switch configurations, ACL (Access Control Lists), VLAN configurations, topology discovery, FR/ATM wide area network switch configurations, HDLC, PPP, Frame Relay, ATM protocols, IP telephony and VoIP.
Basic security notions: Confidentiality, integrity, availability. Security threats, hacking, social engineering, legal and social issues. Operational and physical security issues, security policy formation and enforcement. Basic concepts of cryptography: encryption, hash functions, public key encryption. Authentication models: Password-based, token-based, biometrics-based authentications. Authorization models: Discretionary access control, role based access control, mandatory access control. Program security: Malwares, basic notions of secure programming. Operating system security: Protection models, security kernels, malware protection. Network security: Firewalls, intrusion detection and response systems. Logging for security, auditing, log management in network environments.
Using encryption tools for data confidentiality. Creating an experimental Public Key Infrastructure solution. Disk integrity checker configuration and testing. Using disc scanning tools for data recovery. Code review using static analysis tools. Studying a case for buffer and integer overflow attacks. Studying a case for format string attacks and input validation. Configuring IPSEC protocol on personal computers. Signing and encrypting e-mails, PGP. Studying a case for XSS attacks. Security of web session management. Firewall configuration and testing. Network vulnerability scanning. Intrusion detection system configuration and testing. Studying a case for DOS attacks.
Developing an experience on parallel programming on distributed systems such as many-core systems, clusters, grids, clouds, and supercomputers. Distributed systems with an emphasis on designing, implementing, and evaluating systems, protocols, and middleware with the goal of supporting data-intensive applications at extreme scales.
Database, database management systems, database architecture, schemas and data independence. Data models: Entity-relationship model and relational model. Integrity restrictions and relational design: Field restrictions, reference restrictions, dependencies between attributes, normal forms, design criteria. Relational languages: Relational algebra. SQL standard relational language: data definition, data manipulation, database management possibilities and main commands. Transactions. Concurrency control and serializability. Recovery mechanisms.
Basic phases of software development. Object-oriented analysis and design concepts, and the Unified Modeling Language (UML). UML views and diagrams. Use-case, activity, class, package, interaction, state, component, and deployment diagrams. The object-oriented development process and recommended usage of UML diagrams. Example resolutions of software systems.
Basic principles of the Personal Software Process that brings a discipline to the way to personal software development. Students start with the PSP0 process, where they use their current programming practices. The PSP process is enhanced through four process versions, with students writing one or two programs with each PSP version. For each program, they use the process methods just introduced, as well as all of the methods introduced with the previous process versions. All PSP materials are pre-defined, and can be accessed from the official website of the Software Engineering Institute.
Complimentary to Personal Software Process course in carrying out the assignments in accordance to PSP0 and PSP1 processes. Accomplishment of six assignments by following a series of pre-defined processes and producing pre-defined outputs. The students can use a programming language that they are comfortable with for implementing the assignments. At the end of the laboratory, the students will prepare a final report evaluating their own performance while performing the assignments by using pre-defined metrics. All laboratory materials are pre-defined and can be reached from the official website of the Software Engineering Institute.
A survey of computer graphics, graphics hardware and software, graphical primitives' description. Two dimensional graphics, transformations, windows, viewports, clipping, segmentation. Interactive input methods, device and events. Three dimensional representation, transformations and projections. Hidden surface elimination. Color maps, shading, shadowing and lighting. Textures, images, texture mapping. Animation techniques.
Computer graphics applications, widely used development environments in computer graphics, recent 3D graphics libraries, graphic hardware and software, geometric transformations, computer animation, fundamentals of modeling techniques, script languages for animation and graphics
Physics of image formation, image representation, geometrical transformations, binary image analysis, point and blob processing, filters, convolution, edge detection, texture analysis and synthesis, color spaces and models, invariant image features, optical flow, basic matching techniques.
Computer vision systems and problems, geometric transformations, optical flow problems and calculation, binary image analysis, point and blob tracking processing, invariant image features calculation, image matching with fundamental matching techniques
Mobile/wireless technologies and how these technologies are utilized and integrated to meet specific business needs. Specific skills needed for developing mobile/wireless applications. Design of modern distributed software systems, mobile application development technologies, architectures and techniques in the advanced network technologies supporting the upper layers, planning, management and security in mobile systems, mobile game design.
Developing an experience on mobile/wireless technologies and how these technologies can be used and integrated to meet specific business needs. Design of modern distributed software systems, mobile application development technologies, architectures and techniques in the advanced network technologies supporting the upper layers, planning, management and security in mobile systems, mobile game design.
Microprocessors, memory units, input/output interfaces, co-processors, sensors as input/output drivers, electromechanical guidance devices, microcontrollers, embedded system design with core components, FPGA (Field Programmable Gate Array), Verilog, real-time operating systems, embedded Linux, Windows CE.
Principles and algorithms for prototyping embedded systems that are able to perform high levels of deduction and adaptation. Examples of embedded systems include self-directed deep space probes, robotic soccer teams, acrobatic helicopters and mobile robots. Weekly experiments implemented on FPGA systems.
Wired and wireless LAN; Repeating, Bridging and Switching Hubs; Routers; VLANs; WANs, TCP/IP Protocol Suite; IP Address Planning; Network Design; IP, TCP and UDP Layers; DHCP; Broadcasting and Multicasting
Basics of computer networks, ISO reference model. TCP/IP, network types and topologies. Physical layer: Physical communication media types, attenuation and distortion of electrical signals. Fourier series and modulation, frequency and time division multiplexing, modulation methods. Modems, connection standards. Bit, character and frame synchronization. Data link layer: Idle RQ, continuous RQ algorithms, sliding window mechanism, HDLC and derivative protocols. LANs, Local area networks, Ethernet and Token Ring. WANs, wide area networks, PPP, ATM and Frame Relay, telecommunication services and standards.
LANs and Ethernet; VLANs; Switch and router configuration I; Switch and router configuration II; Access list and packet filtring; RIP ve OSPF; NAT Network Address Translation; Topology discovery; Frame Relay; DHCP
Using geographic information systems in scientific area and for decision-making. Applications of geographic information; modeling geographic reality; spatial data collection; geographical databases; geographic analysis; accuracy and uncertainty; visualization and legal, economic, and ethical issues associated with the use of geographic information; satellite-based remote sensing; intelligent transportation systems and other geographic information technologies.
Advanced database management systems; database definition; querying and application development with databases; research and presentation of database technologies; backup and repair; popular database systems.
Concepts of Geographical Information Systems (GIS), inputs of GIS applications, match of GIS systems, using popular GIS tools, problem specific GIS data structures, creating new geo spatial data types, analysis of vector based distance functions, design and implementation of geo spatial databases, well known GIS solutions.
For this applied course, each student develops a software or hardware with a close supervision of a faculty member. CAD and other required hardware tools are used in the case of hardware oriented projects. For software oriented projects; neat, user friendly man-machine interaction and other software engineering techniques are required for the developed software.
For this applied course, each student develops a software or hardware with a close supervision of a faculty member. CAD and other required hardware tools are used in the case of hardware oriented projects. For software oriented projects; neat, user friendly man-machine interaction and other software engineering techniques are required for the developed software.
Basic concepts and approaches of assuring software quality within the software development life-cycle. The topics covered include: Basic terms and concepts of software quality assurance. Software verification, validation, and testing. The concepts of error, fault, and failure. Software verification and validation methods and standards. Software reviews and inspections. Overview of metrics used to measure software quality. The levels and methods of software testing. Functional and structural testing. Integration and system testing. Object-oriented testing.
Practicing of basic methods of software quality assurance on readily developed middle-size software systems. The students will be assigned working software systems and are required to design and run software tests based on widely-used methods of software testing. Code review will be practiced as a part of assuring software quality. The students will report the design and outputs of their software quality assurance activities, and discuss the costs and benefits of carrying out them in their reports.
Basic principles of the Team Software Process (TSPi) that guides students in carrying out team software project together. Forms, scripts, and standards needed for a small software team project. Designed for one, two, or three development cycles. Practicing the process in the first cycle, using the process under schedule pressure in the second cycle, and in the third cycle, fully internalizing the lessons they learned in the first two. All TSPi materials are pre-defined, and can be accessed from the official website of the Software Engineering Institute.
Complimentary to Team Software Process course in carrying out the assignments in accordance to TSPi. The students are assigned pre-defined roles, and required to complete software development assignments as a team by following a pre-defined process and producing pre-defined outputs. All laboratory materials can be accessed from the official website of the Software Engineering Institute.
Finite state automata: Deterministic and nondeterministic automata models, Mealy and Moore machines, simplification method. Regular sets and regular expressions, finite automata - regular expression relation. Formal grammar and languages, grammar and language classes and properties. Regular grammar and languages, regular grammar - finite automata relation. Context free grammar and languages. Pushdown automata model, pushdown automata - context free grammar relation. Turing machines and restricted languages. Parsing: parsing types, top-down and bottom-up parsing, LL(k) and LR(k) parsing for context-free languages, usage of finite automata in LR(k) parsing.
Fundamental ideas in the theory of computation. Classification of solvable problems, computability and complexity, reducibility among computational problems, online distributed algorithms, impossibility results, polynomial-time reducibility, NP-Completeness, the Cook-Levin theorem.
Basic counting principles: Permutations and combinations. Binomial coefficients. Inclusion-exclusion principle. Recurrence relations. The fundamental concepts and methods of graph theory and its applications. Topics covered include: paths and searching, trees, networks, cycles, planarity, independence, subgraphs, isomorphism, connectivity, planarity, chromatic number, Eular graph, Hamilton graph, minimum spanning tree, shortest path, maximal flow, vertex coloring, activity schedule.
Fundamental concepts in compiler design and construction. Development of the logical design of a compiler, lexical analyzer, parser, semantic analyzer, code generator, code optimizer, and error recovery routines. Analysis of formal algorithms for each component, description of overall compiler construction techniques.
Problem solving techniques: State-space approach, problem-reduction approach, exhaustive search algorithms, heuristic search algorithms, game playing algorithms and game trees, logic programming, knowledge representation and reasoning, learning in AI systems, artificial neural networks, proof theory of propositional logic, first-order predicate logic, Bayesian networks, semantic nets, fuzzy logic, perception, robotics.
Basic concepts in learning, Bayes decision theory, decision tree learning, regression, classification, linear and non-linear discriminative models, supervised and unsupervised learning, feature selection, dimensionality reduction, model selection, machine learning applications.
General approach in fuzzy logic, fuzzy sets, relations and arithmetic. The relation between fuzzy logic and the other theories such as possibility and probability theory. Fuzzy inference systems. Hybrid methods in fuzzy inference. Fuzzy clustering. Examination of common application areas: Decision making, pattern recognition, data base, data mining. Fuzzy logic and artificial intelligence.
Asymptotic growth rates and asymptotic notations. Basic tools for analyzing and comparing performance. Recursive thinking, recursive relations. Worst, average and best-case analysis. How to use the master theorem. A divide-and-conquer example: Multiplying two n-bits numbers. Overview of sorting and selection: Sorting in linear time (radix, counting and bucket sort), lower bound for sorting, analysis of heap generation, heapsort, average-case analysis of insertion and quicksort, tournament method, selecting the kth smallest element in linear time. Dynamic programming: Matrix-chain multiplication, longest common subsequence.
Overview of Machine Learning, Linear Regression, Least Squares, Machine Learning Methodology, Probability and Linear Algebra Basics, Statistical Estimation: MLE, MAP, Naive Bayes Classifier, Linear Classification Models: Logistic Regression, Linear Discriminant Functions, Perceptron, Support Vector Machines, Decision Tree Learning, Ensemble Methods: Bagging, Boosting, Clustering, Neural Networks, Principle Component Analysis
Basic concepts of systems. State-space representation. Discrete and continuous time linear dynamical systems. Linear state equations. Linear time-invariant systems. Equilibrium points. Stability. Feedback. Controllability. Observability.
Foundations of molecular biology and genetics and the structure and properties of data produced at various levels, DNA and protein sequence analysis, protein 3-D structures and analysis, annotation and prediction of gene and protein functions, phylogenomics and population genetics, gene expression analysis, systems biology and biological networks.
Preliminary concepts and recent technological changes on the computer architecture. Virtual memory organizations, memory architectures, cache memory, instruction set design, RISC architecture, processor micro-architecture and pipelining, superscalar architectures, VLIW machines, vector supercomputers and parallel computers.
Fundamental concepts of microprocessors. 8088/86 processor. Memory types. Memory design. I/O system. Interrupt mechanism, interrupt priority encoders. Direct memory access. I/O Interface design. Introduction to microprocessor based embedded system design. Microcontrollers.
An introduction to Intel x86 microcontroller-based embedded systems development. Structured laboratory exercises in the following areas: Assembly programming, peripheral interfacing, interrupt management, structured programming, basic I/O via peripheral devices and other related topics. Weekly descripted experiments applied on DIGIAC 2000 systems.
Parallel programming languages and frameworks, Amdhal’s Law, performance evaluation, shared and distirbuted memory systems, message passing protocols, R for HPC, Python for HPC, Vectorization, Massively parallel architectures, Big Data concepts
Introduction to parallelism and parallel programming, network topologies for parallel computers, GPUs, parallel computer architecture (SIMD, Shared Memory MIMD and Distributed Memory MIMD), synchronization mechanisms, parallel programming models, analysis and design of parallel algorithms, development of parallel algorithms for different architectures, performance and complexity of parallel algorithms. Case studies: Selected parallel algorithms.
This course provides a thorough understanding of the fundamental concepts and recent advances in blockchain and cryptocurrencies. The contents of block-chain technology, cryptographic bases, problems in distributed systems, crypto currencies and their processing in mining, storage and spending in virtual wallets, applications and security, development and application of necessary policies and controls.
Principal protocols and applications used in the Internet today, their vulnerabilities and how they are exploited. Existing prevention and detection techniques. Introduction to security, cryptography, identification and authentication, program security, security in networks, vulnerabilities, vulnerability scanning, attacks, botnets, firewalls and traffic filtering, monitoring, audit, and intrusion detection.
the characteristics of the wireless medium, standards dominating the telecommunication systems, principles of wireless LANs, satellite systems.,how Internet supports mobility
Basic program security principles, Shell and operating system based threats, Overflow attacks, Input validation attacks, Web security, Code analysis and code security tests
Practical applications of wireless communications
Security assessment and testing. Code review using static analysis tools. Shell and environment. Integer overflow problems and attacks. Buffer overflow problems and attacks. Format string problems and attacks. Input validation problems and attacks. Web application security, session management, XSS attacks. Links and race conditions. Canonicalization and directory traversal problems. Temporary storage and randomness.
Methods of page ranking of search engines. Principles of recommender systems. Interactions in social networks. Data pricing methods..
Architecture and enabling technologies of high performance computing, parallel computing and distributed computing systems. Case studies on scalable multiprocessors, distributed clusters, P2P networks, computational grids, virtual machines and Internet clouds, high-performance computing, web-scale applications, data centers, content-delivery networks, case studies include: Google search-engine, TeraGrid, e-Science, DataGrid, VM Monitors, IBM BlueCloud, Amazon Elastic Clouds, Google Clouds.
Basics of information systems. Fundamental concepts of information systems, systems theory, management information, conceptual models of information in organization, decision support systems, enterprise resource planning systems, information system planning for information system projects, IS project life cycle models, maintenance principles, management and control; development, implementation, and management of information systems.
Historical perspective, continuous and discrete system models, neuron and its analytic model, hopfield neural network, perceptron learning algorithms, multilayer perceptron, error backpropagation algorithm and its problems, radial basis function neural networks, dynamical neural networks, feedback neural networks, second order training algorithms, derivative free optimzation, particle swarm optimization algorithm, applications of neural networks, reinforcement learning, unsupervised learning
Sampling of signals, reconstruction from sampled signals, nyquist sampling theorem, z transform, signal and system analysis in frequency domain, finite impulse response (fir) filters, infinite impulse response (iir) filters, fourier transform, discrete time fourier transform, discrete fourier transform and fast fourier transform, kalman filters
Assignments on the basic phases of software development using UML over a case study. The students are first expected to perform use-case analysis and propose an object-oriented design by using a UML tool. Then the students will implement the system by object oriented programming practices based on the analysis and design outputs.
Basic concepts on software architectures. The topics covered include: Software architecture concepts and stakeholders, software architecture development process, architectural requirements analysis, modeling of software architectural design. Architectural viewpoints and perspectives. Functional, information, development, concurrency, deployment, and operation viewpoints. Evolution, security, performance and scalability, and availability and resilience perspectives. Architectural styles/patterns. Comparison and evaluation of architectural design methods. Software product-line architectures, domain modeling and domain engineering.
Design patterns in object-oriented programming. Topics covered include the rationale and benefits of object-oriented software design patterns, OO design principles, classification of design patterns (Creational, Structural, Behavioral design patterns etc.), examination of all design patterns, antipatterns, architectural patterns, example applications.
Engineering middle-size software applications from the scratch by using both management and development practices. Initial requirements of software projects and planning its development. Practicing requirements analysis, architectural design, and detailed design of software systems in accordance to a pre-defined software development life-cycle (based on Open Unified Process), and documenting the outputs of these activities in pre-defined formats (as recommended by IEEE). The students are required to show a working prototype of the software architecture by coding several critical requirements of the system at the end of the laboratory. The use of J2EE technologies is intended during the design and implementation of the software system.
Developing an experience on web technologies such as Extended Markup Language (XML), web services, Service Oriented Architecture (SOA) and Business Process Management (BPM). XML and web service concepts to provide a base knowledge for SOA and BPM. SOA and BPM applications and why/when they are needed along with homeworks and term project.
The Internet and client/server side technologies. Design and implementation of scalable, secure, maintainable web applications. Internet information systems, web browsers and servers, client and server side scripting languages, JEE Web technologies, servlets, JSPs, popular frameworks, JDBC, Hibernate, JTA, GWT, JSF, architectural design patterns, dependency injection, spring, applications servers.
Introduction to natural language processing, Morphological analysis, Part-of-speech tagging, Parsing algorithms, Semantic analysis, Natural language processing applications.
Introduction to natural language processing, Morphological analysis, Part-of-speech tagging, Parsing algorithms, Semantic analysis, Natural language processing applications.
Introduction to software requirements development. System and software requirements. Software requirements development process and stakeholders. Definition and types of software requirements. Functional and quality (non-functional) requirements. Domain analysis, techniques of software requirements elicitation and analysis. Software requirements modeling and specification. Software requirements documentation and validation. Software requirements management.
The student has to attend to a number of technology seminars that will be organized by the department. The subject of the seminars will be determined based on current technological agenda on artificial intelligence. Seminars will cover principles and applications of artificial intelligence, machine learning, statistics and probability, security, image processing, robotics and medicine. The presenters might be either internal or external (e.g. from the industry) to the department.
History of computing, networking, and information storage; Ethical theories; Networked communications (spam, censorship, filtering); Intellectual property; Privacy; Security; Reliability; Professional Ethics
Problem-solving agents, uninformed search algorithms, heuristic search algorithms, game playing algorithms, constraint satisfaction problems, logical agents, propositional and first order logic, inference and decision making, knowledge representation and reasoning, planning, uncertainity and probabilistic reasoning, Bayesian networks, reinforcement learning, perception, robotics and computer vision.
Overview of the data science
Data collection and data management
Visualization and basic statistics
Hypothesis testing and causality
Similarity, neighbors and clusters
Large scale data analysis
Collaborative filtering
Ethical issues in data science.
Overview of the data science;
Data collection and data management;
Visualization and basic statistics;
Hypothesis testing and causality;
Similarity, neighbors and clusters;
Large scale data analysis;
Collaborative filtering;
Ethical issues in data science.
Project
Overview of Machine Learning;
Nearest Neighbor Classifier;
Linear Regression, Least Squares;
Machine Learning Methodology;
Learning Theory;
Probability and Linear Algebra Basics;
Statistical Estimation: MLE, MAP, Naive Bayes Classifier;
Linear Classification Models: Logistic Regression, Linear Discriminant Functions, Perceptron;
Artificial Neural Networks;
Support Vector Machines;
Decision Tree Learning;
Ensemble Methods: Bagging, Boosting;
Clustering;
Ethics in Machine Learning.
Introduction to automata theory.
Deterministic finite automata (DFA) and non-deterministic finite automata (NFA).
Regular languages and regular expressions.
Properties of regular languages and pumping lemma for regular languages.
Context-Free languages (CFL) and context-free grammars (CFG).
Parse trees.
Pushdown automata (PDA).
Equivalence of CFGs and PDAs.
Properties of Context-Free Languages and Pumping Lemma for Context-Free Languages.
Turing machines and computability theory.
Overview of Machine Learning
Nearest Neighbor Classifier
Linear Regression, Least Squares
Machine Learning Methodology
Learning Theory
Probability and Linear Algebra Basics
Statistical Estimation: MLE, MAP, Naive Bayes Classifier
Linear Classification Models: Logistic Regression, Linear Discriminant Functions, Perceptron
Artificial Neural Networks
Support Vector Machines
Decision Tree Learning
Ensemble Methods: Bagging, Boosting
Clustering
Ethics in Machine Learning 
Project
The student has to attend to a number of technology seminars that will be organized by the department. The subject of the seminars will be determined based on current technological agenda. The presenters might be either internal or external (e.g. from the industry) to the department.
Introduction to computer systems, Data representation, Machine language, Processor architecture, Code optimization, Memory hierarchy, Virtual memory
Image formation,
Point operations and histogram processing,
Spatial filtering techniques,
Frequency domain approaches,
Image smoothing,
Edge detection
Image segmentation
Learning-based approaches
Image formation,
Point operations and histogram processing,
Spatial filtering techniques,
Frequency domain approaches,
Image smoothing,
Edge detection,
Image segmentation,
Learning based approaches
Physics of image formation, image representation, geometrical transformations, binary
image analysis, point and blob processing, filters, convolution, edge detection, texture
analysis and synthesis, color spaces and models, invariant image features, optical flow,
basic matching techniques.
Physics of image formation, image representation, geometrical transformations, binary
image analysis, point and blob processing, filters, convolution, edge detection, texture
analysis and synthesis, color spaces and models, invariant image features, optical flow,
basic matching techniques.
Cameras and image formation;
Color perception;
Image processing review;
Data-driven image synthesis;
Image manipulation (warping, morphing, mosaicing, matting, blending, compositing);
Panoramas, mosaics and collages;
Denoising;
Image inpainting;
High dynamic range imaging and tone mapping;
Depth and defocus;
Image-based lighting and rendering;
Non-photorealistic rendering.
Introduction to natural language processing;
Morphological analysis;
Part-of-speech tagging;
Parsing algorithms;
Semantic analysis;
Natural language processing applications;
Introduction to Deep Learning;
Introduction to natural language processing;
Morphological analysis;
Part-of-speech tagging;
Parsing algorithms;
Semantic analysis;
Natural language processing applications;
Introduction to Deep Learning
Basic concepts of Speech recognition. Speech Recognition algorithms. Language models,
Application of speech recognition.
Neural networks, learning in neural networks, backpropagation,supervised deep learning techniques, convolutional neural networks, unsupervised deep learning methods, recurrent neural networks, foundations of deep reinforcement learning, modelling sequential data, foundations of deep generative adversarial networks.
Neural networks, learning in neural networks, backpropagation,supervised deep learning techniques, convolutional neural networks, unsupervised deep learning methods, recurrent neural networks, foundations of deep reinforcement learning, modelling sequential data, foundations of deep generative adversarial networks.
General approach in fuzzy logic, fuzzy sets, relations and arithmetic. The relation between fuzzy logic and the other theories such as possibility and probability theory. Fuzzy inference systems. Hybrid methods in fuzzy inference. Fuzzy clustering. Examination of common application areas: Decision making, pattern recognition, data base, data mining. Fuzzy logic and artificial intelligence.
Big Data, Distributed Computing, Cluster Computing, Scalable Machine Learning, Cloud Computing and Virtualization, Graph Analytics, Data and Ethics.
Big Data, Distributed Computing, Cluster Computing, Scalable Machine Learning, Cloud Computing and Virtualization, Graph Analytics, Data and Ethics.
Basic concepts in Data Mining
Data Preprocessing, Visualization, OLAP
Classification
Clustering
Association Analysis
Data Mining Applications and Tools
Data Preprocessing, Visualization
Clustering
Association Analysis
Data Mining Applications and Tools
Unstructured text processing methods
Topic models and statistical models.
Pattern based information extraction methods
Graph theory based text mining
Semantic Analysis.
Apllication of Natural Language Processing.
Basic and advanced techniques for text-based information systems, text indexing, Boolean and vector space retrieval models, language models, tolerant retrieval, evaluation and interface issues, web crawling and link-based algorithms, clustering and LSI, neural models for retrieval.
Propositional logic: syntax, semantics, natural deduction proofs
Predicate logic: syntax, semantics, natural deduction proofs, Horn clauses
Predicate logic: unification, resolution
Declarative and procedural meaning of Prolog
Data structures in Prolog
Using backtracking as a problem solving technique in Prolog
Using Prolog in artificial intelligence applications
Basic concepts about systems
System (transfer function, differential equation, state space) representations
Continuous time linear dynamic systems
Stability analysis
Steady state and transient regime analysis
Frequency domain analysis and PID controllers
Feedback, state space, controllability, observability
Rationality, decision theory, probabilistic reasoning, dynamic programming, Markov decision processes, planning, optimization, reinforcement learning, learning from demonstration, and explainability and behavioural aspects for decision making.
This course is intended to present fundamentals of robotic systems. Specific subjects include: position and orientation in 3-D space; manipulator forward and inverse kinematics; velocities and forces - Jacobian's relations; manipulator dynamics; stiffness and compliance control; trajectory control; mobile robots.
This course aims to teach the basics of robotic systems with experimental methods. Topics include: Coordinate transformations, deriving kinematic relations, Denavit-Hartenberg notation, obtaining a dynamic model, controller design, validation and controller tuning.
Kinematic models, sensors, vision and navigation
Social robotics, multi-modal human-robot communications, human-robot interaction architectures, sensors and perception for HRI, museum and educational robots, urban search and rescue, quality of life technologies
Social robotics, multi-modal human-robot communications, human-robot interaction architectures, sensors and perception for HRI, museum and educational robots, urban search and rescue, quality of life technologies
Foundations of molecular biology and genetics and the structure and properties of data produced at various levels, DNA and protein sequence analysis, protein 3-D structures and analysis, annotation and prediction of gene and protein functions, phylogenomics and population genetics, gene expression analysis, systems biology and biological networks. Also, AI-based application examples for all of the topics listed above.
Basic concepts in medical image analysis, 2-D, 3-D, and 4-D biomedical images, volume data, pixels and voxels, file-formats and related practical information, relevant basic mathematical concepts such as registration, segmentation and classification, image acquisition techniques, noise and image enhancement, lossless compression, biomedical image databases, machine learning applications for classification and clustering of images.
Basic concepts in medical image analysis, 2-D, 3-D, and 4-D biomedical images, volume data, pixels and voxels, file-formats and related practical information, relevant basic mathematical concepts such as registration, segmentation and classification, image acquisition techniques, noise and image enhancement, lossless compression, biomedical image databases, machine learning applications for classification and clustering of images.
Types, structures and properties of data produced in the biomedical field, knowledge representation, clinical risk stratification, biomarker discovery, time series analysis of physiological data, patient outcome prediction, disease progression modelling, cancer detection analysis, big data approaches in health. Also, artificial learning based application examples for all of the topics listed above.