TR    EN

Software Engineering PhD Program Course List

Compulsory Departmental Courses

Software Engineering Elective Courses

Computer Engineering Elective Courses

Information Systems Engineering Elective Courses

Compulsory Departmental Courses

SE 600 - Research Methods in Software Engineering
Rigorous, scholarly research, particularly theses or dissertations; literature review; surveys; meta-analysis; empirical research design; formulating research questions; theory building; qualitative and quantitative data collection and analysis methods; validity; reliability; triangulation; building evidences; writing research proposal and publication

SE 650 - Advanced Topics in Software Engineering
Introduction to software engineering and related topics. Software process and project metrics. Project planning, scheduling and tracking. Configuration management. Software quality assurance. Requirement analysis, data flow diagrams and related topics. Design concepts and methods, implementation, testing methods and test strategies. Object oriented concepts and principles.

SE 654 - Advanced Topics in Software Quality Management
Introduction to software quality and assurance; components of software quality assurance; configuration management; reviews, inspection and audits; software testing strategies and techniques; software quality standards; certification and assessment; introduction of case studies related with software process improvement and quality metrics; quality issues in agile and global software development

SE 658 - Advanced Software Architecture
Introduction and overview of software architecture; architectural models; software product lines and configurable software; self-adaptive software; architectural description languages; feature modeling; architecture and model-based testing

SE 660 - Qualification
The contents of the required courses in the Ph.D program.

SE 670 - Thesis Proposal
The research area in the topic of software engineering.

SE 680-I - Thesis I
Areas in the thesis protocol.

SE 680-II - Thesis II
Areas in the thesis protocol.

SE 680-III - Thesis III
Areas in the thesis protocol.

SE 690 - Thesis Jury
Areas in the thesis protocol.

Software Engineering Elective Courses

SE 503 - Information Systems Design
Introduction to software architecture; design patterns; object-oriented modeling and architectural design with contemporary notation; experimentation in design; design prototyping; working on design teams and management of object-oriented projects; detailed design and implementation issues; design reviews; using design document for coding

SE 546 - Decision Support in Health Informatics
Choosing the correct information for different decisions and communicate its meanings to users; evaluation of statistical and other methods and tools; the difference between research databases and operational databases; techniques to effectively communicate quantitative healthcare data using tables and graphs; methods for choosing the right medium

SE 552 - Advanced Software Project Management
Introduction to project management; algorithmic cost estimation models; advanced cost estimation models; function points estimation; risk assessment; life cycle models; prototyping; management of software reuse; software maintenance; software maturity framework; case studies

SE 555 - Model Driven Software Development
Introduction to MDD; modeling languages; software reusability; domain specific modeling; metamodeling; model transformations; metamodeling tools; code generation; MOF (meta object facility); software components

SE 556 - Software Construction and Evolution
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

SE 560 - Requirements Engineering
Domain understanding and requirements eliciation; requirements evaluation; requirements specification and documentation; requirements quality assurance; requirements evolution; modelling system objectives with goal diagrams; risk analysis on goal models; modelling system agents and responsibilities; modelling system behaviours; integrating multiple system views; a goal-oriented model-building method in action; formal specification of system models

SE 562 - Formal Methods in Software Engineering
Introduction to formal specifications for software development; 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 cycle; classification of formal methods; formal validation and verification

SE 564 - Service Oriented Architecture and Business Process Management
Basics of SOA; SOA design principles; SOA standards, foundations, BPEL, SOAP, WSDL and UDDI; governance; business process models; business process management from process and content management to collaboration and analytics; BPM enabled by SOA

SE 570 - Mobile Software Engineering
An overview of mobile platforms. App Development in Android. UI Overview, Activities, Application Lifecycle. Intents, Intent Filters, Broadcasts, BroadcastReceivers. Shared Preferences, Files, SQLite DB, Content Provider. Automated testing, Test-Driven Development. Google Maps, MapView, MapActivity. Threads, Services, Status Bar Notifications. Performance engineering. Reverse Engineering, software maintenance and evolution. Security. Energy, battery and resource usage. Software testing and QA.

SE 571 - Agile Software Development Approaches
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

SE 577 - Software Measurement
Measurement theory; measure design and validation; measurement requirements; measurement process; techniques and tools for software measurement; measurement frameworks; measurement management; project, organization, product, service and quality measurement; ISO measurement standards; software estimation; software measurement repositories

SE 601 - Special Topics
The contents of the course prepared each semester does not need to be approved by the board of the institute or university senate. For this reason, before the semester starts, the contents of the course is prepared for that specific semester only and is presented to the departmental board for approval. The approved course contents are fpllowed during the semester.

Computer Engineering Elective Courses

COMPE 501 - Object Oriented Design & Programming
Thinking Object-Oriented. Abstraction. Object-Oriented analysis and design concept and design patterns. UML: Introduction, role of modeling, models and views, core diagrams, fundamental elements (structural elements, Java independent entities, Java dependent entities). Introduction to Sequence, Class, and Package Diagrams. Development Lifecycle and UML (Requirements, Analysis & Design, Construction, Test, Deployment). The Full Lifecycle. Java and UML: Responsibility-Driven Design (RDD) method, and using CRC. Classes and methods. Messages, instances and initialization. Inheritance, subclass and subtype. Static and dynamic behavior. Substitution. Multiple inheritance and polymorphism.

COMPE 502 - Advanced Databases
Database system concepts. Transaction processing, concurrency control and database recovery. Object-oriented and Object-relational databases. Semi-structured data and XML. Parallel and Distributed Databases. Advanced Concepts of Distributed Databases. Introduction to Big Data. Temporal Databases.

COMPE 504 - Internetworking Technologies
Addressing. Protocols- TCP/IP. Point to point protocol. Access methods- remote access servers. Digital subscriber loop. Mobile and wireless network. Internet backbone. Virtual private networks. Routing. Mobile internet. Voice over IP. Introduction to network security.

COMPE 511 - Internet Programming
Internet programming environments. Home page design with html and dhtml. Javascript, client-server model, client side scripts, and server-side scripts. Web servers. CGI, SSI, SSL, certification, cookies, and sessions. Database integration. Web security. XML. Designing interactive internet applications.

COMPE 512 - e-Commerce
E-Commerce business models. Current state of the art. Introduction to enabling technologies and standards. World Wide Web consortium\'s recommendations. XML and RDF. Storing and querying XML documents. XML query languages: XML-QL and XSLT. Workflow Systems for e- Commerce. Message Oriented Middleware. Current B2B e-Commerce Frameworks: Open buying on the Internet (OBI), common business library (CBL), CommerceNet\'s eCo framework, RosettaNet, BizTalk, Web services, and ebXML. Descibing the semantics of Web services. Electronic marketplaces. Personalization on the Internet. Agents and negotiation in e-Commerce. Supply chain integration on the Internet. Research issues.

COMPE 513 - Computer and Network Security
Encryption techniques and algorithms. Public-key encryption. Hash functions. Digital signatures. Authentication. Network security. Web security. Operating System security(Unix and Windows). Bell-LaPadulla model. Software and database security.

COMPE 515 - Advanced Java Programming for the Web
JDK documentation. Java debugger. Java documentation style. Javadoc. Java development with IDE tool. Java 2D API. Advanced Java SWING components. Java thread class. Lifecycle of thread. Java socket, and ServerSocket class. Integrating Java with web server. Servlets. Using Java with database JDBC, RMI, Java IDL, CORBA. Java security features. Java reflection API. Java internationalization. Java native interface. Java Server & Enterprise Java Beans. Object relational mapping.

COMPE 516 - Current Trends in Internetworking Technologies
Overview and history of the community organizations related to Internet technologies and standard organizations. Open and proprietary standards. Widely used current techniques and technologies in Internet. Latest technologies under development. Latest techniques and their states that are under development and discussed by the communities.

COMPE 517 - Web Performance
Introduction to web performance. Capacity planning. Performance monitoring. Performance analysis. Caching.

COMPE 518 - Web Design and Development
Web design and development process. Requirements analysis. Interface design. Site design. Page design. Graphics and multimedia. Production. Maintenance and evaluation.

COMPE 519 - Human Computer Interaction and Usability
Introduction to HCI. HCI concepts. Software process model for HCI. User and task analysis. Usability principles. Interaction design. Dialog design. Evaluation techniques. Web user interface design.

COMPE 521 - Multimedia Systems
Hardware and software requirements of multimedia systems. Multimedia data types (digital audio, video, image). Image and video compression techniques. Multimedia communication systems. Content-based multimedia storage and retrieval. Mobile multimedia.

COMPE 523 - Network and System Management
OSI systems management overview. Systems management terms. Systems management support functions. Structure of management information. Internet network management: SNMPv1 and MIB-II. Internet network Management: SNMPv2. IEEE network management of LANs and MANs. SNA systems management and system view. Configuration management. Fault management. Network management topics, issues, and trends.

COMPE 531 - Advanced Operating Systems
Advanced topics in process scheduling. Multiprocessor and real-time scheduling. Concurrent programming fundamentals. Review of inter-process communication, semaphores and monitors. Synchronization and communication. Fault tolerance. Recent advances in operating systems.

COMPE 532 - Advanced Computer Architecture
Quantitative Principles of Computer Design, Instruction Set Principles and Examples, Advanced Pipelining and Instruction-Level Parallelism, Memory-Hierarchy Design, Storage Systems, Thread Level Parallelism

COMPE 541 - Distributed Operating Systems
Basics of operating systems, and computer networks. Network operating systems (NOSs), and distributed operating systems (DOSs). Remote interprocess communication (IPC). Processes and processor distribution. Synchronization, and deadlocks. Distributed file systems. Fault tolerance. Security. ontemporary distributed systems architectures.

COMPE 562 - Multiagent Systems
Agent paradigm. Abstract agent architectures. Design of intelligent agents. Agent cooperation. Auction systems. Negotiation. Argumentation. Interaction languages and protocols. Distributed problem solving. Coordination. Applications for multi-agent systems.

COMPE 568 - Advanced Artificial Intelligence
Intelligent agents. Problem solving by searching. Informed/uninformed search methods. Exploration. Constraint satisfaction problems. Knowledge and reasoning: first-order logic, knowledge representation. Learning. Selected topics: neural networks, natural computing.

COMPE 572 - Theory of Computation
Models of computation. Church-Turing thesis. Decidability and undecidability. Recursive enumerability. Time complexity. Classes P and NP. Space complexity. LOGSPACE, PSPACE-completeness.

COMPE 573 - Formal Languages and Automata
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.

COMPE 574 - Advanced Algorithms
Design and Analysis of Algorithms, O-Notation, Graph Algorithms, Topological Sort, Minimum Spanning Trees, Single-Shortest Paths, All-Pairs Shortest Paths, Flow networks, NP-Hard and NP-Complete Problems.

COMPE 575 - Parallel and Cluster Computing
Models of parallel computing – dependence on architecture, trade-off between computation cost and communication cost. Performance measures for parallel computation – computational complexity. Techniques for parallel computation – divide and conquer, partitioning, and pipelining. Parallel algorithms for sorting, searching and matrix computations. MPI and OpenMP environments for parallel programming.

COMPE 576 - Programming Languages Concepts
Study of programming language concepts: types, values, expressions, and statements. Program structure. Procedures and functions. Structured data. Abstraction and encapsulation. Inheritance. Dynamic binding. Concepts of programming paradigms will be introduced by means of functional, procedural, and object-oriented programming languages.

Information Systems Engineering Elective Courses

ISE 502 - Organizational Management & Change
Organizational behavior and management. Personality and learning. Perception, attribution and judgment of others. Values, attitudes and work behavior. Theories of work motivation. Motivation in practice. Groups and teamwork. Leadership. Communication. Decision making. Conflict and stress. Organizational structure. Change management principles: sponsorship, planning, measurement, engagement, support structures. Change management processes.

ISE 514 - Cloud Computing
Basics of cloud computing, discovering the value of the cloud computing for business, advantages of cloud computing, elements of cloud computing, technical foundation of cloud computing, managing data in cloud, standards, managing and securing cloud services, virtualization, service oriented architecture, managing cloud environment.