Ders Kataloğu

SWE 501
Introduction to Object Oriented Programming
Credits(3+0+0) 3 ECTS8
Programming methodology: Specification, design, coding, program correctness. Review of data types: scalar types, structured types. Data Structures: Linear structures (stacks, queues, linear lists), nonlinear structures (trees, sets), files (sequential, random access). Implementation of data structures: Linked list implementation, multidimensional array implementation, record implementation, character string, stack, queue, tree and set implementations. Recursion.
SWE 510
Data Structures and Algorithms
Credits(3+0+0) 3 ECTS8
Specification, usage and implementation and analysis of advanced data structures and algorithms. Hashing, heap structures, advanced sorting techniques, graphs and algorithm design techniques.
SWE 511
Computer Architecture
Credits(3+0+0) 3 ECTS8
Hierarchical treatment of a computer system. Architectural elements, classification of computer architectures. Assembly level machine organization, instruction sets, address modes. CPU organization, local memory, data operators, interconnection topology. Memory hierarchy, cache memory, virtual memory, associative memory, memory management. I/O organization. Limitations of Von Neumann Architecture. RISC VS CISC. Pipelined processors. Multiprocessor architectures.
SWE 512
Operating Systems
Credits(3+0+0) 3 ECTS8
Evolution of operating systems. Multi-programming and time sharing concepts. User and program interfaces. Concurrent processes, CPU scheduling, process synchronization, critical section problem. Deadlock prevention, avoidance, detection and recovery. Memory management, swapping, multiple partitions, paging, segmentation, virtual memory, page replacement algorithms. File system structures, allocation methods, directory implementation. I/O interfaces, secondary storage structures. Protection and Security: Access matrix and rights, capabilities, security issues.
SWE 513
Principles of Software Engineering
Credits(3+0+0) 3 ECTS8
Introductory concepts in software engineering covering an overview of topics in software life cycle, project planning, software management, requirements capture and analysis, human factors, functional specification, software architecture, design methods, programming for reliability and maintainability, team programming, testing methods, configuration management, system delivery and maintenance, process and product evaluation and improvement and project documentation.
SWE 514
Computer Systems
Credits(3+0+0) 3 ECTS ECTS8
Classification of computer architectures. Computer organization, instruction sets, address modes. Processor and memory structures. I/O organization. Limitations of Von Neumann Architecture. RISC and CISC processors. Pipelined processors. Multiprocessor architectures. Multi-programming and time sharing concepts. User and program interfaces. Concurrent processes, processor scheduling, process synchronization, critical section problem. Deadlocks. Memory management. Multiple partitions, paging, segmentation, virtual memory. File and directory system structures. Secondary storage structures.
SWE 520
Computer Networks
Credits(3+0+0) 3 ECTS8
Network layers and architectures, reference models. Physical layer and data communications issues. Data link layer issues, sliding window protocols. Local area networks, Ethernet, bridges and switches. Network layer issues, routing and congestion control, Internet Protocol, routing protocols. Transport layer services and protocols. TCP and UDP. Network programming. Application layer issues and protocols.
SWE 521
Database Systems
Credits(3+0+0) 3 ECTS8
 Practical and intuitive understanding of databases and database management systems. The relational model. Other important data models. SQL as a standard query language for the relational model. Design and use of data base management systems.
SWE 522
Software Requirements Engineering
Credits(3+0+0) 3 ECTS8
System and software requirements engineering. Identification, elicitation, modeling, analysis, specification, management, and evolution of functional and non-functional requirements. Interactions and trade-offs among hardware, software, and organization. Transition from requirements to design. Critical issues in requirements engineering.
SWE 523
Managing Software Development I
Credits(3+0+0) 3 ECTS8
Overview of general project management issues. Specialized management techniques unique to nature of software development. Fundamental issues of software project management. Project personnel and organization. Software size, development duration, cost, budgeting and schedule estimation.
SWE 530
Software Design Process
Credits(3+0+0) 3 ECTS8
Representations of design and architecture. Software architectures and design plans. Design methods. Design state assessment. Design quality assurance. Design verification. Group design and implementation of an application. 
Prerequisite:
SWE 513
SWE 531
Managing Software Development II
Credits(3+0+0) 3 ECTS8
Detailed project planning and scheduling in software development. Software process management. Software configuration management. Public domain and commercial tools for software project management. 
Prerequisite:
SWE 523
SWE 540
Multimedia and Web
Credits(3+0+0) 3 ECTS8
Types of multimedia information: text, graphics, hypertext, sound, images, video and animation. Formats and standards of multimedia information: MPEG. The WWW as a medium for multimedia data. Low, medium and high level web page design. HTML, DHTML, Javascript and Java.
SWE 541
Electronic Commerce
Credits(3+0+0) 3 ECTS8
A critical review and analysis of electronic commerce, with emphasis on multidisciplinary aspects and team projects. Technology infrastructure for electronic commerce, examples of web-based businesses, economics and business models of the Internet, Internet security, social, legal, ethical and public policy issues of the Internet and a business plan creation for a web-based operation.
Prerequisite:
SWE 544
SWE 553
Embedded Systems
Credits(3+0+0) 3 ECTS8
Definition of embedded systems. Embedded processors, memory systems, basic peripherals, interfacing to the analogue world. Interrupts and exceptions. Real-time operating systems. Writing software for embedded systems. Emulation and debugging techniques. Buffering and other data structures. Memory and performance trade-offs. Software and design examples.
SWE 554
CAD/CAM Software Development
Credits(3+0+0) 3 ECTS8
Geometric modeling and computer graphics techniques that are used in CAD/CAM systems. Standards for CAD/CAM. Survey of CAD/CAM software. Computer aided engineering analysis. Manufacturing processes and machine tools. Computer numerical control. Robot technology and applications. Group technology and computer-aided process planning. Manufacturing systems
SWE 555
Artificial Intelligence Techniques
Credits(3+0+0) 3 ECTS8
Representation of knowledge. Search and heuristic programming. Logic and logic programming. Application areas of artificial intelligence: Problem solving, games and puzzles, expert systems, planning, learning, qualitative reasoning, and natural language understanding. An artificial intelligence language.
SWE 556
Advanced Database Systems
Credits(3+0+0) 3 ECTS8
 Examination of recent topics and advancements related to databases, database management systems and their applications: Extensible Markup Language (XML), deductive databases, object oriented databases, query processing, indexing, storage structures, concurrency control, security, data warehouses, medical databases, database design.
SWE 571
Software Engineering Project I
Credits(0+3+0) 0 ECTS8
Project under the supervision of a faculty member for developing software for real-life problems. Progress reports, final report and demonstration of developed software
SWE 572
Software Engineering Project II
Credits(0+4+0) 0 ECTS8
Project under the supervision of a faculty member for developing software for real-life problems. Progress reports, final report and demonstration of developed software.
SWE 573
Software Development Practice
Credits(4+0+0) 4 ECTS9
Multi-programmer, real-world, object-oriented, versioned software development using source code management. Integrated development environments, internationalization, maintainable coding, commenting, refactoring, testing, design patterns and best practices.
SWE 574
Software Development as a Team
Credits(4+0+0) 4 ECTS9
 Hands on practice of software development process as a team. Scope, requirements specification, change management, integration and deployment. Tools, methods and techniques for managing the software development process. Use of software development tools. Communication and presentation skills. Development and presentation of software products.
SWE 575
Case Studies in Software Engineering I
Credits(1+0+0) 1 ECTS1
Investigation of software engineering problems through seminars. Teamwork applications and projects on software development problems.
SWE 576
Case Studies in Software Engineering II
Credits(0+4+0) 0 ECTS4
Continuation of Case Studies in Software Engineering I. Investigation of software engineering problems through site visits and seminars. Teamwork applications and projects on software development problems. Demonstration of results through presentations
SWE 577
Directed Studies I
Credits(0+0+0) 0 ECTS3
Research in the field of software engineering, supervised by faculty.
SWE 578
Directed Studies II
Credits(0+0+0) 0 ECTS3
Ontinued research in the field of software engineering, supervised by faculty.
SWE 579
Graduate Seminar
Credits(0+0+0) 0 ECTS8
The widening of students’ perspectives and awareness of topics of interest to software engineers through seminars offered by faculty, guest speakers and graduate students
SWE 581
Sp. Tp. Princip. of Multim. Software
Credits(3+0+0) 3 ECTS8
SWE 582
Sp.Tp.Machine Learning for Data Analytic
Credits(3+0+0) 3 ECTS8
Data mining deals with extracting patterns from large and heterogeneous data sets by combining methods from statistics and artificial intelligence with database management. Data mining provides computational tools to transform raw data into useful information. As such, it is becoming an increasingly important branch of computer science useful for a wide range of applications, such as marketing, surveillance, fraud detection, credibility assessment, recommendation systems and scientific discovery. 
This course is designed as a continuation of a basic introduction course as SWE546 Data Mining. The aim here is to provide a detailed review of modern machine learning techniques and the underlying mathematical theory. As such, it is suitable for students with some previous exposure to Data mining who want to elaborate their knowledge on machine learning.
Prerequisite:
Prerequisite: SWE 546 or Consent of the instructor.
SWE 584
Exploratory Data Analysis and Visualization
Credits(3+0+0) 3 ECTS8
Exploratory data analysis. Statistical data analysis. Data transformations and clustering. Exploring one-, two-, and high dimensional data analysis. Feature importance determination. Fundamental graphs and data visualization techniques. Dimensionality reduction for visualization.
SWE 585
Sp.Tp.Game Programming
Credits(3+0+0) 3 ECTS8
SWE 587
Sp. Tp. Theory of Computation for Software Engineering
Credits(3+0+0) 3 ECTS8
Basic concepts of set theory, logic and proofs. Finite automata and their limitations. Turing machines. Uncomputability. Time complexity. The P vs. NP problem.
SWE 588
Sp. Tp. Advanced Algorithms
Credits(3+0+0) 3 ECTS8
Divide-and-conquer algorithms. Randomized algorithms. Greedy algorithms. Dynamic programming. Linear programming and reductions. Approximation algorithms.
Prerequisite:
SWE510 or equivalent
SWE 589
Sp. Tp. Software Measures II
Credits(3+0+0) 3 ECTS8
Context model for software measurement. Productivity model, estimation model, quality model, benchmarking, outsourcing, balance score card, implementation of a measurement program, testing measures.
SWE 590
Software Measures
Credits(3+0+0) 3 ECTS8
Introduction and history of measurement in software engineering. Metrology, measurement theory and basic concepts. ISO/IEC 15939 schema. ISO/IEC 9126 quality model. Design of a measurement method (based measure) and a function method (derived measure). Two examples of the design of a measurement method: Functional measure and COSMIC and Use cases measure. Two examples of the function method the cyclomatic complexity number and "error message" derived measure.
SWE 591
Sp. Tp. Object Oriented 3D Graphics
Credits(3+0+0) 3 ECTS8
 Requirements for 3D graphics systems software development. Object oriented 3D graphics design and implementation using C++ programming language. Basic concepts and mathematical preliminaries for 3D Computer Graphics. Introduction to OpenGL programming environment. Developing object oriented software infrastructure for a 3D Scene Generator, Viewer and a Ray Tracer.
SWE 592
Complex Networks
Credits(3+0+0) 3 ECTS8
Random, Regular, Scale-Free, Small-World networks. Empirical studies, metrics, models and applications of Complex Networks. Clusters, Community Detection, Same Complex Networks: Social, Biological Networks, Internet, WWW.
SWE 593
Sp. Tp. Resilient Software Development and Evaluation
Credits(3+0+0) 3 ECTS8
The ever-increasing use of computing systems in today’s human life sepcially in safety critical applications such as health, commerce, transportation, utilities, and national security makes it extremely important to develop dependable computer systems. Reliability is not only a serious concern for safety critical sysems, but also it has become an important factor for non-safety critical applications such as game consoles, and consumet electronics. This is because, the frequent failures in a non-safety critical applications, due to high vulnarability of today’s microelectronic devices, erode a manufacturer’s reputation and greatly diminish widespread acceptability of new devices. This course covers comprehensively the design and evaluation of resilient softwares as the main part of a computer system. This course will help immensely students and practitioners in the filed of computer engineering and computer science in learning how to design reliable and evaluate resilient softwares.
SWE 594
Sp. Tp. Multi-Core Programming
Credits(3+0+0) 3 ECTS8
Introduction. to hyper-threading technology and multi-core architectures. Parallel processing concepts. System overview of threading. Windows, POSIX and OpenMP multi-threading application programming interfaces. Message passing programming with MPI. Tools for debugging and performance analysis.
SWE 595
Sp. Tp. Introduction to Neural Networks
Credits(3+0+0) 3 ECTS8
SWE 596
Dynamic Web
Credits(3+0+0) 3 ECTS8
Introduction to patterns. Use of patterns in different fields. Pattern languages. Fundamental requirements of patterns. Information and data entity requirement patterns. User function patterns. Analysis patterns; Accountability, observation and measurement, conversion, object referance, inventory and accounting patterns. Design patterns; Creational, structural, behavioral patterns.
SWE 597
Sp. Tp. Game Software Development
Credits(3+0+0) 3 ECTS8
Introduction and history. Design theory, designing a computer game, design production. Game development platforms. Developing a simple 2D game. Game programming in C# and Direct3D. XNA development platform: Installing Game Studio and starting a new XNA Project. Working with 2D images and textures in XNA. Working with models: Loading, rendering and animating 3D Models. 3D game programming basics. Developing a 3D game. Basics of game networking.
SWE 598
Sp. Tp. Technovation: Technology Trends and Innovation
Credits(3+0+0) 3 ECTS8
SWE 599
Project
Credits(0+0+0) 0 ECTS3
Project under the supervision of a faculty member on software development and on various aspects of software systems. Progress report, final report and a presentation of final results.
SWE 59A
Guided Research in M.S.I
Credits(2+0+0) 2 ECTS3
Research in the field of Software Engineering, to be planned with members of the faculty
SWE 59B
Guided Research in M.S.II
Credits(2+0+0) 2 ECTS3
Continued research in the field of Software Engineering, to be planned with members of the faculty
SWE 690
M.S.Thesis
Credits(0+0+0) 0 ECTS60