NMT
Computer Science

Program Information
Courses
Faculty
Undergraduate
Graduate
Research
Resources
Scholarships
Job Listings
Contact Us
CS @ NMT
   

 

Catalog of Computer Science Courses


CS 111, Introduction to Computer Science and Programming, 4 cr, 3 cl hrs, 3 lab hrs

Corequisite: MATH 103 or equivalent

Introduction to the discipline of computer science: Computer architecture, operating systems and networks, automata and models of computation, programming languages and compilers, data structures, algorithms, databases, security and information assurance, artificial intelligence, graphics, and social/ethical issues of computing. The lab will focus on an introduction to programming in a structured language (e.g., C): problem solving, algorithm development, top-down design, modular programming, control structures including selection, iteration and recursion, data types including arrays, strings, and dynamic structures. Concepts implemented through extensive programming using good programming style. (Same as IT 111)


CS 122, Algorithms and Data Structures, 3 cr, 3 cl hrs

Prerequisite: CS 111

Fundamental data structures such as linked lists, trees, and hash tables. Algorithms for sorting, searching, and other fundamental operations. Introduction to recursive algorithms. (Same as IT 122)


CS 209, Programming Language Practicum, 1 cr, 3 lab hrs

Prerequisite: knowledge of elementary programming

A practical course teaching the use of a programming language of current interest. May be repeated for credit with different languages.


CS 221, Computer System Organization, 3 cr, 3 cl hrs

Prerequisites: CS 122

The hardware/software interface. Basic organization of hardware and operating systems. Memories, buses, interrupts, input and output, and instruction set architecture. Programming in assembly language. (Same as IT 221)


CS 222, Systems Programming, 3 cr, 3 cl hr

Prerequisite: CS 221

This course provides an introductory overview of operating systems and system programming, mainly focusing on system-level programming based on OS services and other APIs. Topics include
system calls, file I/O, files and directories, memory management, process control, inter-process communication (IPC), socket-based network programming, remote procedure call (RPC) programming, and basic security mechanisms. Course work includes substantial programming homework and team-based projects.


CS 324, Principles of Programming Languages, 3 cr, 3 cl hrs

Prerequisite: CS 122

Introduction to the definition of syntax and semantics. Data types, control structures, concurrency, declarations, procedures. Recursion and recursive definitions. Procedural and data abstraction. Examples from current programming languages.


CS 325, Principles of Operating Systems, 4 cr, 3 cl hrs, 2 lab hrs

Prerequisites: CS 221 and 222

Software I/O buffering. Discussion of concurrent processes, including mutual exclusion, synchronization, and deadlock. Processor scheduling, memory management, and resource control. Hoare's monitors. File systems. Each student is expected to design and implement a small operating system as a substantial portion of the course grade.


CS 326, Software Engineering, 3hrs

Prerequisite: CS 122

This course provides the introductory overview of software engineering, concentrating on large-scale software system design and implementation. Topics include software life cycle, UML-based design language, design tools and techniques, design documentation, software testing, and software project management. Course work includes a team-based project. (Same as IT 326)


CS 328, Secure Software Construction, 3 cr, 2 cl hrs, 1 lab hr

Prerequisite: CS 222

Formal methods and practical techniques for the specification, design, implementation, and validation of computer software. Current software engineering and management practices, with
emphasis on ensuring software reliability, safety, and security. Course work includes a team project to develop a sizeable, real world application software. (Same as IT 328)


CS 331, Computer Architecture, 3 cr, 3 cl hrs

Prerequisite: CS 221

Computer design fundamentals and hardware components: instruction set design, memory hierarchies, ALU's, control units, bus architectures, input and output, system design. Performance modeling and measurement.


CS 342, Formal Languages and Automata, 3 cr, 3 cl hrs

Prerequisite: MATH 221

Regular expressions. Regular, context-free, context-sensitive and unrestricted grammars and languages. Finite and pushdown automata. Turing machines, recursive and recursively enumerable languages. Decidability and the halting problem.


CS 344, Design and Analysis of Algorithms, 3 cr, 3 cl hrs

Prerequisites: CS 122; MATH 221

Interplay of data structures and algorithms. Time and space complexity of algorithms. Design paradigms and analysis techniques. Fundamental algorithms; combinatorial and graph algorithms; numerical algorithms. Introduction to the theory of NP-completeness.


CS 351, Modeling and Simulation Technologies for Information Systems, 3 cr, 3cl hrs

Prerequisites: CS 122; MATH 221

Fundamentals and techniques for designing and using simulation, modeling, and optimization algorithms with applications in system performance modeling, business infrastructure modeling, and distributed and parallel computing. An introduction to advanced complex systems models. (Same as IT 351)


CS 353, Data and Computer Communication, 3 cr, 3 cl hrs

Prerequisites: CS 122, 221

Basic concepts of data communication. Transmission media (wireline and wireless) characteristics and utilization. Digital and analog data signaling, modulation, and coding. Signal and channel analysis. Concepts from information theory. Data multiplexing and switching. Connection-oriented vs. connectionless networking. Synchronous and asynchronous carriers (ATM, SONET/ SDH). Overview of the OSI vs. TCP/IP protocol stacks. The Internet protocol structure- ÒsubnetÓ and interfaces. Channel access and allocation. Examples of LAN, MAN, and WAN. Data link control, design issues, link management, error and flow control. Principles of internetworking: relays and protocols. (Same as IT 353)


CS 373, Introduction to Database Systems, 3 cr, 3 cl hrs

Prerequisites: CS 122

Conceptual modeling and database design using the entity-relationship model. The relational model; relational algebra and relational query languages; design theory for relational databases.
Database integrity. Physical data organization. Introduction to problems of concurrency control, recovery, security, and distributed databases. Course work includes a project using SQL and the
Oracle Database Management System. (Same as IT 373)


CS 382, Legal, Ethical, and Social Issues of Information Technology, 3 cr, 3 cl hrs

Prerequisite: Upper-division standing in the CS or IT program; or consent of instructor

A survey of current legal IT (and general business and management) issues. Social and ethical issues associated with IT and management of secure information systems. (Same as IT 382)


CS 391, Directed Study, cr and topics arranged


CS 423, Compiler Writing, 4 cr, 3 cl hrs, 2 lab hrs

Prerequisites: CS 324, 342, 344.
Corequisite: CS 331

Implementation of compilers for higher level computer languages including: parsing, symbol table management, code emission, and code optimization. Each student implements a small compiler and designs an optimizing compiler as a substantial portion of the course grade. Individual and group projects. Practice in developing software requirement, specification, design, and test plan documents.


CS 441, Cryptography and Applications, 3 cr, 3 cl hrs

Prerequisites: CS 122; MATH 221

Basic theory of encryption and decryption. The RSA algorithm and the public/private key system. Cryptography systems in use for Internet and business applications. (Same as IT 441)


CS 451, Introduction to Parallel Processing, 3 cr, 3 cl hrs

Prerequisites: CS/IT 222, CS 344

Introduction to supercomputers and massively-parallel machine architecture, models of parallel computation, parallel algorithms, synchronization, parallel languages, data and functional parallelism, parallel performance analysis, popular interfaces, and parallel debugging. Students will gain experience in parallelization of sequential algorithms and implementation of parallel algorithms. (Same as IT 451)


CS 453, Computer Networks and the Internet, 3 cr, 3 cl hrs

Prerequisite: CS 353

Layering of protocols (ISO, ITU and TCP/IP stacks) and network architectures. Fiber optics technology and high speed networks. Internetworking: global addresses/names and translation, virtual networks and tunnels, routing, subnetting, IPv6, multicasting. Mobile IP. End-to-end protocols, TCP and UDP. Congestion control and resource allocation. Socket interfacing, client-server and API. The QoS mechanism integrated/differentiated), ATM QoS. Network security: information and link security, encryption, internetworking security, IPsec, firewalls, VPN, wireless security. (Same as IT 453)


CS 454, Computer Graphics, 3 cr, 3 cl hrs

Prerequisites: CS 222; MATH 254

Design and implementation of visual interfaces. Graphics input and output hardware, display programming, 2-D transformations, approximation techniques for curve and surface representation. Introduction to the creation of 3-D computer-generated images, color theory, lighting and shading.


CS 463, Information Assurance, 3 cr, 3 cl hrs

Prerequisite: Senior standing

Defense and offensive information warfare. Information system security. Computer break-ins, hacking, and other attack methods. Vulnerability and risk analysis. Theory and applications of cryptography. Intrusion detection and incident response. Security planning and management. (Same as IT 463)


CS 464, Introduction to Soft Computing, 3 cr, 3 cl hrs

Prerequisites: CS 344; MATH 382

Major types of artificial neural networks. Fuzzy logic theory and fuzzy systems construction. Genetic algorithms and evolutionary computing. Intelligent systems and engineering applications. Comparative study of the soft computing paradigm as a problem solving methodology.


CS 476, Visualization, 3 cr, 3 cl hrs

Prerequisite: CS 222 or consent of instructor

This course presents application of graphical visualization to current problems, with a focus on extracting and representing information in multidimensional data sets using 2D and 3D graphics. Topics include visualization tools and techniques, human vision and perception, color mapping, sound, data representation for insight extraction, time visualization, visual analytics, volume
rendering, surface extraction and rendering. Students will develop visualizations of real world problems. (Same as IT 476)


CS 489, Special Topics in Computer Science, 3 cr, 3 cl hrs

Prerequisite: CS222 and consent of instructor

Undergraduate special topics in computer science.


CS 491, Directed Study, cr and topics arranged

Can not be used toward graduation.


CS 523, Advanced Compiler Writing, 3 cr, 3 cl hrs

Prerequisite: CS 423

Advanced topics in compilation, such as theory of parsing, error recovery, optimization, semantics- directed translation, and hardware independent and hardware-specific code generation.


CS 525, Advanced Operating Systems, 3 cr, 3 cl hrs

Prerequisites: CS 325 and 331; or consent of instructor

Advanced topics in operating systems such as real-time, distributed systems, fault-tolerance, parallel I/O, performance, safety-critical systems, and verification.


CS 528, Formal Methods in Software Development, 3 cr, 3 cl hrs

Prerequisites: CS 342; CS 325 or 328 or 423 or equivalent experience

Use of mathematics, logic, and computer science theory in software development. Formal specifications; systematic development of programs from specifications. Correctness proofs and other analysis techniques.


CS 531, Advanced Computer Architecture, 3 cr, 3 cl hrs

Prerequisite: CS 331

Advanced topics in computer architecture.


CS 542, Advanced Formal Language Theory, 3 cr, 3 cl hrs

Prerequisite: CS 342

Extensive study of context-sensitive and recursively enumerable languages; closure properties, decidability, and ambiguity of various language classes. Special topics as time permits.


CS 544, Analysis of Algorithms, 3 cr, 3 cl hrs

Prerequisite: CS 344

Analysis of correctness and complexity of asymptotically efficient algorithms. Set partitioning, dominators of dags (with applications in code optimization), Strassen's matrix multiplication algorithm, FFT, Schonnage-Strassen integer multiplication algorithm, pattern matching, NP complete problems (both time and space), lower bounds. Discussion of problems for which no efficient algorithms exist.


CS 546, Theory of Computation, 3 cr, 3 cl hrs

Prerequisite: CS 342

Effective computability of functions and sets in terms of Turing machines and other computational models. Universal machines and examples of unsolvable problems. The Church-Turing thesis and formal proofs of the equivalence of Turing machines, systems of recursion equations, and other models of computation. Mathematical properties of the classes of recursive functions. Recursive and recursively enumerable sets.


CS 551, Advanced Parallel Processing, 3 cr, 3 cl hrs

Prerequisites: CS 452; or consent of instructor

This course focuses on the application of models of parallel computation, parallel algorithms, synchronization, parallel languages, parallel performance analysis, and parallel debugging to large problems and complex systems. Topics include: integrating data and shared memory parallelism, multilevel domain decompositions, portability, and scalability. Student will parallelize and analyze the performance of a complex system or application.


CS 553, Advanced Computer Networks, 3 cr, 3 cl hrs

Prerequisite: CS 453

Models of computer networks. Design and analysis issues. Abstract syntax notation, data compression, security and authentication. Recent developments in the field.


CS 563, Computational Logic, 3 cr, 3 cl hrs

Prerequisites: CS 342 or MATH 452; elementary knowledge of LISP

Mechanical theorem proving using resolution, natural deduction, and other methods. Proofs and models; methods for first-order predicate calculus, integer arithmetic, and other theories, and  applications.


CS 565, Neural Nets, 3 cr, 3 cl hrs

Prerequisites: CS 344; MATH 254 and 382; or consent of instructor

Neuron modeling. The perceptron and multilayer perceptrons. Learning algorithms. The Kohonen model, the Grossberg model, the Hopfield model. Associative memory. Applications. Recent developments in the field. (Same as MATH 505)


CS 567, Soft Computing, 3 cr, 3 cl hrs

Prerequisites: MATH 254, 382; CS 344 or equivalent, or consent of instructor

Artificial neural networks, with emphasis on multiplayer feedback networks, self-organizing networks, and Hopfield-style networks. Learning algorithms. Introduction to fuzzy systems and evolutionary computing. Engineering applications of soft computing. (Same as EM 567)


CS 568, Intelligent Systems, 3 cr, 3 cl hrs

Prerequisites: MATH 254, 382; CS 344 or equivalent, or consent of instructor

Overview of the major paradigms of soft computing: neural networks, fuzzy systems, and evolutionary computing. In-depth coverage of selected topics in each area as relevant to intelligent systems. Recent advances in the field, and case studies of intelligent systems. Coursework includes a large-scale project. (Same as EM 568)


CS 569: Embedded Systems Design, 3 cr, 3 cl hrs

Prerequisites: consent of instructor

Hardware/software systems and co-design. Embedded processor architecture and programming. Models of computation for embedded systems. Behavioral design. OS primitives for
concurrency, timeouts, scheduling, communication and synchronization. Architecture selection. Simulation, synthesis, and verification. Hardware/software implementation. Performance
analysis and optimization. Application-level embedded system design concepts such as basic signal processing and feedback control. Design methodologies and tools. Design examples and case studies.


CS 570: Real-Time Systems, 3 cr, 3 cl hrs

Prerequisites: consent of instructor

Classification of real-time systems. Fundamental theorems and corollaries of deadline and fixed priority real-time scheduling techniques. Schedulability analysis. Scheduling techniques to
guarantee an array of timing requirements. Implementation of a set of tasks with periodic and aperiodic timing requirements. Execution time estimation of a piece of code. Modification of
scheduling algorithms in a real-time kernel. Performance evaluation of an operating system for realtime applications.


CS 573, Database and Knowledge-base Systems, 3 cr, 3 cl hrs

Prerequisites: CS 373; MATH 221

Databases, object bases, and knowledge bases. Data models. Logical foundations of database and knowledge-base systems. Query optimization. Selected topics from current research.


CS 576, Advanced Visualization, 3 cr, 3 cl hrs

Prerequisites: consent of instructor

This course presents application of graphical visualization to large problems and complex systems, with a focus on extracting and representing information in multidimensional data sets using
2D and 3D graphics. Topics include visualization tools and techniques, human vision and perception, color mapping, sound, data representation for insight extraction, time visualization, visual analytics, volume rendering, surface extraction and rendering. Students will perform visual analytics research for large problems and/or complex systems.


CS 581, Directed Study, cr to be arranged


CS 585, Graduate Seminar, 3 cr


CS 588, Special Topics in Computer Science, 3 cr, 3 cl hrs

Prerequisites: Two semesters of upper division courses in computer science and consent of instructor.

Graduate special topics in computer science.


CS 590, Independent Study, cr to be arranged

Under the direction of a faculty member appointed by the department, the student shall prepare a paper making use of standard reference sources on some topics not covered by other course work.


CS 591, Thesis (master's program), cr to be arranged


CS 595, Dissertation (doctoral degree program), cr to be arranged


 
  SiteMap | Contact Us