EE 6120: Computer Architecture (3 credits)
Fundamental concepts of the architectural structure and organization of computers are reviewed: fundamental execution cycle, central processing unit, input/output unit, and memory management unit are covered. Course reviews key abstractions supported at the architectural level such as virtual memory, micro-architecture, I/O controllers and processors. A historical analysis of the evolution of the major architectures from complex instruction set computers (CISC) to reduced instruction set computers (RISC) is carried out. Additional topics include performance evaluation, multiprocessing and parallel architectures, and tightly & loosely coupled distributed architectures. The architectural layer is considered in the context of compilation processes, operating systems, as well as high level programming concepts.
EE 6130: Data Communication Networks (3 credits)
The course covers the fundamentals of data communication networks, including architecture, principles of operations, and performance analyses. It provides a rationale from the engineering standpoint that justifies the way networks are currently structured, and facilitate understanding the issues and tradeoffs faced by designers of future networks. Strong emphasis is provided to understanding algorithms used in networking and their performance impact. An engineering mathematics background including probability is assumed. Some of the topics included are: multilayered network architecture, data link layer protocols, high-speed packet switching, queuing theory, LANs, and WANs issues.
EE 6510: Software Engineering I (3 credits)
Familiarity with Windows or Unix applications, and knowledge of advanced object oriented programming is required. An entire software development cycle is executed on a small scale project. The Object Oriented analysis, design, coding and testing techniques using the Unified Modeling Language (UML) are discussed in detail. Tools to support Software Engineering methods for Project Planning, Software Configuration Management, and OOD are demonstrated and used by the students to create sample Software Engineering work products. Some of these Computer Aided Software Engineering (CASE) tools include MS Project, WinCVS, Visual Source Safe, Visual Studio .NET, and Rational Rose. We will also cover issues concerned with virtual development teams, where part of the team is located in another city or even country.
CECS 6010: Advanced Design and Analysis of Algorithms (3 credits)
Prerequisites : None
This course emphasizes the computational complexity of a problem, the efficiency of an algorithm for solving a problem, technique for designing algorithms, and the inherent intractability of certain problems. Problems in a number applications are covered.
CECS 6030: Computational Theory (3 credits)
Prerequisites : None
This course provides an introduction to formal languages. Regular languages: regular expressions, finite automata, minimization, closure properties, decision algorithms, and non-regular parsing theory, and no context-free languages. Computable languages: Turing machines, recursive functions, Church’s thesis, un-decidability and halting problem.
CECS 6050: Advanced Programming Languages (3 credits)
Prerequisites : None
This course provides an in-depth study of current and historical issues in the design implementation, application of programming languages. Topics vary from basic to advance in areas such as imperative programming, functional programming, object-oriented programming, event-driven programming and concurrent programming. Several programming languages will be used.
CECS 6150: Object Oriented Design (3 credits)
The object oriented paradigm is covered including all its fundamental concepts. Students write programs at increasing levels of complexity that illustrate the principles of encapsulation, data abstraction, constructors, inheritance, overloading, overriding polymorphism, and dynamic binding. Various types of OO Models such as structural and behavioral, are elaborated using UML. Design patterns are introduced. The course assumes familiarity with structured programming techniques, compilation and debugging tools.
CECS 6230: IT Operations (3 credits)
Pre-requisites : None
The course covers all relevant tasks for the day to day life of an IT Manager. It will cover user support as well as change management and strategic planning in a heterogeneous environment. The goal is to give an upcoming IT manager all relevant skills in order to successfully run an IT Department for medium and large companies.
CECS 6240: Technology Based Startup (3 credits)
This course provides an introduction to the concepts and activities applicable to launching and managing technology-based ventures. Course readings, case studies and discussion will highlight key issues and concepts. Throughout the course of the semester, students will create a technology-based enterprise with all the essential parts concerning technology viability, competitive positioning, sales channel analysis, business plan, and investor pitch. Students will work in teams to launch companies, working through issues as they arise. Successful team-building for a technology-based start-up and product life-cycle planning are addressed as part of the strategic considerations for creating companies that can quickly define and dominate a new sector or die easily.
CECS 6430: Advanced Software Architectures (3 credits)
The course introduces Pattern Languages of program design, which represent a recently defined major abstraction level after Object Oriented Programming. Then follows up with an introduction to the two major component architectures in use today: Sun’s Entreprise Java Beans (EJB), and Microsoft’s COM and .NET architectures in their several incarnations. The course then explores Web Services and several proposals for the assembly of applications from network-accessible, centrally published, and publicly discoverable services. Finally we end up with a close look at more recent developments in Model Driven Architectures, including their potential for platform independent application models, and for reverse engineering of implementation level customizations.
CECS 6760: Internet Engineering I (3 credits)
Prerequisites: EE 6130
This course presents current and emerging technologies for the World Wide Web. The emphasis is on understanding the operation of the World Wide Web at many different architectural levels, including its protocols, programming languages, history and future.
CECS 7010: Computer Graphics (3 credits)
Prerequisites: CECS 6150
This course is an introduction to computer graphics for students who wish to learn the basic principles and techniques of the field and who in addition want to write substantial graphics applications themselves.
CECS 7020: Advanced Computer Graphics (3 credits)
Prerequisites: CECS 7010
This course is intended for graduate students who are interested in modeling an engineering system with sculptured curve and surface geometry. Methods of geometric modeling for integral and rational curves and surfaces and their application to computer aided design problems will be studied.
CECS 7130: Advanced Computer Networks (3 credits)
Prerequisite: EE 6130
Course covers the latest trends in computer networking and the related applications that depend on those advances. Study of wireless networks, value added networks(van), virtual private networks(vpn), satellite networks, cable, fiber and other wide-area networking technologies. The impact of new networking technologies and the new business modalities that they facilitate is covered. The course emphasizes on the integration of networking concepts and protocols into comprehensive solutions for the enterprise or business. Discussion of performance, reliability, expandability, relevance, and the economic aspects of planning and implementing practical computer networks is also covered. Analysis of the trade-offs between equipment costs, performance, reliability, long-term expandability, and operational and human management costs. Analysis of tariff and legal constraints that bear on the adoption of particular technologies are considerd.
CECS 7410: Parallel and Distributed Processing (3 credits)
Prerequisites : EE 6130
This course provides a graduate-level introduction to parallel and distributed systems programming.The foundations of the creation of systems on distributed environments will be discussed. The main characteristics of a distributed and parallel system will be presented emphasizing how they can be used to outline new applications.
CECS 7420: Modeling and Simulation
Prerequisites: CECS 6010
Computer simulation is the discipline of designing a model of an actual or theoretical system, executing the model on a computer and analyzing the results. This course explores systems model design methods and their execution for computer simulation.
CECS 7510: Software Engineering II (3 credits)
Prerequisites : EE 6510
Discusses recent trends in Software Engineering theory and practice. Explores new paradigms in the conceptualization of software such as Pattern Languages and Aspect Oriented Programming and their impact in the creation of re-usable and evolvable software. Covers increasingly important software topics such as Software Testing, Software System Validation, Software Reliability, and Software Security. Choosing from the techniques learned in Software Engineering II, we can now fully concentrate on going through several development cycles and improving techniques and know-how of tools. We will discuss limitations and advantages of using metrics, creating artifacts and how to maintain planning, deliverables and documentation in synch.
CECS 7520: Human Computer Interaction (3 credits)
Prerequisites: CECS 6150
The course presents issues on effective human-computer interaction. The role of software engineering and the human factors is considered in the design, implementation and evaluation of software. User interface and software design principles, guidelines, methodologies and strategies are explored. Specific topics covered include: basic elements, procedures, tools, development environments, user experience levels, interaction styles and collaborative systems technology. Additional topics on multidisciplinary dynamics of human-computer interaction as a field of study, current developments in HCI research and usability engineering are covered. The course reviews principles and guidelines so as to move on to advanced subjects on rapid development and application in computer engineering.
CECS 7530: Data Mining and Data Warehousing (3 credits)
Prerequisites: CIS 6605
The first part of the course discusses Data Warehousing as one of the main mechanisms for practical storage of historical data derived from the enterprise operational databases. Several models for organizing and re-factoring databases along various dimensions, as used in Data Warehouses, are discussed, and justified. Data warehouses represent just one, but perhaps the most readily available source of data within an enterprise, for performing data mining. Additional data sources for mining are discussed, including governmental and commercial sources. The second and third parts of the course discuss data mining tasks, techniques and the tools that implement these. Major data mining tasks include classification, clustering and diagramming. These generic tasks are supported through a set of techniques that include decision trees, self-organizing maps, neural networks, and other visual representation techniques. The most representative commercial tools for data mining incorporating these techniques will be used by students to mine some publicly available data sets and report their findings.
CECS 7550: Artificial Intelligence (3 credits)
Prerequisites: CIS 6605
This course offers a broad overview in the field of artificial intelligence and Knowledge Based Expert Systems. A basic background in computer science and programming in structured languages is assumed. The course surveys the major topics in Artificial Intelligence (AI). It begins with an overview of what constitutes AI and an introduction to intelligent agents. This is followed by a series of traditional AI topics such as logic, predicate calculus, knowledge representation, reasoning, planning, inference, heuristic and adversary search, artificial neural networks, machine learning, genetic algorithms, fuzzy logic and logic programming.
CECS 7570: Computer Security (3 credits)
Prerequisites: CECS 6760 or EE 6130
The fundamental tools and techniques for computer security are discussed in the context of the pervasive role and impact that computer technology has over the individual, the enterprise and on society-at-large. Mathematical cryptography fundamentals are covered followed by a set of services built on these techniques, which are then used to provide security at the system and network levels. General models of computer security and intrusion detection techniques are also covered.
CECS 7750: Software Testing (3 Credits)
This course covers topics of software testing methodologies for development and maintenance for object-oriented, component-based business and web applications. Approaches to automatic testing and supporting tools are covered. Topics include structural and functional techniques, code inspection, peer review, test verification and validation, statistical testing methods, regression tests, preventing of errors, metrics, plans, formal models and software quality. Students who finished this course will be able to analyze a given software life cycle for improvements as well as design and implement testing strategies within their companies.
CECS 7760: Internet Engineering II (3 credits)
Prerequisites: CECS 6760
The students will learn advanced WWW technologies and how to use them to design the overall structure of secure systems and e-commerce sites. Techniques for integrating legacy back-end systems and additional software components will be discussed. The use of WWW standards such as XML and other emergent technologies will be emphasized.
CECS 79XX: Project Course for Master in Computer Science (6 credits)
Prerequisites : Department Approval Required
The Master in Computer Science offers two project alternatives: (1) a research study, or (2) the development of a software application and the planning of its launching as a product using an entrepreneurial focus. The project topic needs to be approved by the course instructor. The research study requires a thorough review of literature relevant to a current problem in Computer Science and should present a solution to the problem in the form of a research paper of publishable quality. For the software application development, a real-life problem amenable to a solution that leverages the Computer Science knowledge gained through the program should be selected. Preference will be given to the development of applications that address leading edge applications of computer science in areas such as Bioinformatics, Nanotechnology, e-Learning, Adaptive Systems, Data Mining, etc.
CIS 6605: Data Base Management Systems (3 credits)
Methodologies and principles of database systems are covered: database architectures, logical modeling, the relational model, data normalization, database design process and techniques, relational algebra, integrity constraints, and SQL language. Advanced topics include: non-first normal-form databases, query optimization, indexes generation, security issues, distributed databases, object-relational and object-oriented databases, parallel databases and XML databases. Projects on theoretical aspects of databases and on application development will be required.
CIS 6715: E-Commerce and Web Information Systems (3 credits)
Prerequisites: CIS 6705 or EE 6130
Enterprises thrive on receiving, creating and disemminating information. The Internet has emerged as the dominant server for academic organizations and network hosts. This course will study the structure, organization, and use of the Internet. Internet technologies and their potential applications are examined including electronic commerce, database connectivity, and security. An emphasis will be placed on evaluating, organizing, and developing efficient models of electronic transactions.