Computer Science (CSIS) Courses

CSIS1000 Problem Solving and Programming Concepts

This introductory course teaches students the fundamentals of problem-solving in computer programming and basic automation. Students learn to use both textual and graphic algorithms as problem-solving tools. In experience-based learning exercises, students work from a problem statement, conduct a task analysis to solve the problem, decide what data is needed to solve the problem, create a visual representation of their solution, and then convert the visual representation to a textual step-by-step statement of their solution. Students also engage in batch scripting using a command-line interpreter to help solve problems using an automated process. Students use various tools currently used in industry, including functional decomposition diagrams, flowcharts, UML diagrams, use cases, metadata charts, data flow documents and pseudocode.
Offered at Charlotte, Online, Providence
3 Semester Credits

CSIS1101 Computer Science I

This course teaches students to think algorithmically and solve problems efficiently. This course is designed to present an introduction to computer science doctrine; an understanding of core algorithmic concepts (e.g., control structures, assignment, decision structures, mathematical/Boolean operations, etc.); an introduction to structured computer programming languages, problem classification, program development and specification; software development planning techniques; debugging techniques; an introduction to the power of development environments; and documentation of software projects. Students conduct a task analysis to solve the problem, identify relevant data, produce visual and textual step-by-step solutions, and design algorithms to solve problems and learn how to translate these algorithms into working computer programs. Experience is acquired through programming projects in a high-level programming language as well as industry standard documentation techniques, such as flowcharts, UML diagrams, use cases, data flow documents, and pseudocode.
Offered at Charlotte, Online, Providence
3 Semester Credits

CSIS1112 Computer Science II

This course further enhances students' understanding of computer science theory and methods and provides an introduction to the study of important algorithms. Main themes include designing with appropriate data structures (Advanced Data Types — ADTs) and classic algorithms, and analyzing the efficiency of the algorithms developed. Classic algorithms studied include those used for recursion, sorting, searching, graph algorithms and maintaining dynamic data structures. ADTs are presented from a generic/usage-oriented perspective.
Prerequisite(s): CSIS1101 or ENGN2009.
Offered at Charlotte, Online, Providence
3 Semester Credits

CSIS2018 Advanced Data Structures

This is an essential course in the adaptation of ADTs for use in solving complex or computationally expensive problems efficiently. This course provides students with the implementation level details of various ADTs as they are applied to solving a wide array of problems. The course provides advanced programming techniques for implementing ADTs such as recursion. Students also gain an appreciation of the trade-offs between competing ADT solutions as they pertain to problem solving.
Prerequisite(s): CSIS1112.
Offered at Online, Providence
3 Semester Credits

CSIS2023 Survey of Programming Languages

This course examines the evolution of programming languages and the nature of various types of computer languages, concentrating on their suitability, efficiency, and effectiveness as they pertain to particular problem domains. General concepts common to all programming languages are discussed to facilitate learning new languages. Language paradigms (i.e., logic, functional, procedural, object-oriented) are compared and implementation strategies are discussed.
Prerequisite(s): CSIS2018, ENGN2014 or CYB2010.
Offered at Online, Providence
3 Semester Credits

CSIS2030 Database Concepts

This course introduces students to the function of a database environment. The importance of databases to modern systems development provides the motivation for examining data structures and models as they relate to user needs. Relational data models are emphasized along with query languages and user-friendly packages. The various data structures and file storage techniques used with hierarchical, network and relational data management issues are developed. Out-of-class assignments are completed by all students.
Prerequisite(s): CSIS1000 or CSIS1101 or FIT1040.
Offered at Charlotte, Online, Providence
3 Semester Credits

CSIS2045 Introduction to Operating Systems

This course includes a survey of the functional characteristics of complex operating systems and an introduction to the basic techniques of operating systems design. The course discusses the topics of hardware configuration, channel operation, interrupts, register functions, multiprogramming, multiprocessing, timesharing and JCL.
Prerequisite(s): CSIS1020 or CSIS1040 or CSIS1101.
Offered at Charlotte, Online, Providence
3 Semester Credits

CSIS2050 Advanced Programming Concepts

This course is designed to provide the student with an advanced understanding of the relationship between hardware and software through the use of higher level language (C programming language) facilities. Students learn how to create programs that interface with computer peripherals. Program design, coding, debugging, testing, execution and documentation are reinforced.
Prerequisite(s): CSIS1020 or CSIS1101.
Offered at Providence
3 Semester Credits

CSIS2075 Interface Design for Mobile Devices

This course addresses the unique features and limitations of small, mobile computing devices such as smartphones and tablets. These devices are different from the traditional computing platforms in that they typically do not have mechanical keyboards or pointing devices, but use touch screens as the primary interface. The use of the screen as both the input and output device, the small size of the device, and the added features such as telephony, global positioning, accelerometer and camera provide both challenges and opportunities for the application developer. This course prepares students for application development for mobile computing devices.
Prerequisite(s): Sophomore status.
Offered at Online, Providence
3 Semester Credits

CSIS2080 Database Design

This course provides a foundation for the systems-development effort of using fourth and fifth generation tools in database environments by systematically examining the procedures and tools used in designing a database. This course emphasizes the relational model. Students study normal forms, decomposition, synthesis, semantic modeling, network and hierarchical models. All students complete out-of-class assignments.
Prerequisite(s): CSIS2030.
Offered at Charlotte, Online, Providence
3 Semester Credits

CSIS3106 Software Verification, Validation, Testing and Security

This course covers methods for evaluating software for correctness and reliability, including code inspections, program proofs and testing methodologies. Students learn formal and informal proofs of correctness, code inspections and their role in software verification, unit and system testing techniques, testing tools and limitations of testing. Statistical testing and reliability models address the testing of large scale systems. Students learn techniques for developing secure code, including: software data flow analysis, secure access, using cryptography, eliminating data residue and the need for content checking.
Prerequisite(s): CSIS2045, ITEC2085.
Offered at Providence
3 Semester Credits

CSIS3126 Design Project I

This course is designed to allow for mid-program evaluation of the software development skills and abilities of students. Under the direction of faculty, students develop a solution to a complex problem (agreed upon with faculty) that is completed strictly within one semester. Students utilize all of the skills learned thus far in the program to complete the task required.
Prerequisite(s): CSIS2023, ENGN2014 or CYB2010.
Offered at Online, Providence
3 Semester Credits

CSIS4010 Software Engineering

This course covers development life cycle choices, software code management, software project cost analysis, tools for developing software, productizing software, documenting software products, development effort estimating, software development team dynamics, and emerging trends in the software engineering field.
Prerequisite(s): CSIS3106, PRMG2010.
Offered at Providence
3 Semester Credits