Courses

Introducing curriculum, functioning, units, regulations, systems and facilities within the scope of Orientation Program for new students enrolled to my university.

Basic computer literacy: terminology, system components and operation. Fundamentals of computer programming: sequence, decision, repetition, syntax, compilation, debugging and maintenance, procedures, parameters, arrays, searching, sorting, top-down structured design, and style.

Nesneye yönelik (object oriented) programlamaya giriş. Programlama dilleri, seviyeleri, tarihçe. Güvenlik, güvenilirlik ve etik. Program geliştirme; dilin yazılım kuralları; giriş/çıkış; algoritma; akış diyagramları ve sözde kod; atama; kontrol yapıları; fonksiyonlar; diziler; temel arama ve sıralama algoritmaları ve temel dosya işlemleri.; fonksiyonlar; diziler; temel arama ve sıralama algoritmaları ve temel dosya işlemleri.

Review of OOP basics; Software reusability, class composition, data abstraction and information hiding, Abstract Data Types, template classes, operator overloading; dynamic memory allocation, inheritance; abstract functions; polymorphism; stream input/output; exception handling; basic data structures.

The basic concepts and techniques of discrete mathematics that are closely related to computing: basic concepts of logic, propositional logic, set theory, functions, sequences, counting, relations, algorithms and their complexity analysis, applications of number theory; mathematical reasoning, induction and recursion; graphs theory, shortest path problems, trees, sorting and searching algorithms and applications.

The principles involved in the design, evaluation and implementation of programming languages, syntax, semantics, binding, type checking, data types, expressions, control structures, subprograms, abstract data types, support for object-oriented programming, concurrency, exception handling, and functional, logic and object-oriented programming.

Introduction; data types and data structures, abstract data types, elements and structure, virtual and physical data types; Abstract data types, object-oriented programming with contrasts drawn between this and a number of other object-oriented languages; object-oriented applications, examples of software systems constructed on the basis of the object-oriented paradigm.

An introduction to computer organization using assembly and machine language, computer arithmetic, data path and control, micro programming, instruction sets, addressing modes, memory systems and hierarchies, caches, I/O systems, interrupts, programming interrupts, RISC architectures, pipelining and other advanced techniques for performance improvements, parallel computing, interconnection networks, and multiprocessors.

Introduction to system theory; the use of graphs, formulas and functions; cash flow using spreadsheets; introduction to statistics; regression on one variable; index numbers and their use in business, industry and government. Time series analysis and forecasting; drawing reliable conclusions from investigations, analysis of data with many variables.

This course will cover fundamentals of analysis of algorithms, time and space complexity and their trade-offs. In particular, the focus is on the complexity of standard algorithms such as searching and sorting, as well as on the data structures that which support the efficient implementation of these algorithms, such as trees. Topics include basic data structures, such as lists, queues, trees; searching and sorting algorithms; dynamic programming, greedy algorithms, graph algorithms, string matching, computational geometry, NP-completeness and approximation.

Software process.  Software Subcultures. Change pattern. Control Patterns. Concepts of software process improvement: methods and models.Software Process Assessment. Software Process Improvement Frameworks: CMMI, SPICE,  ISO 33000.

Basic concepts of database systems; The relational model: domains and relations, data integrity, relational algebra, relational calculus, SQL; Database design: functional dependencies, normalization, entity/relationship model; File Structures, indexing and hashing; Data protection: recovery, concurrency, security, integrity; Views; Optimization; Distributed database systems; Object-oriented systems.

Local and wide area network architectures, protocols, services and applications; Physical data transmission, the elements of reliable and unreliable communications protocols; Transfer of information between machines with similar and different characteristics; How communications services fit in with the hardware and operation system.

Data mining is the process of automatic discovery of patterns, changes, associations and anomalies in massive databases. This course will provide an introduction to the main topics in data mining and knowledge discovery, including: statistical foundations, association discovery, classification, clustering, database support, data warehouse and OLAP technology for data mining.

Measurement and vectors, kinematics, Newton's laws, circular motion, gravitation, work and energy, conservation of energy, momentum, statics, rotational Motion, simple harmonic motion, wave motion, heat, the first law of thermodynamics, kinetic theory of gases, the second law of thermodynamics, entropy ( Related experiments ). 

Electric charge and matter, electric field, electric flux and Gauss's law, potential, capacitors, current in materials, DC circuits, magnetic field and magnetic force, Ampere's and Faraday's laws, inductance, electromagnetic waves, geometrical optics, interference, diffraction and polarization, the particle and wave nature of EM radiation ( Related experiments ).

This course aims to enable students to improve their foreign language skills in listening, speaking, reading, writing and grammar with the help of materials that meet academic standards. This course also involves various applications in order to improve academic study skills. Furthermore, the lesson aims at improving thinking faculties of students, as well as encouraging them toward critical thinking and research by providing them with in-class and outside classroom activities.

Mühendislikte istatistik, olasılık, olasılık teoremleri; koşullu olasılık; Bayes teoremi, rastgele değişkenler, Binom, Poisson; Hipergeometrik dağılımlar; olasılık dağılımlarının ortalamaları ve varyansları; Chebyshev teoremi; Multinominal dağılım. Sürekli rastgele değişkenler; Normal ve diğer sürekli olasılık yoğunluk fonksiyonları; Bileşik olasılık yoğunluk fonksiyonları. Yöneylem Araştırması'na uygulamalar; Matematik ümit ve karar verme; Rastgele süreçler; Monte-Carlo yöntemi; Frekans dağılımları, grafikler, örnekleme dağılımları

Temel matematiğe giriş, koordinatlar ve vektörler, fonksiyonlar, limit, süreklilik, türev, teğet doğrular, ortalama değer teoremi, grafikler, kritik noktalar, maksimum ve minimum problemleri, doğrusallaştırma ve diferansiyeller, integral, Riemann toplamları ve belirli integraller, matematiğin temel teoremi, doğal logaritma, üstel fonksiyonlar, ters trigonometrik fonksiyonlar, L'Hospital kuralı, integral metodları, integralin uygulamaları.

Sequences and series, Taylor and Maclaurin series, lengths of plane curves, polar coordinates and complex numbers, lines, planes and quadric surfaces in space, functions of several variables, limits and continuity, partial derivatives, differentiability, the chain rule, directional derivatives, extreme values, multiple integrals, integrals in polar, cylindrical and spherical coordinates, line integrals and surface integrals.

Matrices, row equivalence, invertibility, systems of linear equations, determinants, Cramer's rule, vector spaces, linear dependence and independence, bases, inner product spaces, Gramm-Schmidt orthogonalization process, orthogonal projections, Fourier series, eigenvalues, eigenvectors, exponential matrix, diagonalization and its applications, linear transformations and their matrices. 

Basic concepts of differential equations, first order differential equations, solutions of linear differential equations, linear equations with constant coefficients, Cauchy-Euler equations, systems of simultaneous linear differential equations, Laplace transforms, application to the solution of linear equations and linear systems, power series solutions of linear equations, introduction to partial differential equations, separation of variables.

Bu ders, ulusal ve uluslararası alanda çok önemli bir kavram olan İş Sağlığı ve Güvenliğini içermektedir. Öğrencilerde farkındalık oluşturmak için iş sağlığı ve güvenliği ile ilgili mevzuat ve uygulamalar anlatılmaktadır. Bunun yanında, evrensel etik ilkeler ve değerleri, etik teorileri, mühendislik etiği ve ilkeleri ile mesleki ikilemlerin irdelenmesi ve tartışılmasını kapsamaktadır

In this course the meaning and the importance of the Turkish Revolution , the conditions which led to the Turkish Revolution , the enviroment and the developments,the National War of Independence under the leadership of Mustafa Kemal Pasha, the founding of the new Turkish State that is totally independent that rests upon national sovereignty, Ataturk as a genious soldier, as a great statesman, as a reformer and as a perfect organiser are presented.

In this course one of the two objectives is to raise individuals who are free in their thinking and have aquired the skills of scientific thinking and possess an open minded view of the world. The course emphasizes the enrichment of our national culture through the study of how the languages were created, the analysis of the world languages from the origin and structural points of view and the status of the Turkish Language amongst the world languages. This course also aims at examining the historical development of the Turkish Language, Turkish Language structure, separating its words into their origins and suffixes, creation of words, examining problems associated with the expressions, writing petitions, preparing curriculum vitea etc. In order to support the objectives of the course various novels, poems and essay books are read and investigated.

Overview of software engineering: Systems; customers, users, and their requirements. General principles of computing: Problem solving, abstraction, division of the system into manageable components, reuse, simple interfaces. Design concepts: Evaluation of alternatives. Basics of testing.

Psychological principles of human-computer interaction. Evaluation of user interfaces. Usability engineering. Task analysis, user-centered design, and prototyping. Conceptual models and metaphors. Software design rationale. Design of windows, menus, and commands. Voice and natural language I/O. Response time and feedback. Color, icons, and sound. Internationalization and localization. User interface architectures and APIs. Case studies and project.

Domain engineering. Techniques for discovering and eliciting requirements. Languages andmodels for representing requirements. Analysis and validation techniques, including need, goal,and use case analysis. Requirements in the context of system engineering. Specifying andmeasuring external qualities: performance, reliability, availability, safety, security, etc.Specifying and analyzing requirements for various types of systems: embedded systems,consumer systems, web-based systems, business systems, systems for scientists and otherengineers. Resolving feature interactions. Requirements documentation standards. Traceability.Human factors. Requirements in the context of agile processes. Requirements management:Handling requirements changes.

This course provides an understanding of both theoretical and methodological issues involved in modern software engineering project management and focuses strongly on practical techniques.As a student of business and creative computing, you need to develop the transferable skills in logical analysis, communication and project management necessary for working within team-based, professional environments. You also need to extend your knowledge and understanding of the software development lifecycle and fundamental software engineering concepts (such as objectoriented programming, the software lifecycle, design for re-use and user-centred design). In addition to knowing and understanding the principles of traditional development methodologies, being able to understand and put to use contemporary approaches will help you to produce more robust processes and designs for delivering successful projects. You should also learn to utilise that knowledge in a variety of contexts, ranging from embedded systems to the inherently parallel distributed environments of cloud computing

This course covers the fundamental design principles and strategies for software architecture and design. Architectural styles, quality attributes, notations and documents, reference architecture, domain-specific architecture in architecture process and pattern-oriented design, component-oriented design, aspect-oriented design, and interface design in detail design process are discussed.

Topics include methods of testing, verification and validation, quality assurance processes and techniques, methods and types of testing, and ISO 9000/SEI CMM process evaluation. Provide an introduction to the software engineering testing process.Describe the quality assurance process and its role in software development.The student will be instructed in a variety of testing techniques, methods, and tools.The student will be able to describe the state of the practice verification and validation techniques. The student will demonstrate proficiency in managing a software project to customer requirements. The impact of ISO 9000 and the capability maturity model on software quality and testing will be addressed.

The project investigation involves deciding on a self-study Computer Engineering area of interest acceptable to the Department and presentation of a preliminary report within three weeks from the commencement of the course. The preliminary report should state the aim and objectives of the project and how these are to be achieved. The project work then continues leading to a report of 3,000 - 4,000 words.

The work carried out as part of this programme of work is very similar to the requirements of the roject. However, while the roject primarily concentrates on planning and research methodologies, the graduation thesis, is an independent study of a realistic Computer Engineering problem under the guidance of a supervisor and could involve economic and social factors in the solutions as well as technical analysis.

This course gives students the basic information about Linux system administration to enable them to develop system administration programs. The course topics include command line utilities, process control, file system, user management, drivers and kernel, network management, security and system programming. The course includes an overview of different types of Linux versions and Turkish PARDUS version. It introduces the fundamentals of system programming by focusing one of the popular system programming languages such as Python.

This course gives students the basic information about mobile application development and to enable them to develop applications for mobile phones, tablets, etc. It starts with the introduction of mobile devices and application characteristics, an overview of available technologies, application models and infrastructures, mobile application development platforms and frameworks. It then introduces the fundamentals of mobile application programming by focusing one of the popular mobile application development platforms.

The objective of this course is to teach advanced GUI and features in java, client-server and web applications. Topics include advanced object-oriented programming, multithreading, files, multimedia, database use, and networking concepts used for client-server applications. Additional topics include JavaBeans, Collections, Internationalization, Servlets, JSP, EJB, and XML.

The nature of information in organizations; an introduction to computer based systems and the extent to which they satisfy the information requirements of organisations. The impact of these systems on organisations and users. Detailed discussion about the various applications of computers in business and engineering applications. Analysis of system requirements and system development life cycle. Process and data modeling, relational data analysis.

The course starts with the general properties of the internet and web environment and their fundamental affect to the programming. Afterwards, by using one of the most commonly used web technologies in the market, it teaches fundamentals of web programming and topics specific to web programming such as user interface design, state management, database interaction, website security. In addition to these, advanced topics such as AJAX and Web services will also be covered. 

This course provides an introduction to the principles and techniques in computer graphics. The goal is to provide both theory and practice so that the student will be easily conversant with techniques for scientific visualization, interface design, and 2- and 3-dimensional data representation and manipulation, modeling, lightening, texture mapping, and ray-tracing.. The course will be based upon OpenGL, which though not a graphics standard, is being widely adopted as the graphics library of choice on many high-end graphics systems

Requirements analysis; Data Flow Model; Logical Data Model; Data Analysis, Entity/Event Model; Paths and Diagrams, Decision Tables. Programming Language Features, SQL/PL 3-GL, CASE tools. Prototyping; Formal specification.

Knowledge based systems are sophisticated Artificial Inteligence programs that solve complex problems. The objective of this course is to teach students an understading of the principles and system-building experience needed to develop a knowledge based system. The topics to be covered include knowledge representation, inference and reasoning, logic programing, rule-based systems, tools and shells for building expert systems, methodologies for building knowledge based systems, data mining, neural networks, uncertainity, fuzzy logic.

Introduction to fuzzy set and operations on fuzzy sets. Fuzzy system versus probability theory. Fuzzy relations and computing with fuzzy relations. Linguistic variable and computing with words. Approximate reasoning. Fuzzy regression models. Fuzzy quantification. Application to statistical decision making. Application to diagnosis. Application to control. Introduction to neural networks. A review of basic graph theory. Basics of mathematical approximation theory behind neural networks. The concept of learning and learning process in computing. Correlation matrix memory. The perception and least-mean-square algorithm. Multi-layer perceptions. Radial-basis function networks. Some advanced concepts. Application to process modelling. Application to decision and control. An outline of hybrid fuzzy-neural computing systems.

Field and space of real numbers, distance and norms in mathematical spaces, matrices, equations with real coefficients; the matrix inversion problem, eigenvalues and eigenvectors; recurrence relations, mathematical induction, and recursive algorithms; error analysis, evaluation and estimation; iterative methods in computational numeric analysis; finding roots of polynomials; numerical integration and differentiation; solving systems of linear algebraic equations, linear differential equations; the idea and concept of computer algebra systems and symbolic computation; computer handling of polynomials and rational functions; Square-free decomposition of polynomials; the extended Euclidean algorithm; Rational functions and partial fractions. 

Rapid Application Development (RAD) has become an important force in computer programming—particularly in the business world. This course explores the RAD process in the context of Microsoft .NET Framework visual development environment. Topics covered include overview of the Microsoft .NET Framework, managed execution environment, working with components, deployment and versioning, common type system, working with types, strings, arrays, and collections, delegates and events, memory and resource management, data Streams and files, database access, Internet access, serialization, and XML Web Services.

The course will familiarize the student with the theoretical and empirical principles of interface design, structured in a way that is consistent with engineering epistemology. It will also familiarize the student with the processes used by interface designers. Students will be given the opportunity to apply their acquired knowledge in the form of project-based interface analysis and design tasks. Thorough knowledge of C++, C#, Java, Pascal, or Python is required. The course syllabus is proposed to include: o Basic principles of interface design o Analysis of existing interface designs o The Model-View-Controller and other frameworks o Application development frameworks well-suited to UI prototyping o Prototype redesigns o User testing principles o Applied user testing 

This course provides an introduction to the basic concepts and techniques of digital image processing. Topics covered include Image acquisition, representation, visual perception, imaging geometry, image transforms; image enhancement methods, spatial filtering, frequency domain methods, image restoration methods, multiresolution processing, wavelet transforms; image compression, coding standards; image segmentation methods, edge detection, image representation and description.

Roles and limitations of expert systems; Cost and benefits of AI; Architecture, shells, knowledge engineering, elicitation and structuring, rule based and object orientated knowledge; Development methodologies; Rapid prototyping and KADS.

Bu ders dağıtık sistemlerin tasarım ve uygulama aşamasında metot ve teknolojileri ile beraber model ve mimarisi hakkında temel karakteristikleri verir. Anlatılacak konular dağıtık sistem mimarisi, iletişim mekanizması, protokoller, uzlaşma algoritmaları, gerçek zamanlı ve eşzamanlı uygulamalar, depolama yönetimi erişim kontrolü, nesne yönelimli dağıtık sistemler, hata toleranslandırma, isimlendirme ve kod taşınılabilirliğini içerir.

The objective of this course is to provide a systematic and in-depth understanding of Internet and Web technologies. This course covers an introduction to TCP/IP and IP addressing, client-server model, domain name system (DNS), Internet services and protocols, HTTP, HTML, JavaScript, dynamic HTML, Web servers, CGI programming, ASP, PERL, PHP, JSP and servlet programming, XML, E-commerce and Security.

Study of the topics related to maintaining large-scale software systems. Study of software engineering topics such as estimation, software quality assurance, metrics, configuration management, verification and validation, inspections, and personal and team software process as they relate to software maintenance projects. Coverage of traditional analysis and design methods such as structured analysis and design. Two, semester-long, team-based projects: reengineering a small system to be object-oriented and making changes to a moderate-sized existing software project.

This course emphasizes the quick realization of system value through disciplined, iterative, and incremental software development techniques and the elimination of wasteful practices. Students will study the full spectrum of agile methods, including Scrum, extreme programming, lean, Crystal methods, dynamic systems development method, feature-driven development, and Kanban. These methods promote teamwork, rich concise communication, and the frequent delivery of running, tested systems containing the highest-priority customer features. Agile methods are contrasted with common workplace practices and traditional methods such as Waterfall, CMMI, PMI/PMBOK, and RUP. Examples of agile adoption in industry are discussed. Additional subthemes in the course will include team dynamics, collaboration, software quality, and metrics for reporting progress.

This course includes to understand and use design-by-contract for documentation and for proving a program is correct and create models of software designs and use simulation/model-checking techniques to analyze these models and use formal notations and proof to specify and refine software requirements and exploit formalism to help organize and write specification and requirements documents that are clear and precise.

This course includes implicit parallelism covers trends in microprocessor architectures, limitations of memory system performance, dichotomy of parallel computing platforms, physical organization of parallel platforms, communication costs in parallel machines, routing mechanisms for interconnection networks, impact of process-processor mapping and mapping techniques.

Gain fundamental and comprehensive understanding of information security.

Overview of major information security issues, technologies, and approaches.

Knowledge of security properties, concerns, policies, models, cryptography, PKI, firewalls, security evaluation, and real‐life security cases. 

Vulnerabilities in software, and solutions to these. Software-oriented techniques, and OS-level techniques. Novel programming languages, programming language analyses (both on the source code, and as instrumentation on the running program), and programming tools that can be used to identify and address security issues.

In-depth view of Software Design Patterns. A programming intensive course, uses an OO programming language such as Java for presentation and analysis of the patterns and for the assignments. Patterns are reusable solutions to recurring software problems. They capture successful experiences and convey expert insight and knowledge to less experienced developers.

Design Patterns for developing big data and cloud computing applications which requires near-realtime performance while simultaneously managing big data and high user loads spread across environments ranging from cloud systems to mobile devices. Reactive applications react effectively and efficiently to failures, varying user demands, and changes in the application's execution environment. The resulting systems are highly concurrent and fault-tolerant, with minimal dependencies among individual system components.

Dominant software systems and algorithms for coping with Big Data. Large-scale non-traditional data storage frameworks including graph, key-value, and column-family storage systems; data stream analysis algorithms; large scale anomaly detection; information diffusion; and recommendation algorithms.

Cloud Computing principles, Cloud Computing components and services, Cloud Computing architectures and implementations, Cloud Computing management and security. Concept of data centers, virtualization, cloud storage, and programming models. Several concepts behind data center design and management. Virtualization, data distribution, durability, consistency and redundancy.

Mathematical modelling of software, including logic, extended finite state machines, process algebra, functions, and algebraic specifications. Mathematical reasoning of such models, including proofs of consistency, completeness, and correctness. Tools for type checking, well-formedness checking, simulation, invariant and property checking (e.g., deadlock checking, model checking), test-case generation, and code generation.

Software verification and validation uses both static and dynamic techniques of system checking to ensure that the resulting program satisfies its specification and that the program as implemented meets the expectations of the stakeholders. Static techniques are concerned with the analysis and checking of system representations throughout all stages of the software life cycle, while dynamic techniques involve only the implemented system.

Software configuration management encompasses  the disciplines and techniques of initiating, evaluating, and controlling change to software products during and after the development process. It emphasizes the importance of configuration control in managing software production.

Software metrics history and current practice, basics of measurement theory for software metrics, framework for software measurement, product, application, and process metrics.

Software process.  Software Subcultures. Change pattern. Control Patterns. Concepts of software process improvement: methods and models.Software Process Assessment. Software Process Improvement Frameworks: CMMI, SPICE,  ISO 33000.