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.

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

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.

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.

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

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.

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.

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

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.

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.

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.

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.

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.

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.

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.

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.

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; transforming the model 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 peripherals; 3D modeling for 3D printers; artificial organ design with 3D printers; industrial product design with 3D printers;

SE426 - Emerging Technologies (2 + 2) 5

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

SE446 - Introduction to Bioinformatics (3 + 0) 5

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

SE362 - Open Source Software Development (2 + 2) 5

Introduction to open source software (OSS) projects; history of OSS; unit testing and continuous integration; use of GitHub and other hosting providers; packaging and releasing; different licensing models; some examples of successful open source projects.

SE422 - Introduction to Data Science (3 + 0) 5

Python programming language for data science, data scraping, data manipulation, data visualization, use of vectors and matrices in data science, review of statistical concepts for data science, conditional probability, Bayes?s theorem, normal distribution, prediction, regression, classification and clustering.

SE494 - Senior Project (4 + 0) 9

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