Department of Computer Science
http://www.comp.ncat.edu
Kenneth Williams, Interim Chairperson

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

  1. Provide high quality education in computer science through exemplary teaching, scholarly research, and public service, focused on preparing our student to be distinctive leaders and significant contributors to society.
  2. Provide a broad base in the design, implementation, and application of computer software systems and a functional background in computer hardware systems. This primary objective strives to impart lasting theoretical concepts and fundamental skills to prepare the students for lifelong learning as well as to familiarize them with current technology.
  3. Give the student the opportunity to develop a well rounded background as an overall articulate individual by requiring study in written and oral communication, natural and social sciences, humanities and the arts, business and economics, as well as promoting their participation in social and professional activities.
  4. Prepare students for advanced scholarly endeavors in computer science.
  5. Develop professional skills and work ethics (ethics in the workplace and the ethics of working hard).

DEGREES OFFERED

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

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 Computer Science Accreditation Board (CSAC-CSAB).

In Fall 2003, accreditation will be sought from 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 201

COMP 375 COMP 510
COMP 280 COMP 385 COMP 596
COMP 285 COMP 390 COMP 200
COMP 300 COMP 400 GEEN 102
COMP 301 COMP 401 GEEN 110
COMP 360 COMP 450 GEEN 120
COMP 365 COMP 467 GEEN 165
COMP 370

COMP 476

 

CURRICULUM GUIDE FOR COMPUTER SCIENCE
FRESHMAN YEAR
First Semester Credit Second Semester Credit
GEEN 110 0 GEEN 120 0
GEEN 102 2 GEEN 165 4
MATH 131 4 MATH 132 4
ENGL 100 3 MATH 123 3
Approved Social Sci. Elective 3 ENGL 101 3
PE or Health 1 Approved Social Sci. Elective 3
Soc. Sci./Human./Bus. Elective 3   17

 

16

 

 

SOPHOMORE YEAR
First Semester Credit Second Semester Credit
COMP 200 0 COMP 201 0
COMP 280 3 COMP 285 3
MATH 223 3 INEN 270 or MATH 224 3
MATH 431 3 SPCH 250 3
Approved Humanities Elective 3 Approved Humanities Elective 3
PHED Elective 1 PHYS 241 3
Approved Science Elective 4 PHYS 251 1

 

17

 

16

JUNIOR YEAR
First Semester Credit Second Semester Credit
COMP 300 0 COMP 301 0
COMP 360 3 COMP 375 3
COMP 370 3 COMP 385 3
MATH 440 or MATH 450 3 COMP 510 3
Approved Science Elective 4 ENGL 331 3
COMP 365 3 COMP 467 3

 

16

 

15

SENIOR YEAR
First Semester Credit Second Semester Credit
COMP 400 0 COMP 401 0
COMP 450 3 COMP 596 3
COMP 390 3 Approved COMP Elective 3
COMP Elective (Approved) 3 Approved COMP Elective 3
Free Elective 3 Approved Business Elective 3
COMP 476 3   12

 

15

 

 

Total Credit Hours: 124

ELECTIVES

Computer Science Electives (3 credits each)
COMP 322, COMP 363, COMP 445, COMP 490, COMP 590, COMP 595, COMP 600, COMP 645, COMP 650, COMP 653, COMP 663, COMP 681, COMP 685, COMP 691, COMP 696
Computer Science Electives Offered in other Departments
BUAD 440, BUED 342, ELEN 327, ELEN 427, ELEN 433, ELEN 617, ELEN 619, ELEN 627, INEN 415, MATH 460, MATH 631, MATH 665, MATH 675
Science (Take any 2 of the following to constitute a two semester sequence)
Biol 100, BIOL 101, BIOL 220, Chem 106, Chem 107, PHYS 242, SLSC 338
Business & Economics electives
BUAD 220, BUAD 341, BUAD 422, BUAD 426, BUAD 430, BUAD 481, ECON 200, ECON 201

 

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 160. Computer Programming I

Credit 4(3-2)

This is an introductory course in computer programming. Problem solving techniques and writing algorithms will be stressed. Students will be taught to write programs for such tasks as decision-making, text manipulation, and numerical computation. Computer organization principles (hardware and software) will also be presented. (F;S;SS)

COMP 165. Computer Programming II

 Credit 4(3-2)

This is the second course in computer science. This course trains the students to design and implement programs in a high level language. It emphasizes problem solving techniques and applications of software engineering principles to design program solutions as cohesive, readable, and resuable modules. Prerequisite: GEEN 102 or COMP 160. (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 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

Albert Esterline

Associate Professor

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

Dechang Gu

Associate Professor

B.S., Hefei Polytechnic University; M.E., Chinese Academy of Science; M.S., Ph.D., State University of New York

Ray Hawkins

 Adjunct Associate Professor

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

Mohammed Ketel

Visiting Assistant Professor

B.S., Ecole Nationale Polytecnique d’Alge (Algeria), M.S., Purdue University, M.S., Ph.D., Polytechnic University

Jung Hee Kim

Assistant Professor

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

Stephen Providence

 Assistant Professor

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

Kenneth A. Williams

Associate Professor and Chair

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

Sung H. Yoon

 Assistant Professor

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

Anna Yu

Professor

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

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