TR    EN

Undergraduate Program Course List

Compulsory Departmental Courses

Technical Elective Courses

Service Courses Taken From Other Departments

Compulsory Departmental Courses

SE 100 - Fundamentals of Software Engineering
Engineering Fundamentals. Software Engineering as a profession. Career opportunities. Professional organizations for Software Engineering. Ethical Issues in Computing. Hardware components of a computer system. Data representation and machine language instructions. Coordinating internal activities of a computer using Operating Systems. Networking fundamentals and the Internet. Classification of Programming Languages. Classify programming languages

SE 112 - Introduction to Software Engineering
Basic concepts: abstraction, problem solving, reuse, and system decomposition. Overview of software engineering: life cycle, systems, customers, users, requirements, design, implementation, software quality assurance, testing and maintenance.

SE 212 - Human Computer Interaction
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.

SE 221 - Software Requirements Engineering
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 requirements. Software requirements management. Implementing requirements engineering. Formal reasoning and specifications in requirements engineering.

SE 222 - Software Quality Assurance
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 reliability metrics and software quality metrics. Quality assurance models. Risk management. Data collection and maintenance.

SE 320 - Software Project Management
Introduction to software project management. Overview of project planning. Selection of appropriate project approach. Software effort estimation. Activity planning. Risk analysis and management. Resource allocation. Project tracking and control. Contract management. Managing people and organizing teams. Software quality assurance. Configuration management. Various tools of software project management.

SE 321 - Object-Oriented Analysis and Design
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. Note: No particular software development process is prescribed in the course. However, the key process activities followed will be the Unified Software Development Process (USDP).

SE 322 - 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 in architecture evaluation. Quantitative approach to architecture design decision making. Software product lines. Types of architecture: middleware, model-driven, service-oriented, semantic web, aspect-oriented. Case studies are given to understand concepts in real life contexts

SE 344 - Systems Software Validation and Testing
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.

SE 399 - Summer Practice I
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. A summer practice report is prepared that lists the experiences of the student during the six weeks period.

SE 493 - Project Orientation
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.

SE 494 - Senior Project
Project Analysis and Design, Project Development, Project Management, Team Working, Project Presentation.

SE 499 - Summer Practice II
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. Students are expected to be involved in software/hardware development projects of the IT department/company. A summer practice report is prepared that presents the experiences of the student during the six weeks period.

Technical Elective Courses

COMPE 326 - 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 350 - Numerical Methods
Approximation in computations. Truncation and round-off error. Numerical solution of algebraic equations. Methods for the solution of system of linear equations: Gaussian elimination, LU-decomposition, and iterative methods. Matrix inversion. Interpolation: Lagrange, Newton, and Gauss formulas. Spline interpolation. Numerical integration: Trapezoidal, Simpson’s, and Romberg methods. Application programs will be developed in a laboratory environment using MATLAB.

COMPE 376 - Computer Games and Simulation
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 a game.

COMPE 422 - Visual Programming
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.

COMPE 432 - Virtualization
Types of Virtualization, Hardware Virtualization, Hypervisors, Server Virtualization, Desktop Virtualization, Storage Virtualization, Application Virtualization, OS Virtualization requirements and techniques, Benefits and costs, Security Issues.

COMPE 438 - Java Programming
Java Technology, Elements of Java, Object-Oriented Programming. Objects. Classes. Modularity. Encapsulation. Polymorphism. Inheritance. Exceptions. Generics, Abstract Classes and Interfaces. The Collections Framework. The Input/Output Framework. The Graphical User Interfaces Framework. Threads. Lambda Expressions, Stream Filtering, Method References

COMPE 461 - Applied Neural Computing
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.

COMPE 465 - Knowledge Engineering
Knowledge representation methods: Rule-based, Graph-based, Logic-based methods, Introduction to Prolog, Knowledge acquisition, Expert Systems, Ontology, Semantic Web, Introduction to Machine Learning.

COMPE 473 - Computer Graphics
Hardware and software components of graphic systems. Output and filled data primitives. 2D and 3D geometric transformations. 2D and 3D viewing pipelines. Visible-surface detection methods.

ISE 201 - Business and Ethics
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.

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

ISE 311 - 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 (installation on different OS such as Unix/Linux, and Microsoft, setting up the required components, administration). CGI, SSI, SSL, Certification, Cookies, and Sessions. Database Integration. Web Security. XML. Designing Interactive Internet Applications.

ISE 316 - e-Commerce
A context for developing e-Commerce applications. Types of e-Commerce applications. Identifying and describing an 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, ethical and social issues. Testing and implementation: JavaScript, JScript, DHTML, CSS, ASP, XML.

ISE 350 - Data Warehousing and Mining
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.

ISE 405 - Foundations in Information Technology Services
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.

ISE 407 - Introduction to Mobile Application Development
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.

ISE 412 - Computer Security
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.

ISE 422 - e-Government
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.

ISE 423 - Technology Trends in e-Government
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 DoDAF. Interoperability standards: eGIF, EIF, SAGA, and other ISA (aka IDABC) programmes in comparison with local profile. Interoperability and integration strategies: service, event and model driven architectures, ESB, semantic approaches. e-Government systems security and identity management. Local and global initiatives and case studies.

ISE 424 - Distance Education and E-Learning
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.

ISE 432 - Innovation and Entrepreneurship in IT
Innovation, Innovation source, Innovation process, Innovation and Entrepreneurship, Starting a Techno-Business, Business plan, Sustainability with innovation

SE 340 - Rapid Application Development
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.

SE 360 - System Modeling and Simulation
Dynamic Simulations. Providing custom-made data types, operators and control structures for simulation. Model generators. Simulation Programming Landscape. Simulation Problems.

SE 426 - Emerging Technologies
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 & Problem-Solving. Origin of Technologies. Technological Revolution. Economic Revolution. Forecasting.

SE 440 - Analysis and Design of User Interfaces
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.

SE 446 - Introduction to Bioinformatics
DNA and protein sequence alignment. Phylogenetic trees. Protein structure prediction. Motif finding. Microarray data analysis. Gene/protein networks.

SE 450 - Software Engineering Ethics
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 decision making in the field.

SE 453 - Large Scale Software Development
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 viewpoints.

SE 460 - Software Construction
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 461 - Software Patterns
Introduction to design patterns. Creational patterns. Structural patterns. Behavioural patterns. Analysis patterns. Architectural patterns. Testing. Refactoring.

SE 462 - Formal Methods in Software Engineering
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 cycle. Classification of formal methods. Formal validation and verification.

SE 470 - Agile Methods in Software Development
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.

Service Courses Taken From Other Departments

CHEM 102 - General Chemistry
By the 2016-2017 Fall Semester, this course has been replaced by CEAC 105.

COMPE 113 - Computer Programming I
Algorithm development. Fundamental elements of the C language. Selection statements. Iteration statements. Standard library functions. User-Defined functions. Parameter passing. Application programs will be developed in a laboratory environment using the C language.

COMPE 114 - Computer Programming II
Pointers. Dynamic memory management. Parameter passing. Arrays. Strings. Structures. File processing. Application programs will be developed in a laboratory environment using the C language.

COMPE 225 - Object Oriented Programming
Data types. Expressions and statements. Functions and scope rules. Class definitions. Inheritance. Polymorphism. Name overloading. Templates. Exception handling. Input/Output. Object oriented principles will be introduced using the UML and C++ programming language.

COMPE 226 - Data Structures
Stacks. Recursion. Queues. Creation and destruction of dynamic variables. Serial linked lists. Circular lists. Doubly linked lists. Circular doubly linked lists. Sorting and searching algorithms. Space and time considerations. Binary trees. Binary search trees. Tree traversal algorithms. Binary tree sorting algorithms. Hashing.

COMPE 231 - Digital Circuits and Systems
Number systems: binary, octal and hexadecimal number systems and their base conversion, and complement notation. Coding systems: BCD, ASCII, excess-3, and Gray codes. Boolean Algebra: theorems and properties of Boolean algebra, canonical and standard forms of Boolean expressions. Digital logic gates. Minimization of Boolean functions. Combinational circuit design. Sequential circuit design: flip-flops, registers, counters, and memory units.

COMPE 251 - Discrete Computational Structures
Basic mathematical objects of computational mathematics: Sets, sequences, relations, functions, and partitions. Deductive mathematical logic proof techniques. Discrete number systems. Induction and recursion. Graphs and sub-graphs. Trees. Planarity of graphs. Covering problems. Path problems. Directed graphs. Combinatorics.

COMPE 323 - Algorithms
Design and analysis of algorithms. O-Notation. Divide and Conquer algorithms. Dynamic Programming. Backtracking and Branch and Bound. Lower bound theory. Complexity of sorting, and searching algorithms. Graph algorithms. NP-Hard and NP-Complete problems. Basic NPC problems. Proving problems to be NPC. Analysis of some string processing algorithms.

COMPE 325 - Study of Programming Languages
Study of programming language concepts: syntax and semantics, 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.

COMPE 334 - Computer Networks
Basic concepts of computer networking. Application layer and well-known applications. Transport layer, UDP and TCP services. Network layer, IPv4 addresses, forwarding and routing. Data link layer, MAC addresses, HUBs and switches. Physical layer properties and standards.

COMPE 341 - Database Design and Management
Database system concepts. Data modeling with ER and EER. The Relational Data Model. File organizations and index structures. Relational algebra. Structured Query Language (SQL). Database design: functional dependence and table normalization. Introduction to database administration. A relational DBMS will be introduced in a laboratory environment.

COMPE 431 - Operating Systems
Basic design principles of operating systems. Single-user systems, Command interpreter. Semaphores. Deadlock detection, recovery, prevention and avoidance. Multi-user OS. Resource managers, Processor management and algorithms, Memory management: Partitioning, paging, segmentation and thrashing. Device management. Interrupt handlers, Device drivers and controllers. Management of secondary storage. File handling. Data and program security and protection. Basic concepts of distributed systems.

ENG101 - English for Academic Purposes I
ENG101 consists of academic skills, such as reading comprehension, vocabulary building and critical analysis of texts. In this frame, listening and note-taking, class discussions, presentations, writing, research assignments and use of technology are some of the important activities.

ENG102 - English for Academic Purposes II
ENG102 elaborates on academic skills such as reading comprehension, listening, class discussions about the topic of the unit, vocabulary building and critical analysis of texts. It also includes research assignments and response paper and graph writing. Skills like listening and note-taking, analysis of written products, portfolio keeping and use of technology are elaborated in this course, as well.

ENG201 - English for Academic Purposes III
The course consists of mainly advanced reading and writing skills, applying critical reading skills and strategies, identifying the organization of a reading text, main ideas of the texts, and the author’s main purpose, summarizing a given text, outlining and writing an argumentative essay. Some parts of the input are in flipped learning mode.

ENG204 - Report Writing Skills
This course includes research-based report writing skills. The content includes types of reports and models; the choice of topics, formation of thesis statements, writing paraphrases and summaries, preparation of report outlines, evaluation of print and electronic sources, in-text and end-of-text citation, report presentation in oral and written format. Flipped learning method is utilised to a great extent.

HIST 101 - Principles of Atatürk and History of Turkish Revolution I
The decline of the Ottoman Empire and the developments leading to the Turkish Revolution.

HIST 102 - Principles of Atatürk and History of Turkish Revolution II
Foundation of the Turkish Republic and principles of Mustafa Kemal Atatürk

IE 220 - Probability and Statistics
Introduction to probability and statistics. Random variables and probability distributions. Expected value. Sampling distributions. One and two sample estimation problems. Test of hypotheses. Simple linear regression.

IE 305 - Engineering Economic Analysis
Economic analysis for engineering and managerial decision-making. Cash flows, effect of time and interest rate on money and physical assets. Methods of evaluating alternatives: present worth, future worth, annual worth, rate-of-return and benefit/cost ratios. Depreciation and taxes. Effects of inflation.

MATH151 - Calculus I
Preliminaries, Limits and Continuity, Differentiation, Applications of Derivatives, L'Hopital’s Rule, Integration, Applications of Integrals, Integrals and Transcendental Functions, Integration Techniques, and Improper Integrals.

MATH152 - Calculus II
Sequences, Infinite Series, Vectors in the Plane and Polar Coordinates, Vectors and Motions in Space, Multivariable Functions and Their Derivatives, Multiple Integrals: Double Integrals, Areas, Double Integrals in Polar Form, Triple Integrals in Rectangular, Cylindrical and Spherical Coordinates.

MATH275 - Linear Algebra
Linear Equations and Matrices, Real Vector Spaces, Inner Product Spaces, Linear Transformations and Matrices, Determinants, Eigenvalues and Eigenvectors.

MATH276 - Differential Equations
First Order, Higher Order Linear Ordinary Differential Equations, Series Solutions of Differential Equations, Laplace Transforms, Linear Systems of Ordinary Differential Equations, Fourier Analysis and Partial Differential Equations.

ORY 400 - Participation in Social and Cultural Activities
Students must attend at least one social/cultural activity in each semester or at least two activities in each academic year. The activities are announced on the webpage of the departments. The students get an attendance certificate for the participation of each activity. To get a passing grade from this course, students should submit these certificates to their advisors.

PHYS 101 - General Physics I
Measurement; Motion Along a Straight Line; Vectors; Motion in Two and Three Dimensions; Force and Motion I; Force and Motion II; Kinetic Energy and Work; Potential Energy and Conservation of Energy; Center of Mass and Linear Momentum; Rotation; Rolling, Torque, and Angular Momentum; Equilibrium and Elasticity.

PHYS 102 - General Physics II
Electric Charge; Electric Fields; Gauss' Law; Electric Potential; Capacitance; Current and Resistance; Circuits; Magnetic Fields; Magnetic Field due to Currents; Induction and Inductance

TURK 101 - Turkish Language I
Historical development, structure, and usage of Turkish language, Practice on texts.

TURK 102 - Turkish Language II
Historical development, structure, and usage of Turkish language, Practice on texts