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
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