Department of Computer Science
http://www.eng.ncat.edu/dept/cs
Gerry Dozier, Chairperson

 

DEGREES OFFERED

Computer Science - Bachelor of Science
Computer Science - Masters of Science *
* See Graduate School Bulletin

MISSION

The mission of the Bachelor of Science Program in the Department of Computer Science is to provide the opportunity for its students to acquire the educational background necessary to pursue professional careers in the wide variety of positions in which Computer Science is required, or to continue their education toward advanced degrees in computer science. The primary purpose of the Department is to teach theory, abstraction, and design related to the field of computer science.

 

EDUCATIONAL OBJECTIVES

 

The program enables students to achieve the following outcomes by the time of graduation:

  1. An ability to acquire and perform effectively in a computer science related entry-level position in industry

  2. An ability to be admitted to and perform effectively in graduate programs where an undergraduate degree in computer science is required
  3. An ability to apply knowledge of computing and mathematics appropriate to the discipline
  4. An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution
  5. An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
  6. An ability to function effectively on teams to accomplish a common goal
  7. An understanding of professional, ethical, and social responsibilities
  8. An ability to communicate effectively
  9. An ability to analyze the impact of computing on individuals, organizations, and society, including ethical, legal, security, and global policy issues
  10. Recognition of the need for and an ability to engage in continuing professional development
  11. An ability to use current techniques, skills, and tools necessary for computing practice.
  12. An understanding the basics of computer hardware and how software interacts with computer hardware.

PROGRAM REQUIREMENTS

The Computer Science major must complete 124 credit hours following the approved departmental curriculum. Majors must also satisfy all University and College of Engineering requirements.

Included in the 124 semester hours are 54 hours in Computer Science courses and 23 hours in mathematics.

ACCREDITATION

The undergraduate program in Computer Science, leading to the Bachelor of Science in Computer Science (BSCS) degree, is accredited by the Computer Science Accreditation Commission of the Accreditation Board for Engineering and Technology (CAC-ABET).

 

CAREER OPPORTUNITIES

The Bureau of Labor Statistics of the U.S. Department of Labor in its “Occupational Outlook for College Graduates” continues to report that the employment outlook for computer-oriented graduates is very good. Opportunities in the area are expected to grow faster than the average of all occupations through the next decade.

REQUIRED MAJOR COURSES IN COMPUTER SCIENCE

COMP 200

COMP 201

COMP 280

COMP 285

COMP 300

COMP 301

COMP 360

COMP 365

COMP 370

COMP 375

COMP 385

COMP 390

COMP 400

COMP 401

COMP 450

COMP 467

COMP 476

COMP 510

COMP 596

GEEN 110

GEEN 120

GEEN 163

GEEN 165

CURRICULUM GUIDE FOR COMPUTER SCIENCE
FRESHMAN YEAR
First Semester Credit Second Semester Credit

GEEN 110

GEEN 163

MATH 131

UNST 100

UNST 120

UNST 130

0

3

4

1

3

3

14

GEEN 120

GEEN 165

MATH 132

MATH 123

UNST 110

UNST 140

0

4

4

3

3

3

17

SOPHOMORE YEAR
First Semester Credit Second Semester Credit

COMP 200

COMP 280 

MATH 223

MATH 431

Cluster Theme Elective

Cluster Theme Elective

0

3

3

3

3

3

15

COMP 201

COMP 285

Approved Stat. Elective

PHYS 241

PHYS 251

Cluster Theme Elective

Cluster Theme Elective

0

3

3

3

1

3

3

16

JUNIOR YEAR
First Semester Credit Second Semester Credit

COMP 300

COMP 360

COMP 370

Approved Mathematics

   Elective

Approved Science

   Elective  

COMP 365

0

3

3

 

3

 

4

3

16

COMP 301

COMP 375

COMP 467

COMP 510

Approved Science

   Elective

ENGL 331

0

3

3

3

 

4

3

16

SENIOR YEAR
First Semester Credit Second Semester Credit

COMP 400

COMP 450

COMP 390

Approved COMP

   Elective

COMP 385

COMP 476

 

0

3

3

 

3

3

3

15

COMP 401

COMP 596

Approved COMP Elect.

Approved COMP Elect.

Approved Bus. Elective

Free Elective 

0

3

3

3

3

3

15

Total Credit Hours: 124

ELECTIVES

Computer Science Electives (3 credits each)
COMP 322, 363, 445, 490, 590, 595, 600, 645, 650, 653, 663, 681, 685, 691, 696
Computer Science Electives Offered in other Departments
BUAD 440, BUED 342, ELEN 327, 427, 433, 617, 619, 627, INEN 415, MATH 460, 631, 665, 675
Science Electives (Take any 2 of the following groupings)
[Chem 106/116, 107/117], [Chem 106/116, BIOL 101] [PHYS 242/252, and one of the following – CHEM 106, SLSC 338, Biol 100], Mathematics Electives: MATH 440, MATH 450, Statistics Electives: MATH 224, INEN 270

Business & Economics electives
BUAD 220, 341, 422, 426, 430, 481, ECON 200, 201

 

Minimum Grade of "C" Policy

Computer Science students must earn a grade of "C" or better in the following courses to graduate or to satisfy prerequisite requirements of subsequent courses: GEEN 163, and 165, COMP 160, 165, 280, 285, 360, 365, 370, 375, 385, 390, 450, 467, 476, 510, and 596, MATH 123, 131, and 223, and ENGL 100 and 101

 

Policy for Changing Major to Computer Science

 

If you are currently undecided or in another major at North Carolina A&T State University, and  you wish to change your major to Computer Science, you must meet the following criteria.

  1. Complete COMP 160 or GEEN102 or GEEN 163 with a grade of C or better.

  2. Complete MATH 131 or 123 with a grade of C or better.

  3. Must have a cumulative grade point average of 2.5 or better.

COURSE DESCRIPTIONS IN COMPUTER SCIENCE

COMP 120. Computers and Their Use

Credit 3(2-2)

This course provides a survey of the basic principles of computer hardware, computer communications, application software, operating systems, security, impact on society, use in organizations and systems development. Principles of programming are introduced. Information is at a level for the students to become informed users. This course is cannot be taken for credit by Computer Science majors. (F;S;SS)

COMP 200. Computer Science Colloquium 3

 Credit 0

This course provides the student with exposure to current issues in computer science. Colloquium speakers shall include visitors and faculty. Prerequisite: Sophomore standing. (F)

COMP 201. Computer Science Colloquium 4

 Credit 0

This course provides the student with exposure to current issues in computer science. Colloquium speakers shall include visitors and faculty. Prerequisite: Sophomore standing. (S)

COMP 280. Data Structures

Credit 3(3-0)

This is the third course in the computer science sequence. It introduces abstractions (algorithm, data type, complexity) and programming tools (pointers, dynamic memory, and linked data structures). The course also examines essential data structures, (stacks, queues, trees, linked lists, and graphs). It analyzes and implements techniques such as hashing, sorting, searching, and priority queues, to solve general problems. The emphasis of the course is on building modular programs that can be changed to use different data structures and algorithms. Prerequisites: GEEN 165 or COMP 165, MATH 123. (F;S;SS)

COMP 285. Design and Analysis of Computer Algorithms

Credit 3(3-0)

This course covers analysis of efficient algorithms for sorting, searching, dynamic structure manipulation, path-finding, fast multiplication, and other problems. It introduces algorithmic techniques such as recursion, divide-and-conquer, and dynamic programming. It develops the following tools for algorithmic analysis: correctness proofs, algorithm synthesis, and discusses issues in non-computability. The course also overviews non-deterministic algorithms, and develops techniques to classify computationally hard problems. The concept of non-deterministic polynomial (NP)-completeness is introduced, and basic issues related to NP-completeness are discussed. Prerequisites: COMP 280, MATH 223, and MATH 131. (F;S;SS)

COMP 300. Computer Science Colloquium 5

Credit 0

This course provides the student with exposure to current issues in computer science. Colloquium speakers shall include visitors and faculty. Prerequisite: Junior standing. (F)

COMP 301. Computer Science Colloquium 6

 Credit 0

This course provides the student with exposure to current issues in computer science. Colloquium speakers shall include visitors and faculty. Prerequisite: Junior standing. (S)

COMP 322. Internet Systems

Credit 3 (3-0)

This course addresses the structure and functionality of the Internet and software that exploits it. Topics include mark up languages, Web tools, static, dynamic and active web pages, multimedia in Web applications, communication protocols, client-server, computing, scripting, group communication support, e-commerce, and security. Topics also include systems for organizing and coordinating work at different sites, multiagent systems that exploit the Internet, and architectures to exploit the distributed computational power offered by the Internet. Prerequisite: COMP 285 (F;S;SS)

COMP 360. Programming Languages

 Credit 3(3-0)

This course focuses on formal specification of programming languages, including definition of syntax and semantics: simple statements including precedence, infix, prefix, and postfix notations. It highlights global properties of algorithmic languages including sequence control, data structure implementation, scoping, storage management, grouping of statements, binding time, sub-routines, co-routines, and tasks. Prerequisite: COMP 285. (F;S)

COMP 363. Object Oriented Programming

Credit 3(3-0)

This is a course in object oriented program development. The main topics include encapsulation, polymorphism, inheritance, debugging and performance tuning. Prerequisite: COMP 280. (F;S)

COMP 365. Programming Methodologies & Concepts

Credit 3(3-0)

This course covers advanced programming techniques in order to enhance the student’s knowledge and experience in programming. This course includes techniques dealing with advanced object oriented programming, human computer interaction, computer graphics and current programming trends. This course will also cover AI techniques such as search strategies and knowledge representation. Prerequisite: COMP 285. (F;S;SS)

COMP 370. Introduction to Computer Architecture

Credit 3(3-0)

This course teaches techniques for design and optimization of combinatorial logic circuits, flipflops, counters, registers and arithmetic concepts necessary to understand computer logic. Additional topics include assembly language programming, interrupt handling, and data representation. Prerequisite: COMP 280. (F;S)

COMP 375. Computer Architecture and Organization

 Credit 3(3-0)

This course explores the design of computer systems and their architectures. Topics include central processing unit architecture, microcode, system interconnections, memory systems, Input/Output systems, interrupt handling, peripherals and communications networks. Prerequisite: COMP 370. (F;S)

COMP 385. Theory of Computing

Credit 3(3-0)

This course is the study of topics which include theory of finite state machine and automata; regular expressions; Turing machines; grammars; parsing; language hierarchy; machine design and construction; computability; unsolvability; halting problem; computational complexity; and recursive functions. The course also discusses issues in equivalence of various computational models, minimization, and characterizations. Prerequisite: COMP 360. (F;S)

COMP 390. Social Implications of Computing

 Credit 3(3-0)

This course examines the increasingly complex interaction between computer systems, our social fabric and ethics. Software and microprocessors control automobiles, banks, brokerage trading, aircraft, medical equipment, and just about every other device used in industrialized nations. Impacts of computerized systems upon personal privacy and citizen involvement in governance are examined in relation to the public policy questions of the day. The role and opportunity for historically under-represented groups will be explored. Interdisciplinary readings are stressed, along with required written and oral presentations and class debates. Prerequisite: ENGL 331. (F;S)

COMP 397. Co-operative Industrial Experience I

Credit 3(3-0)

This is a supervised learning experience in an approved private or governmental facility. The student must be employed full time for at least one semester and must perform supervised work that will enhance his/her educational background in an area related to computer science. In addition to the supervisor’s evaluation in the field, the student’s performance will be evaluated by a departmental faculty committee, based upon the recommendation of the Director of the Co-operative Education Program, reports, informal portfolios and forum and/or seminar presented by the student upon his/her return to the university. Prerequisite: Permission of advisor. (F;S)

COMP 400. Computer Science Colloquium 7

Credit 0

This course provides the student with exposure to current issues in computer science. Colloquium speakers shall include visitors and faculty. Prerequisite: Senior standing. (F)

COMP 401. Computer Science Colloquium 8

 Credit 0

This course provides the student with exposure to current issues in computer science. Colloquium speakers shall include visitors and faculty. Prerequisite: Senior standing. (S)

COMP 445. An Introduction to Artificial Intelligence

Credit 3(3-0)

This course is an introduction to the theory of artificial intelligence and a survey of artificial intelligence application areas. It covers the foundational concepts related to knowledge representation and search strategies. An artificial intelligence language is presented to give programming experience in implementing basic artificial intelligence concepts. Some of the applications areas that are discussed include: game playing, expert systems, theorem proving, natural language understanding, machine learning, planning, and robotics. Prerequisites: COMP 285 and MATH 223. (DEMAND)

COMP 450. Operating Systems

Credit 3(3-0)

This is an introduction to the theory and practice of operating system design and implementation. Algorithmic techniques are presented for implementing process management, storage management, processor management, file systems, security, distributed systems, performance evaluation, and real time systems. Prerequisite: COMP 375. (F;S)

COMP 467. Data Base Design

Credit 3(3-0)

This course focuses on logical and physical organizations of large sets of related data. It covers issues in file structures as well as file and database management systems. It explores relational models, hierarchical models, directed graph models, data definition and manipulation languages, and relational calculus. Application oriented projects are required. Prerequisite: COMP 280. (F;S)

COMP 476. Networked Computer Systems

 Credit 3 (3-0)

This course presents an overview of the technology, architecture and software used by systems of network-connected computers. The course will cover data transmission, local area network architecture, network protocols, internetworking, security, and World Wide Web technology. Students will write programs that run concurrently on multiple computers. Prerequisite: COMP 375 (F; S)

COMP 490. Program Design and Analysis in Ada

Credit 3(3-0)

This course presents a comprehensive overview of the Ada programming language: Data types, program and software design using libraries, private types, generics, exception handling, and parallel processing. Prerequisite: COMP 285. (DEMAND)

COMP 510. Software Engineering

 Credits 3(3-0)

This course is an introduction to the principles underlying software specification, implementation, validation, and management. It addresses application of software engineering concepts to large software systems. Team effort is emphasized throughout the course. Prerequisite: COMP 360. (F;S)

COMP 590. Special Topics in Computer Science

 Credit 3(3-0)

This course permits the exploration of advanced topics pertinent to student’s program of study in a seminar setting. Prerequisite: Permission of advisor. (DEMAND)

COMP 595. Senior Project I

 Credit 3(3-0)

This course is the first course in a two-semester sequence, which allows students the opportunity to design and implement a software project from start to finish. Projects started in this course will be completed in COMP 596, giving the student the opportunity to work on a project of significant size. Students taking this course must take COMP 596. Prerequisite: COMP 285. Corequisite: COMP 510. (F;S;SS)

COMP 596. Senior Project II

 Credit 3(3-0)

This course allows students the opportunity to design and implement a software project from start to finish. Projects started in COMP 595 must be completed in this course for students working on a yearlong project. Student choosing to do a semester project must start and complete the project in this course. This course gives the student the opportunity to work on a software project of significant size. Prerequisite: COMP 510 (F;S;SS)

COMP 600. Special Topics in Computer Science

Credit 3(3-0)

This course permits the exploration of advanced topics pertinent to student’s program of study in a seminar setting. (F;S)

COMP 645. Artificial Intelligence

 Credits 3(3-0)

This course presents the theory of artificial intelligence, and application of the principles of artificial intelligence to problems that cannot be solved or cannot be solved efficiently by standard algorithmic techniques. Topics include search strategies, production systems, heuristic search, expert systems, inference rules, computational logic, natural language processing, knowledge representation, and knowledge-based systems. Predicate calculus is discussed. An artificial intelligence language is presented as a vehicle for implementing concepts of artificial intelligence. Prerequisite: COMP 445. (DEMAND)

COMP 650. Advanced Operating Systems

Credits 3(3-0)

This course centers on operating systems for multi-processing environments: concurrent processes, mutual exclusion, job scheduling, memory, storage hierarchy, file systems, security, and distributed processing. Also discussed are virtual resource management strategies. A design project involving the construction of operating facilities is produced. (F;S)

COMP 653. Computer Graphics

Credits 3(3-0)

This is a course in fundamental principles and methods in the design, use, and understanding of computer graphic systems. Topics include coordinate representations, graphics functions, and software standards. Hardware and software components of computer graphics are discussed. The course presents graphics algorithms. It also introduces basic two-dimensional transformations, reflection, shear; windowing concepts, clipping algorithms, window-to-viewpoint transformations, segment concept, files, attributes and multiple workstation, and interactive picture-construction techniques. Prerequisite: COMP 285. (F;S)

COMP 663. Principles of Compiler Design

Credit 3(3-0)

This course emphasizes the theoretical and practical aspect of constructing compilers for computer programming languages. The course covers principles, models and techniques used in the design and implementation of compilers, interpreters, and assemblers. Topics include lexical analysis, parsing arithmetic expressions and simple statements, syntax specification, algorithms for syntax analysis, object code generation, and code optimization. Each student will develop and implement a compiler. Prerequisites: COMP 375 and 385. (DEMAND)

COMP 681. Formal Methods

Credit 3(3-0)

In this course, formal methods that model the software development process will be studied. Fundamental and practical methodologies and theories, including set theory and the foundations of software engineering will be emphasized. Applications to formal specifications, object-oriented programming and data modeling will be examined. Topics include set theory, relations and functions, induction and recursion, symbolic logic, complex models, and application case studies. (S)

COMP 685. Advanced Analysis of Algorithms

Credit 3(3-0)

This course discusses the design and analysis of efficient algorithms and algorithmic paradigms. Applications include sorting, searching dynamic structures, graph algorithms, computationally hard problems, and NP completeness. (F;S)

COMP 690. Special Topics in Computer Science        

Credit 3(3-0)

This course permits the exploration of advanced topics pertinent to student’s program of study in a seminar setting. Prerequisite: Permission of advisor. (DEMAND)

COMP 696. Information, Privacy and Security

Credit 3(3-0)

This course examines the security and privacy issues associated with informational systems. There are cost/risk tradeoffs to be made. Discussed are topics such as technical, physical, and administrative methods of providing security, access control, identification, and authentication. Encryption is examined, including Data Encryption Standards and public key crypto-systems. Management considerations such as key protection and distribution, orange book requirements, and OSI data security standards are covered. Privacy legislation is covered, as is current cryptographic research. (DEMAND)


DIRECTORY OF FACULTY

Shearon A. Brown

Adjunct Associate Professor

B.S., M.S., North Carolina A&T State University; M.S., University of Illinois

Edward Carr

 Adjunct Assistant Professor

B.S., Wingate University; M.S., Western Carolina University; M.S., North Carolina A&T State University

Gelonia Dent

Adjunct Associate Professor of Computer Science and Chemical Engineering

B.S., University of Georgia; M.S. Clark Atlanta University, Ph.D., Brown University

Edmundson Effort

Adjunct Assistant Professor

M.S., North Carolina A&T State University

Albert Esterline

Associate Professor

B.A., Lawrence University; M.Litt., Ph.D., University of St. Andrews; M.S., Ph.D., University of Minnesota

Ray Hawkins

 Adjunct Associate Professor

B.S., University of Baltimore; M.B.A., M.S., Pace University

Jung Hee Kim

Assistant Professor

B.A., Korea University, M.S., Ph.D., Illinois Institute of Technology

Yaohang Li

Assistant Professor

B.S., South China University of Technology, M.S., Ph.D., Florida State University

Stephen Providence

 Assistant Professor

B.A., M.S., Ph.D., City University of New York

Kenneth A. Williams

Associate Professor

B.S., M.S., Michigan Technological University; Ph.D., University of Minnesota

Jinsheng Xu

Assistant Professor

B.S. Nanjing University, M.S. Beijing University, Ph.D., Michigan State University

Sung H. Yoon

 Associate Professor

B.S., Seoul National University; M.S., North Carolina A&T State University, Ph.D., North Carolina State University

Huiming Anna Yu

Professor

B.S., Xiamen University; M.S., Hefei Polytechnic University; Ph.D., Stevens Institute of Technology

Xiaohong Dorothy Yuan

Assistant Professor

B.S., Huazhong University of Science and Technology, Ph.D., Institute of Automation, Chinese Academy of Sciences, Ph.D., Florida Atlantic University

 

Departments in the College of Engineering

 

Table of Contents