CS

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.

Degree Requirements

For a B.S. degree in Computer Science, students must complete 120 semester credit hours: 36 credits of general education, 54 credits of core courses, and 30 credits of electives 12 of which must be departmental concentration courses.

The Computer Science program focuses on two areas of specialization, including software engineering and computer networking.

  • MATH 1313 Pre-Calculus

Core Courses (54 Credits)

  • 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
  • COMP 3325 Computer & Network Security
  • COMP 3326 Web Application Development
  • COMP 4393 Senior Design Project
  • 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 4319 Object Oriented Software Development
  • COMP 4323 Software Design
  • COMP 4353 Data Mining
  • COMP 4356 Software Project Management
  • COMP 4331 Cloud Computing
  • COMP 4351 Network Administration
  • COMP 4352 Internetworking Technology
  • COMP 4358 Wireless Networking
  • 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.

The following courses are required:

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

And three 3000 or upper level COMP courses.

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.

Student Clubs

We are proud to have worked for the past 2 years and still with the most popular club, ACM. Starting Fall 2014, we will have another 3 new Computer Clubs : Web Development & 3D Gaming, Mobile Application Development and Robotics Clubs .

Clubs are not only restricted for computer science students only, other departments students are welcome to join any of those clubs.

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.

Advisor: Dr. Kemal Ayden

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.

Advisor: Mr. Ihsan said

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.
Advisor: Dr. Ahmet Sonmez

Course Descriptions

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

COMP 3318 Operating Systems 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 file management, device management, virtual memory; mass storage and I/O systems; and OS security. Prerequisite: 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 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, Ajax, JavaScript, DHTML; database and Web integration. Prerequisite: COMP 1412

COMP 4319 Object Oriented Software Development Cr. 3. (3-0). This course introduces an object-oriented paradigm including encapsulation, inheritance, abstraction and polymorphism, as well as the implementation of these concepts using an object-oriented programming language. Prerequisite: COMP 1412

COMP 4323 Software Design Cr. 3. (3-0). Introduces techniques and notations with formal (mathematical) underpinnings for specifying the structural and behavioral properties of software systems. Covers these systems at various levels of abstraction, from architecture to subsystem decompositions to module/class dependencies and interfaces. Students analyze, synthesize, and express software designs using a variety of special-purpose design notations, and obtain practical experience with a team project. Topics include software architecture, architectural styles, module interconnection languages, modularity and information hiding principles, object-oriented design patterns (structural and behavioral), Petri nets, state charts, state transition diagrams, and Z notation. Prerequisite: COMP 3322

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 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 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 administration of networked operating system 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 3318

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 2317

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.