Computer Science

Computer Science Department

Computers touch almost all aspects of our daily lives. They are the basis of many of the endeavors in our society today and continue to advance various areas as well as opening new fields. These endeavors include the entertainment industry, engineering, government, medicine, business, manufacturing, science, space exploration and communication.

All of these fields would not be able to develop and advance their respective areas without the use of computers and the methods of Computer Science. It spans from its theoretical and algorithmic foundations to cutting-edge developments in software engineering, networking, and other exciting areas. Its comprehensive foundation allows graduates to adapt to new technologies and new ideas.

The mission of the Department of Computer Science is to achieve national prominence by providing outstanding education to our undergraduate students for their productive careers in industry, academia, and government. We strive for excellence in teaching and service, covering the fundamental as well as applied aspects of computer science. We help our students develop the skills to solve the technological problems of modern society through collaborative and multidisciplinary activities.

The Department of Computer Science believes that computer science is a rapidly evolving discipline directly or indirectly affecting many other disciplines such as science and engineering, education, business, etc. It is so important that we contribute to computer science in a way that our faculty and students can devote themselves to take the maximal advantage of modern computer science to solve a wide range of scientific, technological and social problems. The department continues promoting innovative education programs in the core computer science as well as multidisciplinary application areas. Our focus areas include Software Engineering and Computer Networking.

Degree Requirements

For a B.S. degree in Computer Science, students must complete 120 semester credit hours: 36
credits of general education, 51 credits of computer science core, 18 credits of concentration and
15 credits of unrestricted elective courses.

  • COMP 1314 Computer Literacy and Applications
  • COMP 1411 Introduction to CS I
  • COMP 1412 Introduction to CS II
  • COMP 2313 Data Structures
  • COMP 2415 Systems Programming
  • COMP 2316 Computer Organization
  • COMP 3317 Algorithms
  • COMP 3318 Operating Systems
  • COMP 3320 Programming Languages
  • COMP 3321 Database Systems
  • COMP 3322 Software Engineering
  • COMP 3324 Computer Networks
  • MATH 1313 Pre-Calculus
  • MATH 1312 Statistics
  • MATH 2314 Calculus I
  • MATH 2317 Discrete Mathematics

 

Each student has an opportunity to specialize in an area of concentration. The additional coursework required for each concentration area is outlined as follows:

  • COMP 3326 Web Application Development
  • COMP 4339 Software Analysis and Design
  • COMP 4342 Advanced Web Application Development
  • COMP 4353 Data Mining
  • COMP 4356 Software Project Management
  • COMP 4393 Senior Design Project
  • COMP 3325 Computer & Network Security
  • COMP 4331 Cloud Computing
  • COMP 4351 Network Administration
  • COMP 4352 Internetworking Technology
  • COMP 4358 Wireless Networking
  • COMP 4393 Senior Design Project
  • COMP 4398 Internship
  • COMP 4399 Special Topics

Minor Requirements

Minor in Computer Science can be earned in conjunction with any major in the North American University. A total of 18 credit hours is required. The following courses are required:

  • COMP 1411 Introduction to CS I
  • COMP 1412 Introduction to CS II
  • COMP 2313 Data Structures

And 9 additional credit hours in COMP at the 3000 level or above.

Student Clubs

The Computer Science Department’s Association for Computing Machinery Club (ACM)  is a student organization that is dedicated to providing NAU students with supplementary computer science knowledge and expand their professional/personal networks. While the club is focused towards serving students in the computer science field, all students interested in computing are welcome to join.

For a complete list of computer science clubs please contact the Student Life Coordinator at studentlife@na.edu

ACM (Association for Computing Machinery), is the world’s largest educational and scientific computing society, it delivers resources that advance computing as a science and a profession. ACM Organization was established in 1947. NAU ACM is North American University ACM student chapter which is a non-profit organization, and managed by NAU Computer Science students. NAU ACM supports and encourages students to attend competitions, apply for internships, do extra projects.

The WebDev Club is a student-run, tutorial-style club dedicated to teaching interested students leading-edge web technologies, fundamental to advanced. No prior experience with web development is required to join the club, and you do not have to be a CS major. Club will include a 3D Gaming sessions. Ultimately, the club intends to make each member a full stack developer.

The goal of the Mobile Development Club is intend to help our students gain mobile programming experience for iOS and Android based devices. No previous programming experience is required.

The club will help to start any application projects and the ability to upload to any appstore.

The robotics club is a place where students will make robots together and discuss about them. These robots may be quite simple or quite complex. They can be manually or autonomously operated.The club provides workspace, tools, intellectually stimulating conditions and people to help you out if you have any problems.

No previous experience is required.

Course Descriptions

MATH 1312 Statistics Cr. 3. (3-0). This course covers data collection, frequency distributions, probability and probability distributions, sampling and sampling distributions, hypothesis testing with applications in various fields, regression and correlation analysis.
Prerequisite: MATH 1311

MATH 1313 Pre-Calculus Cr. 3. (3-0). With this course, students will be prepared for Calculus I. Topics included are functions and models including powers, exponentials, logarithms, rational functions, analytical geometry, and a detailed study on trigonometric functions, an introduction to matrix operations, determinants, two dimensional vector analysis, and an introduction to series and limits that are necessary.
Prerequisites: MATH 1311

MATH 2314 Calculus I Cr. 3. (3-0). This course teaches Calculus of rational functions: limits, derivatives, applications of the derivative, indefinite integrals, definite integrals, mean value theorem, fundamental theorem of calculus, applications, and problem solving.
Prerequisite: MATH 1313

MATH 2317 Discrete Mathematics Cr. 3. (3-0). This course introduces basic concepts of mathematics and mathematical reasoning and provides an introduction to discrete concepts such as finite sets and structures, and their properties and applications. Topics include, but are not restricted to principals of counting, combinatorics, logic, sets, relations, functions, induction and other methods of proof, recursion, and graph theory.
Prerequisite: MATH 1311

COMP 1314 Computer Literacy and Applications Cr. 3. (3-0). This course examines the role of computers in today‟s society, including the knowledge and ability to efficiently utilize computers, related technology and basic application software with an emphasis on basic operating system knowledge, office applications, and the use of the Internet. Applications include word processing, spreadsheets and presentation software. Prerequisite: None

COMP 1411 Introduction to CS I Cr. 4. (3-2). This course introduces fundamental concepts of structured procedural programming, data types, control structures, algorithm development; program design and implementation using C programming language; and software development tools. It includes a lab component. Prerequisite: None

COMP 1412 Introduction to CS II Cr. 4. (3-2). This course reviews structured programming and data types. It then introduces the object-oriented programming paradigm using JAVA programming language, focusing on the definition and use of classes, along with the fundamentals of object-oriented design. It includes a lab component. Prerequisite: COMP 1411

COMP 2313 Data Structures Cr. 3. (3-0). This course introduces the fundamental concepts of data structures and algorithms. Topics include fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), sorting, searching, and recursion. Prerequisite: COMP 1412

COMP 2415 Systems Programming Cr. 4. (3-2). This course examines interaction with a multi-user, multi-tasking operating system (e.g. Unix, Linux) via system programs. Topics include the details of the file system and I/O, multi-tasking, inter-process communication, process control and shell scripting. It includes a lab component. Prerequisite: COMP 1411

COMP 2316 Computer Organization Cr. 3. (3-0). This course covers basic computer organization including the CPU, memory and peripherals; digital representation of data and instructions; and assembly language programming, assembler, loader, macros, subroutines, and program linkages. Prerequisite: COMP 1411

COMP 3317 Algorithms Cr. 3. (3-0). This course focuses on the design and analysis of algorithm; heuristics; advanced tree structures; advanced hashing techniques; advanced sorting and searching; graphs and sets; NP-Completeness; and time and space complexities. Prerequisite: COMP 2313, MATH 1312, and MATH 2317

COMP 3318 Operating Systems Cr. 3. (3-0). Cr. 3. (3-0). This course focuses on operating system structure and design techniques; process management, CPU and disk scheduling; process synchronization, concurrency, and memory and 116 file management, device management, virtual memory; mass storage and I/O systems; and OS security. Prerequisite: COMP 1314, COMP 2316

COMP 3320 Programming Languages Cr. 3. (3-0). This course covers the principles of programming language design; specification of syntax and semantics; and programming styles and their underlying paradigms, including imperative, functional, logic and object-oriented programming styles. Prerequisite: COMP 2313

COMP 3321 Database Systems Cr. 3. (3-0). This course teaches the fundamentals of database systems, including relational and other data models, database design, data description and query languages, file organization, index structures, database integrity and security, access control, interfacing with database systems, transaction programming, and design and implementation of database applications. Prerequisite: None COMP

3322 Software Engineering Cr. 3. (3-0). This course introduces basics concepts of software engineering, including software requirement analysis, design representation, programming methodologies, verification, validation, maintenance and software planning. Prerequisite: COMP 1412

COMP 3324 Computer Networks Cr. 3. (3-0). This course introduces the fundamental concepts and principles of modern computer networks with an emphasis on protocols, architectures, and implementation issues of application, transport, network, data link and physical layers. Prerequisite: None

COMP 3326 Web Application Development Cr. 3. (3-0). COMP 3326 Web Application Development
Cr. 3. (3-0). This course covers the fundamentals of Web Application development: markup languages, layout design, client and server side programming using HTML, XHTML, XML, 117 Ajax, JavaScript, DHTML; database and Web integration. Prerequisite: COMP 1412 and COMP 3322

COMP 4339 Software Analysis and Design Cr. 3. (3-0). This course introduces established and evolving methodologies for the analysis, design, and development of an information system. Emphasis is placed on system characteristics, managing projects, prototyping, CASE/OOM tools, and systems development life cycle phases.
Upon completion, students should be able to analyze a problem and design an appropriate solution using a combination of tools and techniques. Prerequisite: COMP 3322

COMP 4342 Advanced Web Application Development Cr. 3. (3-0). This course emphasizes server-side development of enterprise applications. Topics include web servers, distributed network-based computing, handling client requests, server-side services, transmitting data using HTTP, database connectivity, security, and e-commerce. Programming languages and tools will be among the most significant such as Java, servlets, JavaServer Pages, Active Server Pages, .NET, XML, among others. Prerequisite: COMP 3326

COMP 4353 Data Mining Cr. 3. (3-0). This course introduces fundamental topics of data mining and knowledge discovery, including statistical foundations, database support, data preprocessing, data warehousing, association discovery, classification, clustering, and mining complex data types. Prerequisite: COMP 3321

COMP 4356 Software Project Management Cr. 3. (3-0). Focuses on first-line management of software system development. Covers major themes including estimation (software cost factors, estimation models, and risk management), planning (work breakdown, scheduling, staffing, resource allocation, and creation of a project plan), and execution (team building, leadership, motivation, process tracking, control recovery, and communication within and outside the project). Prerequisite: COMP 3322

COMP 4393 Senior Design Project Cr. 3. (3-0). This is a capstone course intended to facilitate the integration and application of knowledge and skills gained in various courses within the computer science curriculum. The project involves teamwork; modeling of real world problems; design, development and testing of
a software-based solution; and its documentation. Prerequisite: Consent of the Instructor, MATH 2314

COMP 3325 Computer & Network Security Cr. 3. (3-0). This course teaches the fundamentals of computer and network security, including cryptography, authentication, and authorization; attack types, detection and defense techniques at the OS and network level; security in modern operating systems and virtual machines. Prerequisite: COMP 3324

COMP 4331 Cloud Computing Cr. 3. (3-0). This course is a tour through various topics and technologies related to Cloud Computing. Topics include distributed system models and enabling technologies, computer clusters for scalable Computing, virtual machines and virtualization of clusters and datacenters, design of cloud computing platforms, cloud programming and software environments, grid computing and resource management, P2P computing with overlay networks, ubiquitous computing with clouds and the Internet of things, and data-intensive distributed computing. Prerequisite: COMP 3324

COMP 4351 Network Administration Cr. 3. (3-0). This course focuses on the administration of networked operating systems such as Windows Server and Linux. It includes, monitoring, managing and troubleshooting of network resources such as files, folder access, printing devices, device drivers, backup devices, recovery
as well as protocols and system services. Prerequisite: COMP 3324

COMP 4352 Internetworking Technology Cr. 3. (3-0). This course provides students how to plan and design a network using various internetworking technologies to meet performance, security, capacity, and scalability requirements. This includes the fundamental, technical, and design issues associated with campus LANs. Prerequisite: COMP 3324

COMP 4358 Wireless Networking Cr. 3. (3-0). This course will examine the area of wireless networking, looking at the unique network protocol challenges and opportunities presented by wireless communication and host or router mobility. Although it will touch on some of the important physical layer properties of wireless communications, focus will be on network protocols above the physical layer, with an emphasis on the media access control, network, and transport protocol layers. Prerequisite: COMP 3324

COMP 4393 Senior Design Project Cr. 3. (3-0). This is a capstone course intended to facilitate the integration and application of knowledge and skills gained in various courses within the computer science curriculum. The project involves teamwork; modeling of real world problems; design, development and testing of
a software-based solution; and its documentation. Prerequisite: Consent of the Instructor, MATH 2314

COMP 4398 Independent Study/Internship Cr. 3 This course is designed to supplement coursework in Computer Science. It helps students apply their knowledge into real-world problems in professional settings. Students recognize the need for continuous learning and experience the challenges of workplace environment. Prerequisite: None

COMP 4399 Special Topics Cr. 3. (3-0). Special topics courses with different titles offered occasionally to cover emerging issues or specialized, in depth content not available in the core curriculum. A specific title may be used for each course, which will appear on the student’s transcript. Several different topics may be taught in one year or semester. May be repeated for credit for total of 6 credits. Prerequisite: Advanced standing and consent of instructor or department chair.