TR    EN

Software Engineering Master of Science with Thesis Program Course List

Compulsory Departmental Courses

Software Engineering Elective Courses

Computer Engineering Elective Courses

Elective Courses

Information Systems Engineering Elective Courses



Compulsory Departmental Courses

MDES600 - Research Methodology and Communication Skills
The principles and practice of research design and data collection. Research methodology, experimental design, career options, professional ethics and academic integrity, and oral and written presentation techniques. The core of the course will be a structured, supervised "mini-research project" on a topic of the student's choice. Students will be required to perform a literature survey on their topic, construct a research proposal that includes an experimental design, and write a paper summary in the style of a formal scientific paper. Incremental deliverables will provide structure and feedback over the course of the semester. Each student will be required to find an outside reader for their literature survey and final paper. Additional assignments will include participating in class discussions, giving in-class presentations, preparing a research portfolio (including a CV), and creating a personal website.

SE 550 - 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 554 - 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

SE 589 - Graduation Seminar
Each Master's student with thesis option, at least one semester prior to his/her thesis defense, is expected to give a presentation on his/her thesis work.

SE 597 - Master's Thesis

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 558 - Software Architecture
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 for architecture evaluation; quantitative approach to architecture design decision making; software product lines; middleware, model-driven, service-oriented, semantic web, aspect-oriented; applied architectures and styles; design for non-functional properties; architecture adaptation

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 566 - Service Oriented Architecture and Web Services
Basics of SOA. SOA design principles. SOA standards: Foundations, BPEL, SOAP, WSDL and UDDI. Web Services. REST. SOA Governance.

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

Computer Engineering Elective Courses

CMPE 521 - Advanced 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.

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

CMPE 525 - Object Oriented Design & Programming
Thinking object-oriented, abstraction, object-oriented analysis and design concept, design patterns. UML: Introduction, role of modeling, models and views, core diagrams, fundamental elements, sequence, class, and package diagrams, development lifecycle, Java and UML: Responsibility-Driven Design (RDD), and CRC, classes, methods, messages, instances, initialization, inheritance, subclass, subtype, static and dynamic behavior, substitution, multiple inheritance and polymorphism.

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

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

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

CMPE 535 - Cyber Security
Basic concepts in cyber space and security, cyber crime, IT law, computer law and cyber law, computer forensics, information security and assurance, computer and network security, cyber warfare, international standards on cyber security.

CMPE 536 - Advanced Network Programming
Introduction to networking, overview of programming language that will be used to implement course content, threads and multi threading, exceptions, sockets, web sockets, streaming, file streaming, memory I/O streams, object streaming, client-side networking, server-side networking, HTTP networking, message queuing, synchronous and asynchronous communication.

CMPE 537 - Distributed Computing
Introduction to the core concepts and principles of distributed programming techniques, computing paradigms, protocols, and application program interfaces (APIs), sockets, multicast, Remote Method Invocation (RMI), Common Object Request Broker Architecture (CORBA), Interface Definition Language (IDL), applets, servlets, Common Gateway Interface (CGI), REST, and Simple Object Access Protocol (SOAP), MPI

CMPE 538 - Advanced Computer Networks
Advanced concepts of TCP/IP computer networks. Routing principles and routing algorithms in TCP/IP networks. Wireless-networking. Multimedia networks. Network security. Network management.

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

CMPE 543 - Big Data Analytics
Infrastructure as a Service(IaaS), Hadoop framework, hive infrastrucure, data visualization, MapReduce model, NoSQL databases, large-scale data workflows, clustering, using R.

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

CMPE 563 - Information Retrieval
Organization, representation, and access to information; categorization, indexing, and content analysis; data structures for unstructured data; design and maintenance of such databases, indexing and indexes, retrieval and classification schemes; use of codes, formats, and standards; analysis, construction and evaluation of search and navigation techniques; and related search engines.

CMPE 564 - Natural Computing
Problem solving by search, hill climbing, simulated annealing, artificial neural networks, genetic algorithms, swarm intelligence (including ant colony optimization and particle swarm optimization), artificial immune systems.

CMPE 565 - Machine Learning
Concept learning, decision tree learning, artificial neural networks, evaluating hypotheses, Bayesian learning, computational learning theory, instance-based learning, genetic algorithms, analytical learning, reinforcement learning.

CMPE 566 - Advanced Data Mining
Introduction to data mining, concepts, attributes and instance, data processing (cleaning, integration and reduction), data warehousing and online analytical processing (OLAP), data mining algorithms, credibility, advanced pattern mining, classification, engineering the input and output, data mining software and applications.

CMPE 567 - Semantic Web Programming
XML, resource description language, web ontology language, ontologies and rules, query languages-SPARQL, ontology engineering, semantic web applications and semantic web services.

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

CMPE 571 - Biometric Identification and Verification Systems
Biometric identification and verification, performance calculations of biometric systems, fingerprint verification, face recognition, iris and retina based identification, hand geometry and DNA based identification, multimodal biometric systems, biometric system standards.

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

CMPE 578 - Penetration Testing
Penetration testing concepts, ethical issues in penetration testing, building a testing infrastructure, legal issues with penetration testing, port scanning, vulnerability scanning, exploitation, password attacks, web application penetration testing, wireless penetration testing, reporting of the obtained test results.

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

Elective Courses

- Graduate Free Elective

Information Systems Engineering Elective Courses

ISE 512 - IT Portfolio Management & IT Standards
Processes for the integrated project life (approval, identifying & planning, implementation, management & tracking, assessment & improvement). Prioritizing IT projects. Resource allocation. Managing risks and costs. Assessment and governance. Standard metrics for measuring ROI. ITIL, COBIT, Val IT, Sarbanes Oxley, related IEEE and ISO standards.

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.