Compulsory Departmental Courses

SE112 - Introduction to Software Engineering (3 + 0) 3.5

Computer Software and its types, Software Engineering discipline and its fundamental concepts, Software Process models, Requirements Engineering concepts, system modeling, architectural design, design and implementation, software testing, software evolution and maintenance, project management, quality and configuration management.

SE212 - Human-Computer Interaction (3 + 0) 8

Basic principles of user interfaces, human capabilities and limitations; usability paradigms and principles, user and task analysis, design process, prototyping and evaluation, color and typography, new user interface technologies.

SE221 - Software Requirements Engineering (3 + 0) 6

Basics of software requirement, requirements from the customer's perspective, applications in requirements engineering, the role of requirements analyst, forming product vision and project scope, understanding customer and user requirements, documenting requirements, risk reduction through prototyping, setting requirement priorities, validating

SE321 - Object-Oriented Analysis and Design (3 + 0) 7

Fundamentals of object-orientation, object-oriented (OO) modeling using UML, Experimentation in OO analysis: identification of use cases and objects, experimentation in OO design: class hierarchies, implementation in OO programming, design pattern (overview), case study to reinforce the underlying concepts.

SE322 - Software Architecture (3 + 0) 5

Introduction to software architecture, architecture business cycle, creating an architecture, introducing a case study, understanding and achieving quality, design, document and reconstruct software architecture, methods in architecture evaluation, quantitative approach to architecture design decision making, software product lines, types of

SE324 - Software Project Management and Economics (3 + 0) 5

Introduction to software project management; overview of project planning; selection of appropriate project approach; activity planning, resource allocation, project tracking and control; contract management; managing people and organizing teams; software quality assurance; configuration management; various tools of software project management;

SE328 - Algorithms and Optimization Methods (3 + 0) 5

Design and analysis of algorithms; mathematical complexity of algorithms; master theorem; decrease-and-conquer; divide-and-conquer; transform-and-conquer; introduction to some optimization techniques; dynamic programming; greedy technique; iterative improvement; coping with limitations of algorithm power.

SE344 - Systems Software Validation and Testing (2 + 2) 6

Software testing and its essentials, risk management, verification and validation, static V&V techniques and their comparison, software testing strategy and techniques, software testing tools, configuration management, software measurement and metrics related with testing.

SE345 - Software Quality Assurance (3 + 0) 7

Introduction to software quality and assurance; software quality metrics; construction of software quality assurance; configuration management; software validation and verification; reviews, inspection and audits; software process improvement models; software testing strategies and testing techniques; defect reporting and removal; software

SE399 - Summer Practice I (0 + 0) 6

A minimum of six weeks of training in the industry involving the observation of the hardware and software components of a computer system in use.

SE493 - Project Orientation (2 + 0) 5

Computing and IS projects, research, project planning and risk management, national and international standards, team working, literature survey, conducting project, project presentation, lifelong learning, ethics, legal issues, innovation and entrepreneurship.

SE494 - Senior Project (4 + 0) 9

Project analysis and design, project development, project management, team working, project presentation.

SE499 - Summer Practice II (0 + 0) 10

A minimum of six weeks of training in an IT department/company involving the observation of the hardware and software components of a computer system.

Elective Courses

CMPE432 - Virtualization (3 + 0) 5

Types of virtualization, hardware virtualization, hypervisors, server virtualization, desktop virtualization, storage virtualization, application virtualization, OS virtualization requirements and techniques, benefits and costs, security issues.

ISE308 - Introduction to Mobile Application Development (3 + 0) 5

Mobile devices, mobile platforms, mobile operating systems, mobile programming, user interface design in mobile devices; data store in mobile platform, map and location-based services, telephony and SMS, sensors.

ISE332 - IT Infrastructure and Architecture (3 + 0) 5

IT infrasturucture, IT architecture, IT system model, cloud computing, green IT, big data, datacenters, servers, processor architectures, storages, networking, operating systems, virtualization, security, end user devices, system performance analysis and management, IT service management (ITIL, COBIT).

ISE353 - Information Systems Development (3 + 0) 10

Information systems, strategy and information systems, business information technology, distributed systems, internet and www, e-commerce and business, business intelligence, file organizations and databases, process analysis and modeling, data analysis, systems design, detailed design and implementation, object-oriented approaches, systems

ISE434 - Fundamentals of the Internet of Things (3 + 0) 5

Basics of IoT, IoT ecosystem, IoT architecture, technologies and tools for IoT environment, IoT programming, smart use cases, cloud for IoT applications and analysis, IoT data analytics, edge and fog computing, security management in IOT, future of IoT

MATH380 - Numerical Methods for Engineers (3 + 1) 5

Solution of nonlinear equations, solution of linear systems, eigenvalues and eigenvectors, interpolation and polynomial approximation, least square approximation, numerical differentiation, numerical integration.

MATH427 - Introduction to Crytopgraphy (3 + 0) 6

Basics of cryptography, classical cryptosystems, substitution, review of number theory and algebra, public-key and private-key cryptosystems, RSA cryptosystem, Diffie-Hellman key exchange, El-Gamal cryptosystem, digital signatures, basic cryptographic protocols.

MECE447 - Path Planning and Navigation (3 + 0) 5

Introduction, kinematic models for mobile robots, mobile robot control, robot attitude, robot navigation, path finding, obstacle mapping and its application to robot navigation, application of Kalman filtering.

SE-AE4FA1 - Departmental Elective (0 + 0) 5

SE-AE4FA2 - Departmental Elective (0 + 0) 5

SE-AE4FA3 - Departmental Elective (0 + 0) 5

SE-AE4SP1 - Departmental Elective (0 + 0) 5

SE-AE4SP2 - Departmental Elective (0 + 0) 5

SE-AE4SP3 - Departmental Elective (0 + 0) 5

SE-GE4FA1 - Non-Departmental Elective (0 + 0) 4

SE-GE4FA2 - Non-Departmental Elective (0 + 0) 4

SE-GE4SP1 - Non-Departmental Elective (0 + 0) 4

SE427 - Blockchain and Cryptocurrency Technologies (2 + 2) 5

Introduction.Blockchain Basics.Consensus Algorithms.Cryptography Fundamentals.Blockchain Networks. Blockchain Programming. Blockchain Transactions, Mining, and Wallets. Smart Contracts. Cryptocurrencies. Blockchain Applications. Decentralization. Blockchain Security. Legal Aspects, Finance, and Economy. Future of Blockchain Technologies.

SE481 - CO_OP Practice I (3 + 0) 5

Participating in software/hardware development projects in IT companies who have a COOP agreement; analyzing the methods and techniques utilized in the company; working in analysis, design and development of a project; preparing a report and presentation of his/her experiences.

SE483 - CO_OP Practice II (3 + 0) 5

Participating in software/hardware development projects in IT companies who have a COOP agreement; analyzing the methods and techniques utilized in the company; working in analysis, design and development of a project; preparing a report and presentation of his/her experiences.

SE544 - Cognitive Aspects of Software Engineering (3 + 0) 5

Introduction to cognitive science and its methods; cognitive processes related to software engineering (memory, expertise, attention, decision making and problem solving, team cognition); basic experimental design; case studies on cognitive aspects of software engineering research.

Technical Elective Courses

CMPE312 - Visual Programming (2 + 2) 5

Review of object-oriented programming, visual programming basics such as value types, operator overloading, exception and event handling; using GUI frameworks; working with files and data access by using XML.

CMPE318 - Java Programming (2 + 0) 5

Java technology, object-oriented programming, objects, classes, modularity; encapsulation, polymorphism, elements of Java, exceptions, garbage collector; classes and inheritance; interfaces; the collections framework; the input/output framework; the graphical user interfaces framework; threads.

CMPE326 - Formal Languages and Automata (3 + 0) 6

Languages and their representations, finite automata and regular grammars, context-free grammars, concept of abstract machines and language acceptance, deterministic and non-deterministic finite state machines, pushdown automata, Turing machines and introduction to the theory of computation.

CMPE343 - Database Systems and Programming (2 + 2) 5

Concurrent operations on databases; transaction processing and concurrency control; DB recovery, security and authorization; introduction to DB programming, object-oriented DB concepts.

CMPE376 - Computer Games and Simulation (2 + 2) 5

History of games and current trends in games, the main concepts on game design and development, evaluating commercial games; main game design issues; creating simulations; using artificial intelligence in games; using physics and mathematics in games; main computer graphics concepts used in games; human computer interaction concepts for developing

CMPE413 - Logic Programming (3 + 0) 5

Lisp programming: symbolic expressions, elementary functions, Lambda notation, forms, functions, list structures, Prolog programming: facts, rules, relationships; data structures; backtracking; input/output; built-in predicates.

CMPE424 - Language Processors (3 + 0) 5

Fundamental concepts of compilation and interpretation; single-pass and multiple-pass language translators; lexical analyzer; top-down parsing, and LL(1) grammars; recursive descent method; bottom-up parsing; shift reduce technique; operator precedence grammar, LR(0) and SLR(1) grammars; syntax directed translation; error processing and recovery; s

CMPE433 - Cloud Computing and Virtualization (3 + 0) 5

Cloud description, types of cloud, services, deployment models, types of virtualization, hardware virtualization, hypervisors, OS virtualization, server virtualization, desktop virtualization, storage virtualization, application virtualization, benefits and costs, security issues.

CMPE434 - Embeded System Design (2 + 2) 5

Embedded systems and their applications, metrics of embedded systems, components of embedded systems, realization of embedded systems, PCB technologies, simulation, emulation, rapid prototyping, testing and certification examples of realizations optimized for different applications, analysis of development costs and times, laboratory work on specif

CMPE435 - Special Topics in Computer Networks (3 + 0) 5

Elaborate concepts of TCP/IP computer networks; application details for well-known applications on the Internet. IPv6 addresses; routing principles and routing algorithms; ICMP communication; VPNs; wireless-networking; network security.

CMPE437 - VLSI Design (2 + 2) 5

Basic fabrication sequence of ICs, self aligned silicon gate, NMOS and CMOS technologies; design rules and layout; memories and registers; full custom and semi-custom ICs; standard cells, gate arrays, FPGAs and PLDs. CAD tools for design of ICs; high level design of ICs using VHDL; low power IC design.

CMPE461 - Applied Neural Computing (2 + 2) 5

Introduction to neural networks, perceptron learning rules, backpropagation algorithms, generalization and overtraining, adaptive linear filters, radial basis networks, self organizing networks, learning vector quantization, recurrent networks.

CMPE462 - Introduction to Artificial Intelligence (3 + 0) 5

Agent paradigm, problem solving by searching, informed/uninformed search methods, genetic algorithms, simulated annealing, constraint satisfaction problems, adverserial search, logical agents, knowledge engineering, expert systems, communication, AI applications.

CMPE463 - Digital Signal Processing (3 + 0) 5

Discrete-time domain and frequency domain representation of signals and systems; sampling and reconstruction; DFT, FFT, z - transform, filter design techniques; finite word length effects; 2-D filtering; applications of DSP; programming of some DSP processors.

CMPE464 - Digital Image Processing (3 + 0) 5

Introduction to signal and image processing, introduction to digital image processing, sampling, reconstruction, and quantization, digital image representation, image transforms, enhancement, restoration, segmentation and description.

CMPE465 - Knowledge Engineering (3 + 0) 5

Knowledge representation methods: rule-based, graph-based, logic-based methods, introduction to Prolog, knowledge acquisition, expert systems, ontology, semantic web, introduction to machine learning.

CMPE466 - Soft Computing (3 + 0) 5

Biological and artificial neurons, perceptron and multilayer perceptron; ANN models and learning algorithms; fuzzy sets and fuzzy logic; basic fuzzy mathematics; fuzzy operators; fuzzy systems: fuzzifier, knowledge base, inference engine, and various inference mechanisms such as Sugeno, Mamdani, Larsen etc., composition and defuzzifier.

CMPE467 - Pattern Recognition (3 + 0) 5

Bayes? decision theory, classifiers, discriminant functions and decision surfaces, estimation of parameters, hidden Markov models, nearest neighbor methods; linear discriminant functions; neural networks; decision trees; hierarchical clustering; self organizing feature maps.

CMPE473 - Computer Graphics (2 + 2) 5

Hardware and software components of graphic systems; output and filled data primitives; 2D and 3D geometric transformation; 2D and 3D viewing pipelines; visible-surface detection methods.

ISE201 - Business and Ethics (3 + 0) 4.5

Ethical concepts relevant to resolving moral issues in business and decision making. Moral issues in the management of specific problem areas in business. Social and natural environments within which moral issues in business arise.

ISE261 - Business and e-Commerce (3 + 0) 6

A context for developing e-Commerce applications; types of e-Commerce applications; identifying and describing e-commerce applications; e-commerce feasibility; e-commerce requirement analysis; high-level, detailed and technical design and construction; e-business models; Internet marketing; online monetary transactions; Internet taxation; legal

ISE301 - Multimedia Systems (3 + 0) 5

Multimedia terminology and concepts, multimedia data types (digital image, audio, video); multimedia editing for different multimedia types.

ISE311 - Internet Programming (2 + 0) 5

Internet programming environments, home page design with HTML and DHTML, JavaScript, client-server model, client side scripts, and server-side scripts, web servers (installation on different OS such as Unix/Linux, and Microsoft, setting up the required components, administration), CGI, SSI, SSL, certification, cookies, and sessions, database integr

ISE314 - Data Warehousing and Mining (3 + 0) 5

Data warehousing fundamentals, planning, design and implementation and administration of data warehouses, data cube computation, OLAP query processing; fundamentals of data mining and relationship with data warehouse and OLAP systems; association rule mining; algorithms for clustering, classification and rule learning.

ISE405 - Foundations in Information Technology Services (3 + 0) 5

Service operation and continual service improvement domains of the ITIL standard for IT service management, planning and change management, asset and configuration management, security management, network management, storage management, request management, incident and problem management.

ISE407 - Introduction to Mobile Application Development (3 + 0) 5

Mobile Devices. Mobile Platforms. Mobile Operating Systems. Mobile Programming. User Interface Design in Mobile Devices. Data Store in Mobile Platforms. Map and Location-based Services. Telephony and SMS. Sensors.

ISE414 - Investigation of Computer Crime (3 + 0) 5

Computer crimes, vulnerability, risk assessment, electronic fraud, viruses and worms, computer crime laws.

ISE422 - E-Government (3 + 0) 5

Introduction to e-government, basic concepts and definitions, the components of e-government, managing e-government projects, infrastructure requirements for e-government, e-organizations, measuring e-government maturity, e-government: a profile of Turkey and world trends; risks: e-government versus conventional government procedures.

ISE423 - Technology Trends in E-Government (3 + 0) 5

Theoretical background of e-government, the use of e-government: local and global; technical and organizational aspects to realize e-government systems and contemporary sociotechnological methodologies; enterprise architectures, reference models and frameworks: Zachman, TOGAF, MoDAF, and DoDA; interoperability standards: eGIF, EIF, SAGA, and other

ISE424 - Distance Education and E-Learning (3 + 0) 5

Definitions, history, and theories of distance education and e-learning, instructional design, tools and technologies for distance education, multimedia learning, computer-supported collaborative learning, learning management systems, new directions and developments.

ISE426 - Computer Security (3 + 0) 5

Cryptographic tools, user authentication, access control, intrusion detection, malicious software, denial-of-service attacks, firewalls, trusted computing, buffer overflow, software security, Windows security, Linux security.

ISE432 - Innovation and Entrepreneurship in IT (3 + 0) 5

Innovation, innovation source, innovation process, innovation and entrepreneurship, starting a techno-business, business plan, sustainability with innovation.

SE340 - Rapid Application Development (2 + 0) 5

Overview of the base language of a Rapid Application Development (RAD) tool; object definitions, methods, properties and inheritance; form design using visual components; application development using the libraries of an industry standard RAD tool.

SE360 - System Modeling and Simulation (3 + 0) 5

Dynamic simulations, Providing custom-made data types, operators and control structures for simulation, model generators, simulation programming landscape, simulation problems.

SE375 - 3D Modeling, Animation and Game Design (2 + 2) 5

Introduction to modeling bases, an overview of the design of the model,selection of the appropriate modeling technique, transformation into simulation and animation, overview of simulation and physics engine, control of model and animation with peripherals, overview of peripherals, interactive project construction with the selection of appropriate

SE400 - Undergraduate Research Project (3 + 0) 5

This course is offered only to undergraduate students who work on a research project as part of one of the research programs identified below. The student is expected to perform the necessary research activities (literature search, analytical studies, experimental studies, etc.) under the supervision of a faculty member and present the results of these activities to the faculty member verbally and in the form of written reports. Research programs related with this course: 1. TÜBİTAK Üniversite Öğrencileri Yurt İçi / Yurt Dışı Araştırma Projeleri Destekleme Programı (TÜBİTAK-2209) 2. Atılım Üniversitesi Lisans Öğrencileri Araştırma Programı (ATÜ-LAP) 3. ATÜ – BAP

SE421 - Big Data Programming (2 + 2) 5

What is "Big Data"; the dimensions of Big Data; scaling problems; HDFS and the Hadoop ecosystem; the basics of HDFS, MapReduce and Hadoop cluster; writing MapReduce programs to answer questions about data; MapReduce design patterns; basic Spark architecture; common operations; Use Resilient Distributed Datasets (RDD) operations.

SE426 - Emerging Technologies (2 + 0) 5

What is an "emerging technology"; disruptive technologies, identification of disruptive technologies, the 3D printing revolution, the evolution of technology, the nature of innovation, combination and structure, phenomena, domains and problem-solving, origin of technologies, technological revolution, economic revolution, forecasting.

SE440 - Analysis and Design of User Interfaces (3 + 0) 5

Basics of user interfaces, use of requirements gathering techniques, finding out about user, tasks and environment, conceptual design, interaction design, design principles, interaction styles, designing GUI, designing for web, user interface evaluation process.

SE446 - Introduction to Bioinformatics (3 + 0) 5

DNA and protein sequence alignment, phylogenetic trees, protein structure prediction, motive finding, microarray data analysis, gene/protein networks.

SE450 - Software Engineering Ethics (3 + 0) 5

Corporate responsibility, engineering responsibilities, personal rights, whistle blowing, conflicts of interest, professional autonomy, risk assessment, sustainable development, and the place and purpose of engineering codes of ethics, ethics, rules and principles in software engineering and other information systems, ethical work and ethical decis

SE453 - Large Scale Software Development (3 + 0) 5

The nature and development lifecycle for large-scale software (LLS) projects, role of the software architect, software architecture and the development process, system context and domain analysis, component design and modeling, subsystem design, transaction and data design, process and deployment design, architecture techniques, applying the viewpo

SE460 - Software Construction (3 + 0) 5

Software construction fundamentals, software complexity, construction management, construction models, construction planning, software measurement, construction languages, coding, construction testing, reuse, verification and standards in construction, construction quality, integration.

SE461 - Software Patterns (3 + 0) 5

Introduction to design patterns, creational patterns, structural patterns, behavioural patterns, analysis patterns, architectural patterns, testing, refactoring.

SE462 - Formal Methods in Software Engineering (3 + 0) 5

Introduction to formal methods, fundamental aspect of formal specifications, software specification and development with mathematical semantics, constructing formal specifications for software-intensive systems, specification languages: Z, object Z and OCL, relating specifications and implementations, role of formal specification in system life cyc

SE470 - Agile Methods in Software Development (2 + 0) 5

Introduction to agile methods, eXtreme Programming (XP), Lean, Scrum, Crystal, feature-driven development (FDD), Kanban; dynamic systems development method (DSDM); architecture and design issues in agile software methods.