M.S. in Computer
Science (CISC)
Introduction
Admission
Requirements
The
Curriculum
Program
Formats and Term Dates
Early
Admission into the Doctoral Program
Course Descriptions
Graduate
Catalog 
Graduate School of Computer and Information Sciences home page
Introduction
This 36 credit-hour program offers a course of study leading to the master of science (M.S.) in computer science. It is designed to give students a thorough knowledge of the field and to provide an enduring foundation for future professional growth. The program blends theory and practice into a learning experience that develops skills applicable to complex real-world problems. Its formats offer full-time students the opportunity to earn the master’s degree in 12 months and working professionals the opportunity to earn the degree in 12–18 months. This program is available online or on-campus.
The Curriculum
Core courses and electives are listed below. Students must take all nine core courses and three electives. If the thesis option is elected, students must take all nine core courses, one elective, and six thesis credits. Students who wish to take an additional elective beyond those specified above must request approval from the program office prior to registration. Plans for the thesis option must be made with and approved by the program office.
Core Courses (three credits each)
CISC 610 Programming Languages (cross-listed with MCIS 611)
CISC 615 Design and Analysis of Algorithms
CISC 630 Compilers
CISC 631 Theory of Computation
CISC 640 Operating Systems (cross-listed with MCIS 615)
CISC 650 Computer Networks (cross-listed with MCIS 650)
CISC 660 Database Management Systems
CISC 665 Distributed Systems
CISC 680 Software Engineering (cross-listed with MCIS 645)
Electives (three credits each)
CISC 647 Computer Architecture
CISC 654 Information Security
CISC 670 Artificial Intelligence (cross-listed with MCIS 670)
CISC 681 Computer Graphics
CISC 683 Object-Oriented Design
CISC 685 Human-Computer Interaction
CISC 690 Special Topics in Computer Science
Program Formats and Term Dates
The 36-credit hour master’s program is designed so it may be completed by full-time students in 12 months or by working professionals in 12–18 months. To earn the degree in 12 months, students must enroll in three courses per term. To earn the degree in 18 months, students must enroll in two courses per term. Terms are 12 weeks long and there are four terms each year. Students select a preferred format (online or on-campus) in their admission applications, but once admitted may take courses in either format (except that some of the courses in the educational technology concentration are offered only online).
Students electing the online format may participate in online classes from anywhere in the world where Internet access is available. On-campus classes are held on the main campus in Fort Lauderdale. Each class meets once a week from 6:00 p.m. to 8:30 p.m. for 12 weeks.
Students are provided NSU computer accounts but must obtain their own Internet service providers and use their own computer systems. New students are provided an orientation on computer and software requirements, online access, online tools and methods, and library resources. Online students use the web to access course materials, announcements, email, distance library services, subscription library databases, and other information and for interaction with faculty and fellow students. Online, interactive learning methods are based on the use of WebCT as a course management system. Online activities facilitate frequent student-to-faculty and student-to-student interaction. They are supported by threaded discussion boards, white boards, chat rooms, email, multimedia presentations, and assignment drop boxes.
Early Admission into the Doctoral Program
This option provides the opportunity for master’s students in computer science to earn the Ph.D. in computer science or computer information systems in a shorter time. In addition to the requirements specified in the section Early Admission into the Ph.D. Program, the student must have completed CISC 610 Programming Languages, CISC 615 Design and Analysis of Algorithms, CISC 630 Compilers, CISC 631 Theory of Computation, and CISC 640 Operating Systems.
Course Descriptions
CISC 610 Programming Languages (3 credits)
The study of the organization and types of programming languages including analysis of imperative, object-oriented, functional, and declarative language paradigms. Other topics include formal languages and language hierarchies, syntactic and semantic specification, context-free languages, abstraction, modularity, program structure and fundamental programming language concepts. (Cross-listed with MCIS 611)
CISC 615 Design and Analysis of Algorithms (3 credits)
Principles and techniques used in the design and analysis of computer algorithms. Topics include sorting, algorithms for tree structures, dynamic programming, greedy methods, advanced data structures, divide and conquer, graph algorithms, arithmetic operations, algorithms for parallel computers, matrix operations, string/pattern matching, network problems, approximation algorithms, and NP-completeness.
CISC 630 Compilers (3 credits)
Application of language theory to the design of compilers and interpreters for high-level programming languages. Lexical, syntactic, and semantic analysis, and code generation. Other topics include storage allocation, symbol table management, optimization, and the use of modern compiler generation tools. Prerequisites: CISC 610 and CISC 631.
CISC 631 Theory of Computation (3 credits)
Automata and language theory: regular and context free languages; finite state automata and pushdown automata; regular expressions; pumping lemmas. Computability theory: Turing machine and its variants; decidability and reductions; recursive, recursively enumerable (r.e.), and non-r.e. languages. Complexity theory: time complexity and NP-completeness; a survey of NP-complete problems; space complexity and PSPACE-completeness.
CISC 640 Operating Systems (3 credits)
Concepts of computer operating systems are presented with an emphasis on structured design. Topics include operating systems structure, multiprocessing, synchronization and communication, task management, virtual memory management, file systems, protection and security, operating system extension techniques, fault tolerance, and systems programming. Recent developments in operating systems theory and implementation are covered. (Cross-listed with MCIS 615)
CISC 647 Computer Architecture (3 credits)
Characteristics and organization of modern processors are presented with an emphasis on the concepts and design of architecture for computer systems and subsystems (personal computers, servers, and embedded devices). Topics include processor fundamentals, instruction set principles, instruction-level parallelism, cache hierarchies, memory organization, virtual memory, multiprocessors and parallel architectures, thread-level parallelism, I/O and storage systems, performance evaluation, fault-tolerance, and clusters.
CISC 650 Computer Networks (3 credits)
The concepts of computer networks and network services, communication protocols, network and protocol architectures, packet switching techniques, the Internet architecture, topology, internetworking, TCP/IP, network design and analysis methods, switching, and routing. Topics include wired and wireless Ethernet, software and conceptual models, error detection, error correction, transfer and routing protocols, congestion and flow control, quality-of-service, network programming, security, current and future applications. (Cross-listed with MCIS 650)
CISC 654 Information Security (3 credits)
Theory and principles of information security and data protection. Topics include formal models for computer security, secure operating systems, mechanisms for mandatory and discretionary access controls, distributed secure system architectures, encryption and authentication, integrity models and mechanisms, secure protocols and vulnerability analysis.
CISC 660 Database Management Systems (3 credits)
Concepts of three levels of database architectures and their relationships, DBMS internals and their functions with associated API interfaces, various types of data models and their implementations in both internal and external perspectives, principles and techniques for database design and implementation, organizations of data and file structures and access methods, theory of query processing and optimization, mechanisms of concurrency control and transaction processing, and other new trends of database technologies.
CISC 665 Distributed Systems (3 credits)
Concepts and design of distributed systems and applications with an emphasis on protocols and distributed state. Topics include distributed systems architecture (system models, communication, and peer-to-peer systems); middleware (distributed objects, security, directory services, and web services); distributed systems infrastructure (distributed file systems, and distributed shared memory); distributed state coordination (time and global states, coordination, transactions, concurrency control, and replication); mobile and ubiquitous computing and future research directions. This course extends the foundation of operating systems and computer networking. Prerequisites: CISC 640 and CISC 650.
CISC 670 Artificial Intelligence (3 credits)
Theory and practice of artificial intelligence and knowledge-based expert systems. Topics include knowledge representation and inference, heuristic and adversary search, genetic algorithms, machine learning, neural computing, reasoning under uncertainty, symbolic programming using Lisp, logic programming using Prolog, and expert systems. Development and implementation of algorithms for intelligent systems is emphasized. Examples from current application areas such as robotics, planning, machine vision, natural language processing, and intelligent agents are used to reinforce the concepts. (Cross-listed with MCIS 670)
CISC 680 Software Engineering (3 credits)
The development of software-intensive systems; software quality factors; software engineering principles; system life-cycle models and paradigms; requirements definition and analysis; behavioral specification; software design; implementation; software testing techniques; verification and validation; system evolution; software project management. (Cross-listed with MCIS 645)
CISC 681 Computer Graphics (3 credits)
Principles of computer graphics, including fundamental raster operations including scan conversion, fill methods, and anti-aliasing. Coordinate systems, transformations, scene graphs and other 3D modeling methods. Rendering, hidden surface removal and ray tracing. Animation; graphical user interfaces. Modern computer graphics languages.
CISC 683 Object-Oriented Design (3 credits)
Principles and concepts of the object-oriented paradigm. Notation and techniques for the analysis, design, and implementation of object-oriented systems. Mechanisms for reuse, including composition, inheritance, design patterns, and application frameworks. Object-oriented programming.
CISC 685 Human-Computer Interaction (3 credits)
Focuses on the dynamics of human-computer interaction (HCI). Provides a broad and comprehensive overview of HCI as a sub-area of computer science and implements user-centered design approaches to computer systems including Internet and web-based environments. Areas to be addressed include the user interface and software design strategies and methodologies, user experience levels, interaction styles, and usability engineering. Students will design, evaluate, implement, and test user interfaces using appropriate computer science concepts and methodologies using current programming language environments.
CISC 688 Continuing Thesis in Computer Science (1.5 credits)
Students who have not completed the thesis by the end of the second thesis registration must register for continuing thesis. This allows the student to receive faculty and administrative advice and support related to the thesis. Prerequisite: Completion of second thesis registration.
CISC 690 Special Topics in Computer Science (3 credits)
This seminar focuses on the professor’s current research interests. Prerequisite: Consent of the course professor and program director based on student’s qualifications.
CISC 699 Master’s Thesis in Computer Science (3 credits)
The student develops a framework within which research will be conducted and offers evidence of qualifications to pursue the research. Concepts and theories underlying the student’s thesis research are articulated; the problem is clearly stated; specific, measurable goals are specified; a literature review is presented; the methods of conducting research are delineated; and strategies to achieve the goal are supplied. Registration for CISC 699 must be repeated for three more credits, for a total of six thesis credits. Prerequisite: Completion of eight courses at the 600-level.