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
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