Skip to main content

Department of Electrical & Computer Engineering and Computer Science
College of Science, Engineering, and Technology


 

The Computer Science Program is responsive to the educational needs of its students, offering both B.S. and M.S. degrees. The programs combine thorough preparation in the fundamentals of computing with the opportunity for more advanced work in Computer Science, Information Systems, and Computational Science.

Information For Students

Master of Science in Computer Science

DEGREE PROGRAMS OFFERED

The Department of Computer Science offers a Master of Science in Computer Science. The curriculum is geared to 1) provide training for those preparing to enter fields where a substantial working knowledge of computing is required, 2) provide additional training to people already working in the field, and/or 3) prepare students for study at the doctoral level.

Program Educational Objectives

The educational objectives of the MS in Computer Science program at Jackson State University are to graduate students who will be able to:

  1. Demonstrate a broad knowledge of Computer Science and a focused understanding of their area of expertise.
  2. Apply their knowledge and analytical skills to create effective and novel solutions to both practical and research problems.
  3. Adapt to rapidly changing technology and engage in life-long learning.

Student Learning Outcomes

Students receiving an MS degree in Computer Science should be able to:

  1. Describe concepts of computer architecture, operating systems, and programming.
  2. Apply mathematical foundations, computational theory, and algorithmic principles to solve computing problems.
  3. Turn complex programming specifications into well-designed and well-tested computer programs.
  4. Demonstrate knowledge of current technologies, protocols, applications, and tools necessary for computing practice.
  5. Communicate effectively and work both collaboratively and independently.

Admission Requirements

In addition to satisfying the university requirements to enter graduate school, students must meet other specific requirements in order to be formally admitted to the Department of Computer Science program. Ideally, students will have a B.S. in Computer Science, or a related field, and at least the equivalent of the following courses:

CSC 118 – Programming Fundamentals

CSC 119 – Object-Oriented Programming

CSC 216 – Computer Architecture and Organization

CSC 225 – Discrete Structures

CSC 228 – Data Structures and Algorithms

CSC 325 – Operating Systems

EN 212 – Digital Logic

ENL 212 – Digital Logic Laboratory

BIO 111 – General Biology

CHEM 141 – General Chemistry

MATH 231 – Calculus I

MATH 232 – Calculus  II

MATH 355 – Probability and Statistics

PHY 211 – General Physics I

PHY 212 – General Physics II

Students who do not have the required background may be admitted as special students. These students must take specified courses to make up deficiencies and no credit toward the degree is awarded for courses prescribed to satisfy entrance requirements.

Graduate Courses and Degree Options

Immunization Requirements

All students admitted to Jackson State University are required to submit proof of having received two immunization shots for measles, mumps, and rubella (MMR) in order to complete registration for classes.

If an applicant has already been admitted and plans to attend the University as a first time student (undergraduate, graduate or transfer), he/she must submit a copy of the required immunization record to the University Health Center prior to registration for courses.

Students who have been admitted but do not submit the required immunization verification will be unable to complete registration for classes in the school’s computer enrollment system. Please see further immunization information at this link https://www.jsums.edu/healthservices/immunization-requirements/

 


 

Master of Science in Computer Science

DEGREE PROGRAMS OFFERED

The Department of Computer Science offers a Master of Science in Computer Science. The curriculum is geared to 1) provide training for those preparing to enter fields where a substantial working knowledge of computing is required, 2) provide additional training to people already working in the field, and/or 3) prepare students for study at the doctoral level.

Program Educational Objectives

The educational objectives of the MS in Computer Science program at Jackson State University are to graduate students who will be able to:

  1. Demonstrate a broad knowledge of Computer Science and a focused understanding of their area of expertise.
  2. Apply their knowledge and analytical skills to create effective and novel solutions to both practical and research problems.
  3. Adapt to rapidly changing technology and engage in life-long learning.

Student Learning Outcomes

Students receiving an MS degree in Computer Science should be able to:

  1. Describe concepts of computer architecture, operating systems, and programming.
  2. Apply mathematical foundations, computational theory, and algorithmic principles to solve computing problems.
  3. Turn complex programming specifications into well-designed and well-tested computer programs.
  4. Demonstrate knowledge of current technologies, protocols, applications, and tools necessary for computing practice.
  5. Communicate effectively and work both collaboratively and independently.

Admission Requirements

In addition to satisfying the university requirements to enter graduate school, students must meet other specific requirements in order to be formally admitted to the Department of Computer Science program. Ideally, students will have a B.S. in Computer Science, or a related field, and at least the equivalent of the following courses:

CSC 118 – Programming Fundamentals

CSC 119 – Object-Oriented Programming

CSC 216 – Computer Architecture and Organization

CSC 225 – Discrete Structures

CSC 228 – Data Structures and Algorithms

CSC 325 – Operating Systems

EN 212 – Digital Logic

ENL 212 – Digital Logic Laboratory

BIO 111 – General Biology

CHEM 141 – General Chemistry

MATH 231 – Calculus I

MATH 232 – Calculus  II

MATH 355 – Probability and Statistics

PHY 211 – General Physics I

PHY 212 – General Physics II

Students who do not have the required background may be admitted as special students. These students must take specified courses to make up deficiencies and no credit toward the degree is awarded for courses prescribed to satisfy entrance requirements.

Graduate Courses and Degree Options


 

Undergraduate Course Description

CSC 115 (3) Digital Computer Principles

Subject matter consists of word processing, spreadsheet, database, graphics, computing, data processing, the organization of a computer, input and output devices, number systems, internal data representation and an introduction to a high-level programming language. (F, S, Sum)

CSC 118 (3) Programming Fundamentals

Prerequisite: Math 118 or Equivalent, CSC 115 or Equivalent. Co-requisite CSCL 118, This is the first course in the computer science programming sequence and is required of all computer science majors. Course objectives include: introduction to problem solving methods and algorithm development; definition of language syntax and semantics of a high level programming language (Java); and developing the ability to design, code, debug, document, and successfully execute programs. Topics include objects and classes, data types, applets and graphics, decision statements, iteration, methods, testing and debugging, arrays, sorting and searching, inheritance, interfaces and polymorphism. (F, S)

CSCL 118 (1) Programming Fundamentals Lab

Prerequisites: Math 118 or Equivalent, CSC 115 or Equivalent. Co-requisite CSC 118.
This lab is to be taken with the course CSC 118. The objective of the lab is to give the students hands-on experience on the topics covered in the CSC 118 class. Students will learn to use a text editor to write their programs and how to compile and run them. Students will be required to develop programs applying learned concepts such as object-oriented design, data types, decision-making, iteration, arrays, methods, inheritance and interfaces. (F, S)

CSC 119 (3) Object Oriented Programming

Prerequisites: CSC 118, CSCL 118. Co-requisite: CSCL 119.
This course is the follow-up of CSC 118. Additional topics in Java are covered in this course. Then the emphasis shifts to object-oriented analysis and design. This course covers I/O streams, exception handling, threads, reflection, UML, object-oriented analysis and design, object-oriented graphical user interfaces with Java Swing, design patterns, and re-factoring. (F, S)

CSCL 119 (1) Object-Oriented Programming Lab

Prerequisites: CSC 118, CSCL 118. Co-requisite: CSC 119.
Students explore, design, program, and analyze laboratory exercises of object oriented programming in a supervised setting. Laboratory submissions include not only software and data, but also short reports that are graded both for technical content and writing mechanics. (F, S)

CSC 209 (3) Programming in C/UNIX

Prerequisites: CSC 119, CSCL 119.
Problem-solving methods, algorithm development, debugging and documentation in the C programming language with emphasis on the UNIX operating system environment. Topics include: pointers, strings, structures, unions, linked lists, UNIX process management, and UNIX shell programming. (F)

CSC 211 (3) Object-Oriented Programming in C++

Prerequisites: CSC 119, CSCL 119.
Problem-solving methods, algorithm development, debugging and documentation in the C++ programming language. Topics include: classes, operator overloading, inheritance, polymorphism, stream input/output, exception handling, and file processing. (S)

CSC 212 (3) Advanced Programming in Java

Prerequisites: CSC 119, CSCL 119.
This course covers advanced topics for Java programmers. These topics include multithreading, collections, networking, advanced GUIs, database connectivity and JavaBeans. Students will be required to work on a project involving advanced Java programming.

CSC 214 (3) Programming for the Web

Prerequisites: CSC 119, CSCL 119.
This course is designed for students who have computer programming experience and who want to write Web applications. Students will learn the basic programming skills and languages that are needed to implement distributed Web applications. Topics include client-side programming techniques including HTML, Dynamic HTML and JavaScript; server-side programming techniques including CGI programming using Perl; and Web architectures and servers. (S)

CSC 216 (3) Computer Architecture and Organization

Prerequisites: CSC 119, CSCL 119, CSC 225, EN 212, ENL 212. Co-requisite: CSCL 216.
Terminology and understanding of functional organizations and sequential operations of a digital computer. Topics include machine level representations of data, arithmetic operations, machine and assembly language, memory system organization, and functional organization. The MIPS assembly language is taught for the course projects. Also, the compilation and the assembly processes, and linking and loading are covered. (F, S)

CSCL 216 (1) Computer Architecture and Organization Lab

Prerequisites: CSC 119, CSCCL 119, CSC 225, EN 212, ENL 212. Co-requisite: CSC 216.
Students will carry out experiments using the MIPS assembly language to support the topics covered in CSC 216. (F, S)

CSC 225 (3) Discrete Structures for Computer Science

Prerequisites: CSC 118, CSCL 118.
Introduces the foundations of discrete mathematics as they apply to computer science, focusing on providing a solid theoretical foundation for further work. Topics include functions, relations, sets, simple proof techniques, boolean algebra, propositional and predicate logic, fundamentals of counting, graphs, trees, discrete probability, and computability. (F, S)

CSC 228 (3) Data Structures and Algorithms

Prerequisites: CSC 119, CSCL 119, CSC 225. Co-requisite: CSCL 228.
The concepts of data abstraction and data structures are developed. For the basic data structures of linked lists, stacks, queues, hash tables, graphs, and trees, associated algorithms are described and analyzed. The course also treats recursion, sorting, fundamentals of software engineering, and the philosophy of object-orientation. (F, S)

CSCL 228 (1) Data Structures and Algorithms Lab

Prerequisites: CSC 119, CSCL 119, CSC 225. Co-requisite: CSC 228
Students explore, design, program, and analyze implementations of data structures and algorithms in a supervised setting. Laboratory submissions include not only software and data, but also short reports that are graded both for technical content and writing mechanics. (F, S)

CSC 312 (3) Advanced Computer Architecture

Prerequisites: CSC 216, CSCL 216.
The coverage of sequential computer architecture and organization is reviewed and continued. Topics include reduced instruction set architecture, memory hierarchy, interfacing and communication, and pipelining. Advanced computer architecture topics such as performance enhancements and parallel computers are also covered. (F, S)

CSC 321 (3) Logic

Prerequisites: CSC 118, CSCL 118.
Topics include: Number bases, 2’s and 1’s complements, set theory, Venn diagrams, Boolean logic, DeMorgan’s Rules, Propositional Calculus, Finite Calculus, introduction to the Predicate Calculus, combinatorics, gcd, modular arithmetic, introduction to the theory of computation and Turing Machines.

CSC 323 (3) Algorithm Design and Analysis

Prerequisites: CSC 228, CSCL 228.
Formal methods are applied to the design and analysis of algorithms. The objective is to demonstrate how mathematical theory can be used to reduce trial and error in practical software development. Other topics include algorithmic strategies, graph and tree algorithms, and automata theory. (F, S)

CSC 325 (3) Operating Systems

Prerequisites: CSC 228, CSCL 228, CSC 312.
This course introduces the major concepts of process communication and synchronization, protection, performance measurement, and causes and evaluations of the problems associated with mutual exclusion and process synchronization among concurrent processes. This course introduces and analyzes various operating systems in terms of processor management, memory management, device management, information management, and distributed systems management. (F, S)

CSC 330 (3) Database Systems

Prerequisite: CSC 323.
This course is designed to introduce students to the concepts and theories of database systems. Topics include: information models and systems; the database environment; data modeling; conceptual modeling using the entity-relationship approach and mapping to relational tables; the relational model including the relational data structure, integrity rules, relational algebra and relational calculus; normalization; data definition and data manipulation in SQL; conceptual, logical, and physical database design; security; transaction management; query processing; and advanced topics in database systems. (F, S)

CSC 332 (3) Compiler Construction

Prerequisites: CSC 216, CSCL 216.
This course presents a general model of compilers, then uses this model to demonstrate the implementation of advanced features. Topics to be covered are logical analysis, syntax, and storage allocation.

CSC 350 (3) Organization of Programming Languages

Prerequisites: CSC 216, CSCL 216, CSC 228, CSCL 228.
Study of the organization and specification of programming languages. Topics include an overview of programming languages; issues in language design, including typing regimens, data structure models, control structure models, and abstraction; virtual machines; language translation; interpreters; compiler design; lexical analysis; parsing; symbol tables; declaration and storage management; code generation; and optimization techniques. (F, S)

CSC 403 (3) Computer Science Seminar

Prerequisite: Senior level with 15 hours of 300 level courses.
Discussion on trends in computer science. Students are required to prepare a paper and present it to their peers. Students who have participated in a Co-op Program will conduct a seminar discussing their work assignments.

CSC 425 (3) Parallel Computing.

Prerequisite: CSC325 Operating Systems.   A study of the hardware and software issues in parallel computing. Theoretical and practical survey of parallel processing, including a discussion of parallel architectures,  parallel programming languages, and parallel algorithms.  Programming on multiple parallel platforms  in a higher-level parallel language. It should also be useful for those who want to learn programming  multi-core processors.

CSC 435 (3) Computer Networks

Prerequisites: CSC 323, CSC 325.
This course presents the history of networking and the Internet, protocol concepts, TCP/IP, multimedia and wireless, distributed computing, network security and web technologies. (F, S)

CSC 441 (3) Computers and Society

Prerequisites: CSC 325, CSC 330.
This course presents concepts of social value and valuation, describes the impact of computers on society; and presents tools and techniques which are applicable to problems posed by the social impact of computers. (F, S)

CSC 450 (3) Senior Project

Prerequisite: Senior standing within computer science courses.
Students will design, code, test, implement and document a significantly large and complex application program. (F, S)

CSC 452 (3) System Simulation

Prerequisites: MATH 355, CSC 228, CSCL 228.
Introduction to simulation models, writing programs to generate random numbers from various probability distributions. Simulation models using GPSS/H language for problem solving.

CSC 456 (3) Automata, Computability and Formal Languages

Prerequisites: CSC 350 and knowledge of discrete structures.
An introduction to formal models of computation. Assignments will develop students skills in understanding vigorous definitions in computing environments and in determining their logical consequences.

CSC 460 (3) Introduction to Artificial Intelligence

Prerequisite: CSC 323.
An introduction to the theory, research paradigms, implementation techniques, and philosophies of artificial intelligence. Introduction to Prolog, Lisp and expert system-shell programming.

CSC 470 (3) Computer Graphics

Prerequisites CSC 216, CSC 323.
Introduction to Graphics Hardware and Software, Display Architectures, User-Computer interface Design, 2D and 3D Transformations, Projections, Clipping, and Raster Graphics Algorithms.

CSC 475 (3) Software Engineering

Prerequisite: CSC 330.
Introduction to software engineering, software design, APIs, software tools and environments, software development processes, software requirements and specifications, software verification and validation, software implementation, software evolution, and software project management. (F)

CSC 485 (3) Digital Image Processing

Prerequisites: CSC 312, CSC 323.
Introduction to Digital Image Processing and its Applications, where the emphasis is on earth resources analysis. Subject matter consists of Hardware and Software Requirements, Transformations, Registration, Encoding, Enhancement and Restoration, and Image Databases.

CSC 499 (3) Special Topics

Prerequisite: Approval of instructor.
Advanced, specialized topics selected on the basis of mutual interest of the student and the instructor.

 


 

Description of CSC Graduate Courses

CSC 511 Object-Oriented Programming. (3 Hours): This course will cover the essentials for programming in an object-oriented language. Topics covered include: Classes, Interfaces, Inheritance and Polymorphism, Strings and Arrays, Library Packages, Input/Output, Exception Handling, Threads, Graphical User Interface and Event-driven programming.

CSC 512 Computer Architecture. (3 Hours) An advanced introduction to computer design and architecture. Topics include instruction set architecture, RISC computers, control unit design, pipelining, vector processing, memory system architecture, and classification of computers.

CSC 515 Data Structures and Algorithm Analysis. (3 Hours) Mathematical foundations for complexity theory, asymptotic notation, recurrence relations. Strategies for development of algorithms like divide and conquer, greedy, dynamic programming, backtracking. Exposure to some typical and important algorithms in computer science. Introduction to the theory of NP-completeness.

CSC 518 Operating Systems. (3 Hours) Emphasizes the concepts of process communication and synchronization, protection, performance measurement, and evaluation. Problems associated with mutual exclusion and synchronization, concurrent processes, information, process, device, and memory management are examined. Implementation of I/O and interrupt structure is also considered.

CSC 519 Principles of Programming Languages. (3 Hours) Important programming language concepts including, representation of data and sequence control, data abstraction and encapsulation; procedural and non-procedural paradigms: functional, logic, and object-oriented languages; distributed and parallel programming issues.

CSC 520 Database Management Systems. (3 Hours) Introduction to data base concepts including data independence; relations; logical and physical organizations; schema and subschema. Hierarchical, network, and relational models with description of logical and physical data structure representation of the database system. Normalization: first, second, and third normal forms of data relations. Relational algebra and relational calculus; data structures for establishing relations; query functions.

CSC 524 Computer Communication Networks and Distributed Processing. (3 Hours) Topologies, media selection, medium access control for local area networks (LANs) including high speed and bridged LANs; circuit switched, ISDN wide area networks (WANs) internetworking issues and standards, 150/051, TCP/IP protocols.

CSC 525 Wireless Ad hoc Networks. (3 Hours) This is a course on the fundamentals, design, architecture, protocols and applications of wireless ad hoc networks. The course will focus on the issues associated with the topology control, MAC layer, network layer, transport layer, security aspects, mobility models and energy consumption models of wireless ad hoc networks. The course will also look at the use of graph theory algorithms for simulating communication protocols in mobile ad hoc networks as well as data gathering protocols in wireless sensor networks.

CSC 526 Automata Theory. (3 Hours) Definition and representation of finite state automata and sequential machines. Equivalence of states and machines, congruence, reduced machines, and analysis and synthesis of machines. Decision problems of finite automata, partitions with the substitution property, generalized and complete machines, probabilistic automata, and other topics.

CSC 527 Real-Time Systems. (3 Hours) An introduction to the problems, concepts, and techniques involved in computer systems which must interface with external devices. These include process control systems, computer systems embedded within aircraft or automobiles, and graphics systems. The course concentrates on operating system software for these systems.

CSC 529 Compiler Construction. (3 Hours) An introduction to the major methods used in compiler implementation. The parsing methods of LL(k) and LR(k) are covered as well as finite state methods for lexical analysis, symbol table construction, internal forms for a program, run time storage management for block structured languages, and an introduction to code optimization.

CSC 530 Theory of Computation. (3 Hours) A survey of formal models for computation. Includes Turing Machines, partial recursive functions, recursive and recursively enumerable sets, abstract complexity theory, program schemes, and concrete complexity.

CSC 531 Computer Simulation Methods and Models. (3 Hours) A study and construction of discrete-system simulation models. Use of discrete-system simulation language (GPSS/H), advance programming techniques, random number generation, generation of various random variate, and statistical validation procedure.

CSC 533 Distributed Database System. (3 Hours) Prerequisites: CSC 520, 524. A consideration of the problems and opportunities inherent in distributed database on a networked computer system. Includes file allocation; directory systems; deadlock detection and prevention; synchronization; query optimization; and fault tolerance.

CSC 535 Information System Analysis and Design. (3 Hours) Prerequisite: 519. A practical guide to information systems programming and design. Theories relating to module design, coupling, and module strength are discussed. Techniques for reducing a system’s complexity are emphasized. The topics are oriented toward the experienced programmer or systems analyst.

CSC 537 Cloud Computing. (3 Hours) The course will present the state of the art in cloud computing technologies and applications as well as providing hands-on project opportunities and experiment with different technologies. Topics will include: telecommunications needs; architectural models for cloud computing; cloud computing platforms and services; security, privacy, and trust management; resource allocation and quality of service; cloud economics and business models; pricing and risk management; interoperability and internetworking; legal issues; and novel applications.

CSC 539 Special Topics in Computer Science. (Variable 1-9 Hours) Prerequisite: Consent of instructor. Topics and problems of information systems that are of practical importance and current interest. New developments in system concepts, techniques, and equipment.

CSC 540 Microcomputer Local Area Networks. (3 Hours) Prerequisites: 518. This course describes various criteria for selecting and implementing local area networks (LANs) consisting of microcomputers.

CSC 541 Cryptography and Network Security. (3 Hours) This course will focus on graduate-level topics in cryptography and network security, including: Symmetric Key and Public Key encryption algorithms, Digital Signatures, Certificates, Cryptanalysis, Key management and distribution, Classical network attacks and their solutions, User authentication protocols, Transport-level security, Wireless network security, E-mail security, Web security, IP security, Distributed system security, Firewalls and Intrusion detection systems.

CSC 545 Artificial Intelligence. (3 Hours) Efficient and intelligent search techniques. Knowledge representation e.g., logic, and semantic nets. Reasoning techniques including reasoning under uncertainty, e.g., fuzzy reasoning. Exposure to different artificial intelligence systems like planning and learning (including neural networks).

CSC 549 Applied Combinatorics and Graph Theory. (3 Hours) A study of combinatorial and graphical techniques for complexity analysis including generating functions, recurrence relations, Polyal’s theory of counting, planar directed graphs, and NP-complete problems. Applications of the techniques to the analysis of algorithms in graph theory, sorting, and searching.

CSC 551 Parallel and Distributed Computing. (3 Hours) Prerequisite: CSC 512 Computer Architecture or approval of Department. The course introduces the concepts and design of parallel and distributed computing systems. Topics covered include: Data versus control parallelism (SIMD/Vector, Pipelines, MIMD, Multi-core, GPU); Shared versus distributed memory (SMP and NUMA), Message passing Interface (MPI) and Topologies; Parallel and distributed algorithms: Paradigms, Models and Complexity, Scheduling, Synchronization, Deadlock detection, Fault tolerance and Load balancing.

CSC 552 Applied Programming. (3 Hours) Prerequisite: Department and advisor approval. This course focuses on the fundamentals of computing and is geared toward non-CS majors going into computational sciences. The course will cover key concepts of data structures, data manipulation, algorithms and efficiency, and how they apply to the various application domains specific to computational fields. The course will also provide an introduction to Python for computational sciences. Topics include: an introduction to computational complexity, data structures (arrays, lists, stacks, queues, trees, and graphs), elementary algorithms and their complexity.

CSC 555 Information Storage and Retrieval. (3 Hours) Advanced data structures, databases, and processing systems for access and maintenance. For explicitly structured data, interactions among these structures, access patterns and design of processing/access systems. Data administration, processing system life cycle, system security.

CSC 560 Software Engineering. (3 Hours) Formal approach to techniques and software design and development. Software cycle encompassed from initial ideas through code design and implementation with emphasis on object-oriented design techniques will be included. Software testing and maintenance will be discussed.

CSC 561 Graduate Capstone Project. (3 Hours) Prerequisite: Completion of 18 credits of graduate-level courses in Computer Science with a B grade or above. This course will provide students a comprehensive project development experience as part of a team. Students are expected to integrate their learning experiences into a coherent and focused project that effectively blends theory and practice. The focus of the projects could be on one or more of these: software design and development, modeling and simulation, data mining and quantitative analysis, and real-time performance studies. Students will periodically provide oral presentations on the progress of the project as well as submit written reports.

CSC 571 Programming for Big Data. (3 Hours) The course will expose students to three programming paradigms for big data analytics to cover the three Vs: Velocity, Volume, and Variety. The course will focus on design and development of programs based on the: (1) Supervised and unsupervised machine learning algorithms to perform predictive analytics of Big Data and implement them using a high-level interpreted language such as Octave; (2) Map-reduce parallel programming paradigm for selected data-intensive computational problems; (3) Functional programming paradigm using languages such as OCaml to analyze big data in a recursive fashion. In addition, the course will enable students to be able to configure a distributed file system based on the Hadoop architecture for reliable shared storage and develop programs that interface with it, as well as manage large datasets using SQL-like access to unstructured data (Hive) and NoSQL storage solutions (HBase).

CSC 573 Modeling and Simulation of Complex Systems. (3 Hours) The course focuses on the application of modeling and simulation principles to large-scale non-linear complex systems with interconnected parts (like a biological cell, economy or an ecological system). Topics covered include: non-linear differential equations, networks, stochastic models, cellular automata, agent-based modeling and swarm-like systems.

CSC 582 Social Network Analysis. (3 Hours) This course will cover the structure and analysis of large social networks on models and algorithms that abstract their properties. Topics covered include: Nodes, edges, and network measures, structure, and visualization and tools, the tie strength of networks, trust in social media, analyzing and classifying user roles, attributes and behavior, link prediction and entity resolution, epidemic models, location-based social media analysis, social sharing and filtering, aggregation and data mining, and network strategies for the individual and for the government.

CSC 595 Information Systems Development Project. (Variable 1-6 Hours) Prerequisites: Pass comprehensive examination and consent of advisor. Provide the student with the experience in analyzing, designing, implementing, and evaluating information systems. Students are assigned one or more system development projects. The project involves part or all of the system development cycle.

CSC 599 Thesis Research. (Variable 1-6 Hours) Prerequisites: Pass comprehensive examination and consent of advisor. An independent study course for the preparation of a Master’s thesis.

CSC 601 Computer Algorithms. (3 Hours) Prerequisite: CSC 515 Data Structures and Algorithm Analysis or CSC 323 Algorithm Design and Analysis or department approval. The course focuses on algorithms of different design strategies, and the mathematical concepts used in describing the complexity of an algorithm. Topics covered include: Asymptotic notations; Time complexity analysis of iterative and recursive algorithms; design strategies like Brute force, Divide and Conquer, Transform and Conquer, Greedy and Dynamic programming; Space-time tradeoffs in algorithms and NP-completeness – Heuristics and Approximation algorithms. The course will also cover graph theory algorithms and string matching algorithms with respect to the application of the above design strategies for specific problems.

CSC 620 Database Management Systems. (3 Hours) This course is designed for non-computer science majors entering the Ph.D. in Computational and Data Enabled Sciences and Engineering. It introduces students to the concepts and theories of database systems, necessary in the CDS&E fields. Topics include: information models and systems; the database environment; data modeling; conceptual modeling using the entity-relationship approach and mapping to relational tables; the relational model including the relational data structure, integrity rules, relational algebra and relational calculus; normalization; data definition and data manipulation in SQL; conceptual, logical, and physical database design; security; transaction management; query processing; and advanced topics in database systems, and how this applies to computational and data enabled sciences and engineering.

CSC 621 Machine Learning. (3 Hours) Pre-requisite: CSC 601 Computing Algorithms or CSC 515 Data Structures and Algorithm Analysis or CSC 323 Algorithm Design and Analysis. This course will deal enable students to understand the underlying algorithms used in various learning systems. Topics covered include: Inductive classification, Decision-tree learning, Ensembles, Experimental evaluation, Computational learning theory, Rule learning, Neural network learning, Support vector machines, Bayesian learning, Instance-based learning and Text categorization.

CSC 630 Computability and Complexity. (3 Hours) This course will cover advanced topics in computability and complexity theory. Computability topics covered include: Church-Turing Thesis, Decidability, Reducibility, Recursion Theorem and Decidability of logical theories. Complexity topics covered include: Time Complexity (P, NP, NP-Completeness), Space Complexity (Savitch’s theorem, PSPACE, NL-Completeness), Intractability, Probabilistic algorithms and Alternation.

CSC 634 Big Data Mining. (3 Hours) Pre-requisite: CSC 621 Machine Learning or department approval. This course will focus on data mining of very large amounts of data that is so large enough not to fit in main memory, characteristic of data retrieved from the web. Topics to be covered include: Distributed file systems and Map Reduce, Similarity search techniques, Real-time data-stream processing algorithms, Technology of search engines (PageRank, Link-spam detection, hubs-and-authorities approach) and Frequent-itemset mining. The course will also expose students to algorithms for clustering very large, high-dimensional datasets.

CSC 635 Big Data for Cyber Security. (3 Hours) Pre-requisite: CSC 621 Machine Learning or department approval. This course will focus on data-driven approaches to detect threats and attacks that originate from diverse channels at a rapid rate, necessitating the need for scalable distributed monitoring and cross-relation with a substantial amount of contextual information. The course will cover various anomaly-based Big Data analytics solutions for Cyber Security.

CSC 641 Network Science. (3 Hours) Pre-requisite: CSC 601 Computing Algorithms or CSC 515 Data Structures and Algorithm Analysis or CSC 323 Algorithm Design and Analysis. Topics covered include the measurement and structure of networks, methods for analyzing network data, including methods developed in physics, statistics, and sociology, graph theory, computer algorithms, mathematical models of networks, including random graph models and generative models, and theories of dynamical processes taking place on networks.

CSC 651 Foundations of Programming and Computation Systems. (3 Hours) This course will focus on graduate-level central concepts in modern programming languages, impact on software development, language design trade-offs, and implementation considerations. Functional, imperative, and object-oriented paradigms. Formal semantic methods and program analysis. Modern type systems, higher order functions and closures, exceptions and continuations. Modularity, object-oriented languages, and concurrency. Runtime support for language features, interoperability, and security issues. Prerequisite: experience in any object-oriented language.

CSC 653 Large Scale Computing. (3 Hours) Prerequisite: CSC 551 Parallel and Distributed Computing. The course will focus on large-scale modeling techniques, algorithms and computational techniques for Big Data computing. Large-scale modeling techniques covered will include linear models, graphical models, matrix and tensor factorizations, clustering, and latent factor models. Algorithmic topics include sketching, fast n-body problems, random projections and hashing, large-scale online learning, and parallel learning. The computational techniques covered in this course will provide a basic foundation in large-scale programming, ranging from the basic “parfor” to parallel abstractions, such as MapReduce (Hadoop) and GraphLab.

CSC 661 Software Engineering for Computational Applications. (3 Hours) This course focuses on computational software engineering for engineering and scientific applications. Topics include Characteristics of computational software, Development and maintenance activities, Requirement engineering for computational software, Problem analysis and solution design tools, Component reuse, Software reliability, and Computational software validation and verification.

CSC 663 High Performance Scientific Computing. (3 Hours) The course will focus on design of high performance parallel programs for scientific computing. Topics covered include: Single-processor performance, memory hierarchy and pipelines; parallel system organization; message passing and MPI programming; Problem decomposition, graph partitioning, load balancing, Shared memory, CUDA, GPU and OpenMP programming.

 


 

Graduate Courses and Degree Options

Degree Requirements

The Department of Computer Science offers courses on a semester basis. Thirty-six credit hours are required for a master’s degree. All students are required to pass the departmental Graduate Comprehensive Examination.  Students can choose one of the three-degree options: ThesisProject or Course-only option.

Areas of Emphasis

Networks & Communications              Software Engineering

Computer Architecture                        Information Systems

Algorithm Design & Analysis              Artificial Intelligence

Parallel/Distributed Computing            Informatics

Modeling and Simulation                    Data Science

Computability & Complexity               Cyber Security

Course Requirements for the Degree Options

All the three-degree options require 36 credits, out of which 12 credits of core courses and 9 credits of major courses are required. The option specific requirements are:

Thesis: Core (12 credits), Major (9 credits), Electives (9 credits) and CSC 599 (6 credits)

Project: Core (12 credits), Major (9 credits), Electives (12 credits) and CSC 595 (3 credits)

Course-only: Core (12 credits), Major (9 credits), Electives (15 credits)

Core Courses                                                  Semester

Course Title                                                      Hours

CSC 511 Object-Oriented Programming                  3

CSC 512 Computer Architecture                              3

CSC 515 Data Structures and Algorithm Analysis   3

CSC 518 Operating Systems                                   3

Total Hours                                                  12

 

Major Courses

Students must choose three major courses for a total of 9 hours

CSC 519 Principles of Programming Languages     3

CSC 520 Database Management Systems              3

CSC 524 Comp. Com. Networks and Distributed Processing   3

CSC 525 Wireless Ad hoc Networks                        3

CSC 526 Automata Theory                                      3

CSC 527 Real-time Systems                                   3

CSC 529 Compiler Construction                              3

CSC 530 Theory of Computation                            3

CSC 531 Computer Simulation Methods and Models   3

CSC 537 Cloud Computing                                     3

CSC 541 Cryptography and Network Security        3

CSC 545 Artificial Intelligence                                 3

CSC 549 Applied Combinatorics and Graph Theory   3

CSC 551 Parallel and Distributed Computing         3

CSC 555 Information Storage and Retrieval           3

CSC 560 Software Engineering                              3

ELECTIVES

The elective courses that can be included in the student’s degree plan must be approved by the student’s Major Advisor and the Department Chair. The elective courses need to be of CSC course prefix and have to be at the 5xx and/or 6xx-levels.

TOTAL REQUIRED FOR DEGREE:

(Thesis, Project or Course-only options)                36

 

Graduate Course Descriptions

 


 

Association for Computing Machinery (ACM)

 

What is ACM?

ACM brings together computing educators, researchers, and professionals to inspire dialogue, share resources, and address the field’s challenges. As the world’s largest computing society, ACM strengthens the profession’s collective voice through strong leadership, promotion of the highest standards, and recognition of technical excellence.

RESOURCES

 

Student Success

Forms

Forms

 

Important Dates

PERSONNEL

READY TO JOIN?

For more information, please contact us at (601) 979-2105.  We look forward to meeting with you and seeing how our program can help you achieve your goals.

DEPARTMENT OF ELECTRICAL & COMPUTER ENGINEERING AND COMPUTER SCIENCE

Mailing Address

Department of Computer Science
Jackson State University
1400 J. R. Lynch Street
Jackson, MS 39217

Contact

Phone: (601) 979-2105
Fax: (601) 979-6988