Computer Science Course Description(s)

COMP1220 Introduction to Computer Science (3)

Provides a broad coverage of topics in computer science and its applications. Investigates the capabilities of computer technology. Includes an introductory experience in programming. Also includes introductions to professional ethics and careers. Prerequisites: An ACT Math score of 23 or its equivalent.

COMP2040 Introduction to Web Development (3)

Introduces students to the world of computer science through the world-wide web, focusing on the techniques of web-page creation. No programming background is required, although students will learn some programming through scripting languages. Offered: Alternate years. Prerequisites: COMP1220 or instructor's permission.

COMP2094 Topics in Computer Programming (1-4)

An intensive study of one programming language not covered in other courses. Prerequisites: Instructor's permission. May be repeated for credit.

COMP2220 Computer Programming I (3)

Further study of the syntax and semantics of a programming language using object-oriented design methodology. Problem-solving heuristic and algorithm development will be emphasized. Prerequisites: ENGR1010, COMP1220, ENGR1010 or COMP1220. Corequisites: COMP2220L

COMP2220L Computer Programming I Laboratory (1)

A required laboratory associated with COMP2220. Corequisites: COMP2220

COMP2260 Event-Driven Programming (3)

An introduction to the principles of developing application programs to run in a Windows environment. Development of real-world, multi-form, commercial applications taken from engineering, business, and industry will be emphasized. Offered: Alternate years. Prerequisites: COMP2220 Corequisites: COMP2260L

COMP2260L Event-Driven Programming Laboratory (1)

A required laboratory associated with COMP2260. Offered: Alternate years. Corequisites: COMP2260

COMP2630 Computer Architecture (3)

An introduction to the basic concepts of a computer system and its architecture using the 80x86 microprocessor. This includes memory, control, and arithmetic logic unit (ALU) interactions. Instruction types, formats, and data representation are studied. Prerequisites: COMP2220

COMP2750 Data Structures (3)

Introduction to commonly used computer data structuring techniques. Topics include graphs, stacks, queues, lists, trees, sorting, searching, and memory management. Prerequisites: COMP2220

COMP3094 Special Topics in Computing (1-4)

A study of some areas not covered in other computing courses. Prerequisites: Instructor's permission. May be repeated for credit.

COMP3230 Introduction to Spatial Analysis (3)

Introduction to Geographic Information Systems (GIS) and the utilization of geospatial data for observation of data in a means that is not possible in written or tabular format. Spatial analysis allows questions to be considered where a primary consideration is the relationship between where different entities are located.

COMP3330 Database Design and Programming (3)

An introduction to application program development in a database environment with an emphasis on data structures, file organization, hierarchical network and relational data models and storage devices. Offered: Alternate years. Prerequisites: COMP2750, MATH2310 Corequisites: COMP3330L

COMP3330L Database Design and Programming Laboratory (1)

A required laboratory associated with COMP3330. Offered: Alternate years. Corequisites: COMP3330

COMP3370 Systems Analysis and Design (3)

A study of techniques and tools used to analyze problems with an emphasis on defining the present state of a system and offering a set of alternative designs, which provide an improved system. The types of optimization criteria and tools for performing this analysis will be investigated with examples from business and engineering. Offered: Alternate years. Prerequisites: COMP2220

COMP3430 Operating Systems I (3)

An introduction to the major concepts of operating system principles. This includes an understanding of the organization and architecture of computer systems at the register-transfer and programming levels of system description. This includes operating system concepts relating specifically to current operating system standards and a formal treatment of programming language translation and compiler concepts. Offered: Alternate years. Prerequisites: COMP2630, COMP2750 Corequisites: COMP3430L

COMP3430L Operating Systems I Laboratory (1)

A required laboratory associated with COMP3430. Offered: Alternate years. Corequisites: COMP3430

COMP3440 Operating Systems II (3)

A continuation of COMP3430 Operating Systems I. Offered: Alternate years. Prerequisites: COMP3430

COMP3530 Computer Graphics (3)

An overview of the hardware, software, and techniques used in computer graphics. Topics include 2-D and 3-D transformations, clipping, windowing, display files, surface plots, and fractals. Offered: Alternate years. Prerequisites: COMP2630 Corequisites: COMP3530L

COMP3530L Computer Graphics Laboratory (1)

A required laboratory associated with COMP3530. Offered: Alternate years. Corequisites: COMP3530

COMP3630 Networks and Data Communications I (3)

A study of digital data communication in computer networks. The problems, rationales, and possible solutions for various communication protocols will be discussed as well as OSI model and various network protocols. Offered: Alternate years. Prerequisites: COMP2630, COMP2750

COMP3640 Networks and Data Communications II (3)

A continuation of COMP3630 Networks and Data Communications I. Offered: Alternate years. Prerequisites: COMP3630

COMP3750 Algorithm Analysis (3)

A medium level algorithmic class to introduce various categories of algorithms, formal specification and verification, and algorithmic schemas for specific problems. The algorithm topics include divide and conquer, backtracking, dynamic programming, string processing, graph algorithms, geometric algorithms, fast arithmetic algorithms, genetic programming, and NP completeness and approximation. Offered: Alternate years. Prerequisites: COMP2750

COMP3970 Introduction to Senior Project (1)

Presentation of possible topics for the senior software development or research project. Discussion of the style of the written paper and oral presentation. Methods of collecting background information and data will be presented. Attendance at senior seminar presentations is required. Prerequisites: Junior classification, Computer Science major.

COMP4330 Machine Learning and Data Mining (3)

An introduction to basic artificial intelligence concepts that are widely used in modern computer systems using bioinformatics as examples. These concepts include learning theory, supervised and unsupervised learning, machine learning applications, association rules, clustering, classification and data mining applications. Offered: Alternate years. Prerequisites: COMP2750

COMP4430 Compilers (3)

A formal treatment of programming language translation and compiler concepts. Emphasis is on parsing algorithm, translation specifications and development of machine-independent code. Offered: Alternate years. Prerequisites: COMP2630, COMP2750

COMP4680 Software Development Project (4)

An application of the computer programming and system development concepts, principles, and practices to a comprehensive systems development project. The student may work individually or as a part of a team in the development of a significant software project. Prerequisites: COMP3970, Senior classification

COMP4970 Research (1-3)

Involves the participation of the student with a faculty member in an individual investigative project. May be repeated for up to 4 credits. Prerequisites: Instructor's approval

COMP4980 Senior Seminar/Capstone (1)

Required of and limited to senior students. The seminar involves the written and oral presentation of the research project completed in COMP4680 or 4970. Prerequisites: COMP4680 or COMP4970. Must be taken at NNU.