Catalog

Master of Science in Computer Science

The Master of Science in Computer Science (MSCS) offered by NDNU’s Department of Mathematics and Computer Science is designed for active professionals at the forefront of the greater Bay Area's information technology industry who wish to further their educational and professional goals. This is an applied graduate program degree and our emphasis is on software systems and web services with special attention to development, quality assurance, and testing. NDNU’s courses are geared for the working professional, each usually meeting for one evening per week.

The focus of the NDNU MSCS is on creating strong professional skills and developing hands-on experience with tools that are utilized in leading computer companies. The program also responds to the growing need of the industry for qualified professionals with technological experience and strong knowledge and skills in planning, managing, and implementing software-based applications. Our focus distinguishes the NDNU degree from other MSCS programs that concentrate on theoretical aspects of the field.

We focus on technology not as a separate goal, but rather as a set of tools that enables all of us to find easier solutions to problems in a complex society and work environment. Learning how to manage information in an efficient way will be one of the major challenges in the years to come. At NDNU we aim to develop highly skilled technology professionals who also understand and respond to social and community-related needs.

In general, graduates with an MS degree receive higher starting salaries and quicker advancement than students with BS degrees. Some companies prefer employees with MSCS degrees in IT-related jobs. The MS degree also qualifies graduates to be hired as faculty members at community colleges and four-year colleges, or to work as adjunct instructors at larger institutions of higher education.

Program Requirements

Master of Science in Computer Science (MSCS)

Prerequisites
Bachelor of Science in Computer Science or completion of these courses:
CS030A/B Foundations of Computer Science I and II  
CS040 Data Structure and Abstraction  
CS060 UNIX System Programming  
CS177A Web Programming I – Client Side  
CS177B Web Programming II – Server Side  
CS183 Database Management Systems  
CS185 Software Engineering  
MA122 Probability and Statistics  
MA119 Discrete Mathematics  
The MSCS program requires 10 courses comprising 34 units.
Core Courses
Units
CS215 Quality Assurance and Testing 4
CS261 Advanced Object- and Service-oriented Technologies 4
CS277 XML Processing and Web Services 4
CS283 Advanced Database Systems 4
CS396A Graduate Computer Science Project I 3
CS396B Graduate Computer Science Project II 3
Elective Courses:
Two courses shared with Business/Management graduate programs as follows:
6
BA212 Legal and Ethical Dimensions of Business (3)  
EB265 Business Process Management (3)  
SY213 Organizational Theory and Learning (3)  
SY217 Individual Actions and Team Dynamics (3)  
SY218 Systems Management (3)  
SY221 System Dynamics Modeling (3)  
SY223 Sustainability: Local and Global Management (3)  
SY225 Decision Support: Forecasting and Optimization (3)  
SY231 Usability in Management Systems (3)  
SY247 Enterprise Performance Management (3)  
SY253 Supply Chain Management (3)  
SY257 Project Management (3)  
SY263 Managing Information Systems (3)  
SY269 Global Management of Virtual Teams (3)  
SY283 Innovation Strategies (3)  
Two Computer Science courses from: 6
CS210 Analysis of Algorithms (3)  
CS255 Computer Graphics (3)  
CS291 Computer Networks (3)  
CS292 Network Programming (3)  
CS295 Special Topics in Computer Science (3)  
Total 34

Computer Science Courses

CS210 Analysis of Algorithms (3) Spring '05
This course covers algorithm analysis/complexity, divide and conquer algorithms, searching and sorting algorithms, dynamic programming, Greedy approach, backtracking, complexity analysis for searching and sorting algorithms, P and NP classes of algorithms, and parallel algorithms. Special graduate work is required.

CS212 Legal and Ethical Dimensions of Business (3) Fall, Summer
Cross-listed with BA212. See MBA listings for course description.

CS215 Quality Assurance and Testing (4) Fall '05
This course covers testing of software systems, software verification, symbolic execution, software debugging, quality assurance, measurement and prediction of software reliability, project management, software maintenance, software reuse, and reverse engineering.

CS218 Systems Management (3) Fall
Cross-listed with SY218. See MSM listings for course description.

CS231 Usability in Management Systems (3) Fall, Summer
Cross-listed with SY231. See MSM listings for course description.

CS255 Computer Graphics (3) Fall '06
Topics covered include graphics hardware, fundamental graphical algorithms, two and three dimensional representation, transformations, viewing parameters, hidden line/ surface removal, shading, intensity and color, animation techniques, splines, and surface creation. Special graduate work is required.

CS261 Advanced Object and Service Oriented Technologies (4) Spring '05
This course concentrates on systems design and software engineering from the object-oriented perspective. Using an object-oriented approach with UML, students model real-world objects and build language-independent designs around these objects. Current development processes, such as the Capability Maturity Model (CMM), the Unified Software Development Process, Patterns, and Team Management are analyzed. Special consideration is given to the impact of the object-oriented paradigm on software development organizations.

CS277 XML Processing and Web Services (4) Fall '04
The main goal of this course is to develop understanding and skills that allow the XML professional to access, format, and manipulate XML data. The course provides in-depth knowledge in each of the core XML standards, including DOM, SAX, Xpath/Xpointer, XSLT, Xlink, and XML Schema. Students achieve hands-on experience with tools and techniques for processing XML and use of SOAP, WSDL, and UDDI to build Web services functionality.

CS283 Advanced Database Systems (4) Spring '06
Topics covered by this course include advanced SQL and SQL *Plus concepts and PL/SQL procedures, functions and packages, including extended statements to incorporate Set Operators, and building correlated sub queries and hierarchical queries. Students create and manage PL/SQL program units and database triggers as a basis for complex application development. Special consideration is given to database servers from the perspective of optimization and performance, focusing on techniques for improving data access and storage, emphasizing performance diagnosis and resolution using real-world scenarios. A Web database application is developed using Java/JDBC/Oracle and XML.

CS291 Computer Networks (3) Spring '06
This course concentrates on methodologies for interconnecting computers. Topics include: network architectures, topologies, and protocols and their associated algorithms plus local and wide area networks. Hardware and software aspects of layered approach to computer networks, LAN technology, and applications are included. Special graduate work is required.

CS292 Network Programming (3) Summer '05
The focus of this course is on the design and implementation of network-based applications and interaction with a variety of common servers. Topics include: processes, pipes, and signals, multithreading and synchronization, socket programming, TCP Protocol, use of common modules to perform file transfer (FTP), getting e-mail (POP), sending e-mail (SMTP), Telnet connection, Web clients, forking servers and daemons, performance, data integrity, and security. Special graduate work is required.

CS295 Special Topics in Computer Science (3) Summer '06
This course is designed to address evolving areas in computer science. Special graduate work is required.

CS396A/B Graduate Computer Science Project I – II ( 3+3) Spring, Summer
This is a capstone two-semester project sequence. Specific software engineering phases, software management and development tools, and quality assurance procedures are used in order to develop a complex software project.