Computer and Information Science (CSIS) Courses

CSIS 201 Introduction to Computer Science I
3 hours. A foundational course for the study of computer science and information systems, it covers an overview of programming methodology and gives the student an ability to write computer programs using standard style and structure. Programming projects are completed in one or more high-level languages. Additional course fee required.
Prerequisite: high school algebra or equivalent.

CSIS 202 Introduction to Computer Science II
3 hours. A foundational course for the study of computer science and information systems, it covers an overview of programming methodology and gives the student an ability to write computer programs using standard style and structure. Programming projects are completed in one or more high-level languages. Additional course fee required.
Prerequisites: CSIS 201 Introduction to Computer Science I or ENGR 152 Engineering Principles II.

CSIS 275 Field Experience
1-3 hours. Supervised experience with an off-campus industry, business or institution, using computer science or data processing.
Prerequisite: upper-division computer information science majors.

CSIS 285 Selected Topics
1-10 hours. A scheduled class with topics chosen to meet the special needs and interests of students, faculty or visiting professors.
Prerequisite: upper-division computer information science majors.

CSIS 300 Numerical Methods
3 hours. Course is a study of numerical solutions of mathematical problems, including nonlinear equations, systems of linear equations, polynomial approximations, root finding, integration and differential equations. Computer programs are written to solve these problems. (Identical to MATH 300.)
Prerequisites: MATH 202 Calculus II and either CSIS 201 Introduction to Computer Science I or ENGR 152 Engineering Principles II.

CSIS 304 Web-Based Programming
3 hours. A computer programming course using web-based technologies, the emphasis of the course is placed on fundamental concepts of computer programming and application development through the creation of interactive Web applications. The course is designed for students who want to design and implement web-based applications. Additional course fee required.

CSIS 310 Data Structures
3 hours. This is an introduction to the concepts of information organization and methods of representing information both internally and externally. The course begins with basic structures (stacks, queues, linked lists, and trees) and moves through more complex data structures into the processing of files (sequential, relative, indexed sequential and others). Programming projects are completed in one or more high-level languages.
Prerequisites: CSIS 201 Introduction to Computer Science I and CSIS 202 Introduction to Computer Science II.

CSIS 314 Client-Server Systems
3 hours. This course provides an introduction to constructing complete information systems based on the client-server model. On the client side, we introduce graphical user-interfaces, their design and implementation, as well as commonly used tools such as database access clients and report generators. On the server side, we introduce database management systems and the use of server-side programming tools that provide connectivity for clients and access to database systems. Along the way, students are introduced to the basics of distributed computing and computer networks.
Prerequisite: CSIS 202 Introduction to Computer Science II and CSIS 214 Web-Based Programming.

CSIS 321 Software Engineering
3 hours. This serves as an introduction to the strategies used in producing quality software. The life cycle of software development is presented and utilized. Larger projects are undertaken by teams of students in the initial phases.
Prerequisite: CSIS 202 Introduction to Computer Science II.

CSIS 330 Human-Computer Interactions (HCl)
3 hours. Course is an introduction to the principles and methods with which one builds effective interfaces for users. A basic precept of HCI is that users should be able to focus on solving problems, rather than dealing with the intricacies of complex software. Interfaces must be accessible, meaningful, visually consistent, comprehensive, accurate, and oriented around the tasks that users tend to perform. The course will provide a balance of practical and theoretical knowledge, giving students experience ordinarily not provided by other courses in computer science. Students will also participate in group-projects to design, implement, and evaluate user interfaces. Additional course fee required.
Prerequisites: CSIS 201 Introducation to Computer Science I.

CSIS 340 Database Systems
3 hours. A study of the organization of database systems for information storage, retrieval and security. Examples of hierarchic, network and relational-based systems are presented.
Prerequisite: CSIS 310 Data Structures.

CSIS 350 Data Communications and Networks
3 hours. This is an introduction to the field of communications among computers and computer systems, with an emphasis placed on LANS (Local Area Network Systems) and the OSI model. Students will experience the installation of one or more network systems.
Prerequisite: CSIS 202 Introduction to Computer Science II.

CSIS 360 Computer Architecture and Assembly Language
3 hours. Serve as an introduction to digital computer hardware architecture and organization. Topics include digital logic, processor design, instruction sets and system architecture. Programs written in assembly language will be used to gain hands-on experience with the underlying system architecture.
Prerequisite: CSIS 310 Data Structures.

CSIS 370 Object-Oriented Analysis & Design
3 hours. This course covers the fundamental concepts of object-oriented programming languages, including data abstraction and typing, class inheritance and generic types, prototypes and delegation, concurrency control and distribution, object-oriented databases, and implementation. Object-oriented solutions will be developed in one or more high-level languages.
Prerequisite: CSIS 310 Data Structures.

CSIS 380 Secure Software
3 hours. Many security problems in software occur when software developers make poor implementation decisions or unwittingly introduce bugs into their code. This course will focus on many of the classic flaws in systems that can lead to security problems including: buffer overflows, format string problems, race conditions, memory leaks, etc. It will also cover many web-application specific topics such as SQL injection attacks and cross-site scripting (XSS) attacks.
Prerequisite: CSIS 321 Software Engineering.

CSIS 390 Cellular & Mobile Technologies
3 hours. As more communications are conducted via mobile and cellular technologies, these technologies have become critical to both industry and private life. This course covers how data is processed and transmitted using mobile and wireless devices. Topics include but are not limited to: an overview of smart phone technologies, embedded operating systems, wireless and mobile specific protocols, mobile identifiers, location based services and more.
Prerequisite: CSIS 350 Data Communications and Networks and CSIS 460 Operating Systems.

CSIS 399 Cross-Cultural Study
3 hours. This course offers in-depth discipline-specific cross-cultural study designed to enhance the intercultural emphasis of various academic majors. The course includes class meetings followed by travel to various locations throughout the world. Students will use core disciplinary knowledge to serve, learn and interact with other cultures. (Offered in May Term. Students must meet eligibility requirements.) Additional course fee is required.

CSIS 412 Computer Security and Digital Forensics
3 hours. In a highly connected, data-intensive and cost-focused business enrvironment, the practice of information security is not a business advantage; it is a customer requirement. Viruses, malware, trojans, denial of service attacks, phising, and even Wiki leaks have become headline news. Failure to ensure the confidentiality, integrity and availability of data costs companies millions, if not billions, of dollars in legal settlements, lost business and trade secrets. In this breadth-based course, you will get an overview of information security principles and practices, including models, risk management, access controls, intrusion detection and prevention, cryptography, software vulnerabilities and ethical issues. This class will also provide an overview of digital forensics. Students will learn techniques behind digital forensic investigations and evidence collection and will cover the fundamental steps of the traditional computer forensic methodology. Topcis will include building forensic workstations, collecting evidence, extracting artifacts, identifying unknown files and reassembling evidence from network packet captures and device images Additional course fee required.

CSIS 413 Advanced Security
3 hours. This course would cover a number of advanced topics such as cellular and mobile technologies and their security, system vulnerabilities and penetration testing of corporate networks/systems, risk management of information systems, and other current topics. Students will also be introduced to both international and U.S. cyber laws including reporting compliance.
Prerequisite: CSIS 412 Computer Security and Digital Forensics.

CSIS 420 Structures of Programming Languages
3 hours. A study of the basic design of computer programming languages, with the greater emphasis placed on semantics (over syntax). A comparative analysis is made among several of the common languages.
Prerequisite: CSIS 310 Data Structures.

CSIS 430 Analysis of Algorithms
3 hours. An introduction to the design and analysis of algorithms. The course covers the fundamentals of analyzing algorithms for correctness and time and space bounds. Topics include advanced sorting and searching methods, graph algorithms, geometric algorithms, matrix manipulations, string and pattern matching, set algorithms, and polynomial computations.
Prerequisite: CSIS 310 Data Structures.

CSIS 434 Parallel & Distributed Computing
3 hours. A theoretical and practical survey of parallel processing, including a discussion of parallel architectures, parallel programming languages, and parallel algorithms. Students will program one or more parallel computers in a higher-level parallel language. Additional course fee required.
Prerequisite: CSIS 310 Data Structures.

CSIS 440 Artificial Intelligence (AI)
3 hours. This course introduces the student to the basic concepts and techniques of artificial intelligence, knowledge representation, problem solving, and AI search techniques. AI solutions will be developed in an appropriate AI language.
Prerequisite: CSIS 310 Data Structures.

CSIS 450 Network Administration
3 hours. This course introduces the student to system administration of a LAN. Topics covered include adding and removing users; monitoring and controlling processes; adding, removing and managing groups; mounting and unmounting filesystems; monitoring and troubleshooting a TCP/IP network; managing and controlling network and system security; and administration of network file systems. Additional course fee required.
Prerequisite: CSIS 350 Data Communications and Networks.

CSIS 451 Cyber Defense
4 hours. This course introduces students to the concepts of defense in-depth, a security industry best practice. Topics include firewalls, backup systems, redundant systems, disaster recovery, and incident handling. Upon completion, students should be able to plan effective information security defenses, backup systems, and disaster recovery procedures. This course requires a lab component that provides practical experience working with current technologies for defense.
Prerequisite: CSIS 413 Advanced Security and CSIS 450 Network Administration.

CSIS 460 Operating Systems
3 hours. This is a study of the organization and architecture of computer systems. The major principles of operating systems are presented, along with case studies involving actual operating systems.
Prerequisite: CSIS 310 Data Structures.

CSIS 475 Field Experience
1-3 hours. Supervised experience with an off-campus industry, business or institution, using computer science or data processing.
Prerequisite: upper-division computer information science majors.

CSIS 480 Principles of Compiler Design
3 hours. This course introduces the student to the basics of building a compiler using a multiphase translation process. It covers lexical analysis, parsing, and translation to abstract syntax using modern parser generator technology. It discusses binding of identifiers and symbol table organization and a variety of intermediate representations that are suitable for backend analysis. Other topics include type checking, attribute grammar representations, and printing from abstract syntax.
Prerequisite: CSIS 310 Data Structures. (CSIS 420 Structures of Programming Languages preferred.)

CSIS 485 Selected Topics
1-10 hours. A scheduled class with topics chosen to meet the special needs and interests of students, faculty or visiting professors.
Prerequisite: upper-division computer information science majors.

CSIS 490 Applied Software Development
1-3 hours. Special software development projects are designed and completed by the student in an area that applies computers. This is an independent-study course and is supervised by staff in both the computer area as well as in the selected area of study.
Prerequisite: upper-division computer information science majors and by permission.

CSIS 495 Special Study
1-3 hours. Individual study in areas of special interest.
Prerequisite: upper-division computer information science majors and by permission.