Home

=MS in Computer Science at FCS IBA=

The MS program is an evening program and prepares students in computer and programming theory, design, development and application. It consists of 30 credit hours; for those students opting for MS Thesis, 24 credit hours of course work and 6 credit hours of research work is required. For students opting for course work only 27 credit hours of course work along with 3 credit hours of Research Survey is required. The MS Thesis will be optional. The course work may be taken from multiple specialization tracks and a student would be required to take courses from at least two tracks. Specialization tracks include Net-Centric Computing, Human Computer Interaction, Intelligent Systems, Software Engineering, Information Management and Theoretical Computer Science. Within a specialization track a minimum of two to a maximum of 4 courses may be taken. Each track has their own set of prerequisites which are usually BS level courses.

List of Specialization Tracks (Courses and Prerequisites)
// **Prerequisite: Operating Systems, Data Communications & Networks, Introduction to Statistics** //
 * 1. Net-Centric Computing**

Advanced Computer Networks || This course will cover advanced concepts in computer network such as: Advanced Internet addressing (CIDR and NAT), End-to-end protocols, Multicast Address resolution server, Multi protocol over ATM, IP Switching / Tag Switching, Multi protocol label Switching(MPLS), scheduling and congestion control in the Internet, Quality of service in the Internet, Internet Routing Architecture, Border Gateway Protocol (BGP), Resource ReSerVation Protocol (RSVP), IP version 6, Wi-Fi and Wi-Max, and Mobile IP. ||
 * ICT511
 * Mobile Computing || This course presents an extensive overview of the technical as well as business aspects of mobile computing and wireless communications. Main topics to be covered are: mobile applications, mobile computing platforms, wireless networks, architectures, security, and management, of mobile computing and wireless communications. The role of wireless Internet and Mobile IP is reviewed and the mobile computing platforms are examined with a discussion of wireless middleware, wireless gateways, mobile application servers, WAP, i-mode, J2ME, BREW, Mobile Internet Toolkit, and Mobile Web Services. ||
 * Wireless Communication || The objective of this course is to provide the student with an adequate understanding of the prevalent Mobile Wireless Networks. The course will discuss the protocol reference model(s) that relate to Mobile Wireless Communication Systems. It will mainly cover the physical, data link, and the application layers from user plane perspective as they apply to mobile wireless networks in use today. Additionally, it will cover the management and control plane functions. ||
 * Distributed Systems || This course deals with an in-depth understanding of Distributed Systems. Distributed system is a computer system consisting of several independent computers, connected by a network, that can work together to perform a task or provide a service. Typical examples include: the World Wide Web, networked file systems, DNS, and massive multiprocessor supercomputers. This course focuses on the principles, techniques, and practices relevant to the design and implementation of such systems. The course takes a systems-oriented view of distributed systems, concentrating on infrastructure software and providing hands-on experience implementing distributed systems. The main objectives of this are: to present the principles underlying the functioning of distributed systems; to create an awareness of the major technical challenges in distributed systems design and implementation; to expose students to modern and classic technology used in distributed systems and their software; to expose students to past and current research issues in the field of distributed systems; and to provide experience in the implementation of typical algorithms used in distributed systems. ||
 * Information Security || The purpose of this course is to introduce students to the fundamental concepts and issues of information security. Basic principles for information security; threats and defenses; cryptography; introduction to network security and security management are covered in this course. By the end of this course the student should be able to understand the importance of information security in software systems, understand what a security policy is and what are the major mechanisms for implementing security policies, have a background in information security sufficient for the study of computer networking, be familiar with the major educational resources available for information security and be able to effectively present ideas about information security in written, oral, and web formats. ||

**2. Human Computer Interaction** // **Prerequisite: Software Engineering, Introduction to HCI** // GUI Design || This course introduces design and analysis methods for Graphical User Interface design. Relevant perceptual psychology is introduced, and guidelines for user interface design are derived. Design methods are discussed. Analysis of interfaces by experimentation on humans is described. Exploring effective Web applications design through theory and hands-on exercises, exploring user interaction characteristics and incorporating them in application design is also covered in this course. || Multimedia and Multi-Modal Systems || This course will extensively cover the growing field of multimedia by introducing advanced programming on different multimedia applications. Topics covered in this course are Multimedia Authoring tools, Graphics and Image data representation, color in image and video, fundamental concepts of digital audio and video, data compression, video compression, MPEG I and II video coding, media communication and retrieval and content based retrieval in digital libraries. ||
 * CSE575 Advanced Human Computer Interaction || This course aims to gives students an understanding of how interactive systems are developed. The hardware and software issues that determine the usability of an interactive computer system will also be read in this course. Humans are the key deciding factor to make a computer system successful. This course discusses the key issues and their solutions to make a system more human friendly. Effective design is reliant upon understanding the human context in which a new artefact has to fit. This course provides the necessary knowledge and skills to design, prototype and evaluate usable human-computer interaction in both its narrow sense (the user interface) and its broad sense (information systems, people, organisations, even societies and cultures). It further provides a strategic grounding in both theory and good practice for students to make effective use of applying HCI principles to IS design in their professional work .  ||
 * CSE576 Usability Engineering || This course introduces methods for usability engineering alongside basic concepts of usability and the design of human computer interfaces. One of the prime requirements of any software is Usability; however the term usability has many facets. Usability is not only determined by the design of the human computer interface, but also by the underlying task model and data model of the software. In practice, usability is determined by a development process that takes users, their environment and tasks into account. The course relies on practical exercises during which participants learn to apply usability engineering methods. In this way participants gather the necessary skills required for improving the usability of their software systems. The course enables participants to apply selected usability engineering methods in their own projects in order to improve the usability of the software systems they develop. ||
 * CSE577 Interaction Design || This course provides theoretical knowledge and practical experience in the fundamental aspects of Interaction Design. The course focuses on the process of designing the user experience by examining works of interface design from the perspective of psychology, graphic design, and human-computer interaction conceptual frameworks. Topics included are: concept and planning of Interaction Design, Prototyping, User testing, Market Testing, Iteration, Product Specifications, Production Matrixes, Follow-up and maintenance. ||
 * CSE578
 * CSE579
 * ICT512 Advanced Web Technologies || To deliver in-depth knowledge of the basic concepts and general principles associated with web application development, illustrating specific technologies. To provide an understanding of different concepts, architectures, techniques, and infrastructures for service oriented computing in web development. The course explains the principles and practice of web services. It provides a comprehensive overview of state of the art web services and associated disciplines, relating concepts to practical examples and emerging standards. ||

//**Prerequisite: Artificial Intelligence, Object-Oriented Programming, Introduction to Statistics**//
 * 3. Intelligent Systems**

Advanced Artificial Intelligence || This course discusses a breadth of advanced issues in artificial intelligence including but not limited to data mining, machine learning, probabilistic reasoning, evolutionary computation and computer vision. The emphasis on different topics may vary from one offering to the next. The primary audience of this course is those students who are not doing specialization in the AI track but are interested in the application of AI in different fields (computer networks, human computer interaction, software engineering, etc.). Being a graduate level course, students are expected to read a lot of recent research papers and do a research project – preferably on application of AI techniques in a field of their choice. || Knowledge Discovery and Data Mining || This course offers the state-of-the-art in knowledge discovery and data mining from a research as well as a practical perspective. Classification and clustering techniques, features ranking and selection, association rules and text mining, performance evaluation of different techniques and data visualization are studied in detail. Students are expected to implement many of the above techniques and to use available open source and commercial softwares to analyze extremely large data sets. A significant amount of time will be spent on the current research issues in data mining. Being a graduate level course, it is expected that students have a decent background in databases, artificial intelligence and statistics. || Computational Intelligence || The course presents the fundamentals of computational intelligence. Topics included are evolutionary algorithms, particle swarm optimization, ant colony optimization, artificial immune systems, artificial neural networks, fuzzy systems and hybridization of the above techniques. The course focuses on the applications of these techniques on real world problems and shows how they are designed, implemented and analyzed for a given a problem domain. Real world applications include portfolio optimization in financial domain, control and strategy optimization in robotics, route optimization in path planning and network traffic flows, and so on. A significant amount of time will be spent on the current research issues in computational intelligence. This is a programming intensive course and students are expected to spend a significant amount of time on implementing all the techniques studied in the course and applying them on a significantly complex problem of their choice. || Mechatronics ||  ||
 * CSE561
 * CSE652
 * CSE656
 * CSE655 Probabilistic Reasoning || This course provides an in-depth analysis of Bayesian Belief Networks which have become the tool of choice for reasoning under uncertainty. The course focuses on the syntax and semantics of Bayesian Networks and how to use BNs to model and analyze uncertain situations. Models that aim to integrate time and uncertainty such as dynamic Bayesian networks, dynamic Influence Nets, Markov Nets as well as the learning of structure and parameters of a Bayesian network will be discussed in detail. The course is intended for graduate level CS students and a significant amount of time will be spend on the current research issues in the field of probabilistic reasoning. Students are expected to use various softwares and develop their own tool to implement various reasoning and learning algorithms. ||
 * CSE660 Computer Vision || Computer Vision is a study in algorithms, tools and techniques that enable computers to extract information out of digital images.Computer Vision is being used extensively for driving autonomous vehicles, planetary exploration, life-saving medical imaging techniques, enhancing the Human-Computer-Interaction experience and preservation of accumulated human wisdom by digitizing books. This course will offer an introduction to the core concepts, some industrial-strength tools and recent breakthroughs in Computer Vision. By the end of this course, students should be able to analyze problems in Computer Vision, break them into simpler problems, associate these simpler problems to established solution techniques, design efficient algorithms using these established techniques and make computer programs based on these algorithms. ||
 * CSE562

//**Prerequisite: Object-Oriented Programming, Introduction to Software Engineering**//
 * 4. Software Engineering**

Web Engineering || The aim of this course is to teach the students the technologies and techniques for creating large-scale hypertext information systems on the WWW. Based on recent hypertext research and current WWW standards it will address the issues of publishing individual documents and sites together with the problems of global information management. Course topics will include, principles of web architecture, web information design, searching the web graph, factors that have led development of the web in its present form and current trends in the development of hypertext in the web. ||
 * CSE566 Software Quality Assurance || This course addresses process considerations in software systems development. It discusses advanced material in software planning, mechanisms for monitoring and controlling projects, and leadership and team building. Furthermore, it provides knowledge and understanding of the concepts, principles, techniques, and tools that are used in the management of software projects. Some the topics included are Size and Cost Estimation, Schedule Plan, Risk Management, Quality Management and Configuration Management. Students work in a team to develop a project plan for a small project according to the established standards based on best practices of the global IT industry. ||
 * CSE567 Requirement Engineering || Students will learn to gather correct, concise, clear and complete set of requirements. Some of the topics included in this course are requirements engineering process, requirements elicitation and analysis, requirements validation and requirements management. Moreover, advance topics such as Model Based Verification and Formal Specification techniques will also be discussed in class. Students will apply the acquired knowledge to document requirements for a software application. ||
 * CSE568 Software Project Management || This course deals with lifecycle of Software Project Management, Project Planning, Software estimation, software project schedules, reviewing work products, system requirements, project automation, software metrics, testing, bugs and diagnosis, change configuration, managing organization, team and project, software process improvement. This course will enable students to have a complete view of Project Management, as described by PMBOK. ||
 * ICT512 Advanced Web Technologies || To deliver in-depth knowledge of the basic concepts and general principles associated with web application development, illustrating specific technologies. To provide an understanding of different concepts, architectures, techniques, and infrastructures for service oriented computing in web development. The course explains the principles and practice of web services. It provides a comprehensive overview of state of the art web services and associated disciplines, relating concepts to practical examples and emerging standards. ||
 * CSE569

**5. Information Management**
//**Prerequisite: Database Systems**//

SAP ABAP Programming II || This course is divided into three sections. The first part deals with Object Oriented paradigm in SAP ABAP. Object Oriented Programming techniques, Repository Objects, Exception handling and RTTS are covered in the first part of this course. The second part is advanced ABAP and covers topics such as ABAP runtime, types and data objects, internal tables and function groups. The third part deals with developing user dialogs within ABAP. This section covers topics such as screen programming, program interface, screen elements, lists and context menus. || Independent and group assignments will provide the students with the opportunity to investigate Enterprise Integration solutions from the Web and in use in local environments || Social Computing Applications || The course will focus on the new area of Social Computing and its Applications, which is becoming quite popular and important these days. The course will examine a sampling of the social, technical and business challenges social web sites must solve to be successful, teach students how to use high-level tools to analyze, design or build online communities, and help them understand the social impact of spending at least part of their lives online. || Advanced Data Warehousing || Data warehouses are databases of a specific kind that periodically collect information about the activities being performed by an organization. This course will discuss advanced topics of data warehousing in order to provide a detailed knowhow of the subject to the student. Topics included in this course are: discussion on conventional data warehousing techniques, spatial data warehousing techniques, temporal data warehouses, designing conventional data warehouses, designing spatial and temporal data warehouses, and ongoing research in ware housing. || Knowledge Discovery and Data Mining || This course will offer a comprehensive coverage of well known Data Mining topics including classification, clustering, and association rules. A number of specific algorithms and techniques under each category will be discussed. Methods for feature selection, dimensionality reduction and performance evaluation will also be covered. Students will be exposed to relevant Data Mining research. ||
 * MIS541 SAP ABAP Programming I || The first section of this course comprises of Introduction to SAP ABAP, SAP architecture, and ABAP Development workbench tools. The second section deals with study of ABAP workbench in detail, which includes, study of flow of an ABAP program, ABAP workbench, ABAP dictionary, ABAP language elements, data retrieval, subroutines and ABAP events. The third section of this course is based on in-depth study of ABAP dictionary, including study of data objects, performance, input checks, object dependencies, views, search and performance monitoring. ||
 * MIS542
 * MIS502 Operations & Technology Management || Technology is becoming an indispensable tool for companies to stay competitive in the fast changing business environment of today and there is an increasing demand for effectively introducing and managing technology in the corporate world. The course will cover the management of business systems that produce goods, as well as those that provide services. It will discuss key issues in Operations Management including Lean Production, Six Sigma, 5S, JIT, Kaizen, and Continuous Process Improvement and explore the implementation of technology to solve operational problems. It will provide tools for analyzing business processes for improvement and for incorporating and managing technology to provide sustainable competitive advantage to the organization. ||
 * MIS503 Enterprise Integration || This course provides students with the theories, models, and analytic techniques required to develop solutions for integrating heterogeneous information systems. Basic concepts that must be applied to enable diverse applications developed in different environments under a variety of rules and standards to process cooperatively will be explored and illustrated. This course serves as a focused introduction to the concept that information systems must be utilized (i.e., re-used) rather than redeveloped and will give consideration to the role of users and the impact of information systems on those people.
 * MIS553
 * MIS513 Information Industry Structure & Competitive Strategy || This course draws upon the most recent experience in the impact of information technology upon diverse industries, ranging from securities trading to consumer packed goods relating. It integrates the experience with relevant theory to develop a theory of competitive strategy for electronic commerce, and for information-based strategies more generally. It is not tools and techniques course or a quantitative analysis course; likewise it is not a technology or an implementation course. It provides a focused and modern complement to strategic planning. ||
 * MIS552
 * CSE652

// **Prerequisite: Computer Architecture, Algorithms.** // Advanced Analysis of Algorithms || This is an advanced level course on algorithms that will cover topics such as review of Models of Computation, Dynamic Programming, Greedy Algorithms, Graph Algorithms, Branch and Bound, Network Flow, Algorithmic Game Theory, NP-Completeness, Approximation Algorithms, Random Algorithms, Marcov Chain Monte Carlo Method, Linear programming, Coding theory, String algorithms, Mathematical algorithms, and Local search. || Advanced Theory of Computation || The objective of this course is to read advanced topics of the core area of computer science which enables students to focus on the study of abstract models of computation. These abstract models allow the students to assess via formal reasoning what could be achieved through computing when they are using it to solve problems in science and engineering. The course exposes students to the computability theory, as well as to the complexity theory. The goal is to allow them to answer fundamental questions about problems, such as whether they can or not be computed, and if they can, how efficiently. The course defines advanced computation models and their properties, and the necessary mathematical techniques to prove more advanced attributes of these models. The students will be able to express computer science problems as mathematical statements and to formulate proofs. Upon completion of this course the students are expected to become proficient in key topics of theory of computation, and to have the opportunity to explore the current topics in this area. || Formal Methods || The aim of this course is to expose students to mechanized formal tools which help ensure correctness and hence reliability of computer systems. Students will learn about the theory underlying model checking and will gain experience with model checking tools. Upon completion of this course the student will be able to demonstrate knowledge and understanding of temporal logics, theoretical underpinnings of model checking and model-checking tools and their uses. || Advanced Computer Architecture || Comprehensive coverage of the architecture and system issues that confront the design of a high performance workstation/PC computer architectures with emphasis on quantitative evaluation. Topics covered in this course are Quantitative Principles of Computer Design, Instruction Set Principles and Examples, Advanced Pipe-lining and Instruction-Level Parallelism, Memory-Hierarchy Design, Storage Systems, Interconnection Networks and Multiprocessors. ||
 * 6.** **Theoretical Computer Science**
 * CSE651
 * CSE571
 * CSE572
 * CSE573