2020-2021 Catalog

 

CIS-Computer-Information-Sciences

CIS-110 Introduction to Computing Concepts

A course designed to increase the student's understanding and use of personal computers. Intended for novice users, the course provides an introduction to hardware and software with special attention to the use of productivity tools such as spreadsheets, databases, and networks. An overview of major computer components is included. This course counts toward general education science credits (as a non-lab science course). This class does NOT meet the general education math/computer requirement, nor does it apply toward a computer major or minor. Credit is not given to any student who has previously completed six credits in CIS courses.

3

CIS-121 Introduction to Programming

This first course in writing computer programs provides a useful approach to problem solving which is applicable in many areas of life. An introductory programming language will be used to teach skills in algorithmic design of solutions to problems. Meets the general education math/computer requirements. A student may not earn credit in both CIS-121 and CIS-125. Prerequisite: Satisfactory completion of the mathematics preparatory requirement.

3

CIS-122 Introduction to Web Programming

A course designed to increase the student's understanding of computers and insure a hands-on lab environment for web page programming. This course is intended for the student who knows how to use software such as word processing and electronic spread sheets, but is interested in learning the web page creation process including contemporary web development tools such as HTML and JavaScript. The use of automated support tools will be minimized. The course also supplies an introduction to hardware, software and other major computer components. Meets the general education math/computer requirement. Prerequisite: Satisfactory completion of the mathematics preparatory requirement.

3

CIS-124 Introduction to Computational Thinking

This course provides an introduction to computational thinking and creative computer programming for students from any academic discipline. Students will design algorithms given a problem specification and implement an application that will respond to user interactions and/or external events. These applications will deal with non-trivial data and will require algorithms that utilize iteration and selection. Students will test the applications in a systematic way to evaluate how well an application solves the given problem. Meets the general education math/computer requirement. Prerequisites: Satisfactory completion of the mathematics preparatory requirement.

3

CIS-125 Introduction to Computer Sciences I

This course provides a backdrop of the computing science discipline. Classroom discussion format is used to provide an overview of computational thinking (including computational problem solving approaches), a history of the discipline, binary arithmetic, and a survey of the various subdisciplines of computing science. An overview of the computing curricula will be given. Students will gain experience developing computational solutions in a modern programming language. Meets the general education math/computer requirement. Prerequisite: Satisfactory completion of the mathematics preparatory requirement.

4

CIS-126 Introduction to Computer Sciences II

This course continues the introduction to computer science including structured programming. Special attention is given to the study of problem-solving processes in the context of algorithmic development. Programming topics include basic constructs, flow of control, function basics, parameter passing and iteration. Good algorithm design, style, program structure, documentation, code reading, and introductory software engineering techniques are emphasized. Meets the general education math/computer requirement. Prerequisite: CIS-125.

4

CIS-155 Introduction to Computer Fundamentals

This course provides a backdrop of computing science fundamentals. Classroom discussion format is used to provide an overview of computational thinking, a history of the discipline, binary arithmetic, and a survey of the various subdisciplines of computing science. An overview of the computing curricula will be given. Prerequisite: Satisfactory completion of the mathematics preparatory requirement.

3

CIS-156 Application Concepts

This course provides an introduction to high level computer science concepts and subdisciplines. In particular, the areas of applications, networking, and the limits of computation are introduced. Prerequisite: Satisfactory completiong of the mathematics preparatory requirement.

2

CIS-172 Object Oriented Programming

An introduction to object-oriented programming techniques, using a contemporary programming language. This course combines classroom instruction with weekly supervised laboratory work to cover topics such as object-oriented design, classes and methods, inheritance, polymorphism, templates, software reuse, and the event-driven programming. Prerequisite: CIS-121.

4

CIS-221 Data Structures

A study of data organization and processing in the context of abstract data types. This course cover pointers, lists, stacks, queues, trees, searching, sorting, and resource management. It is taught against the backdrop of a modern programming language. Prerequisite: CIS-172.

4

CIS-222 Object Oriented Programming

An introduction to object-oriented programming techniques, using a contemporary programming language. This course combines classroom instruction with weekly supervised laboratory work to cover topics such as object-oriented design, classes and methods, inheritance, polymorphism, templates, software reuse, and the event-driven programming. Prerequisite: CIS-126.

4

CIS-225 Systems Analysis

A study of the knowledge and skills needed for creating or modifying an information system. Central concepts include gathering details, analyzing the data, designing the system by creating solutions, and implementing and maintaining the system. Prerequisite: CIS-126.

3

CIS-296 Studies in Computer Information Systems

A course in topics of current interest in Computer Information Systems. Specific content varies term by term. Prerequisite: Permission of Division Chair.

1 to 3

CIS-320 Introduction to Software Engineering

This course provides an introduction to the process of developing large scale software systems. Included is the study of the procedures and tools of software engineering. Concepts introduced are software life-cycle models, quality factors, requirements analysis and specification, software design (functional design and object-oriented design), implementation and testing. Prerequisites or corequisite: CIS-221.

3

CIS-325 Analysis of Algorithms

This course provides an introduction to analyzing the time and space requirements of algorithms. Topics include the design techniques for efficient algorithms; induction, recursion, and divide-and-conquer; greedy algorithms; graph algorithms; network problems; and an introduction to intractable (NP-hard) problems. Prerequisite: CIS-221.

3

CIS-330 Software Testing: Verification And Validation

This course provides a study of the process of testing software systems, including the tools, methods, and current practices used in assessing the quality and correctness of software. Topics and issues covered include the roles of testing and formal verification, planning and documentation for quality assurance, methods of performing technical reviews, strategies of system testing and integration planning, and principles and practices used in conducting tests. Pre- or co-requisite: CIS-320.

3

CIS-336 Programming Languages

A course designed to analyze and evaluate the important concepts in current programming languages. Emphasis is placed on the functional constructs which define all languages. Students are expected to learn several languages and write programs which illustrate their distinguishing features. Prerequisites: CIS-221.

3

CIS-342 Computer Network Fundamentals

This course studies computer networks from the point of view of the Local Area Network and network interconnection. An overview of the TCP/IP layer models is presented with emphasis on packet transfer across networks. Common applications such as electronic mail, file sharing, web servers, Instant messaging and VIOP are considered. Real world protocols are covered and contemporary network operation systems are reviewed. The role of the network administrator is covered regarding network security, disaster prevention and recovery. Prerequisite: CIS-221.

3

CIS-344 Computer Network Security

This course covers penetration-testing tools and techniques that ethical hackers and security testers use to protect computer networks. This course provides a structured knowledge base for preparing security professionals to discover vulnerabilities and recommend solutions for tightening network security and protecting data from potential attackers. Prerequisite: CIS-342.

3

CIS-346 Computer Networks Data Communication

This course examines how the fundamentals of data communication operate in a distributed computing environment. It focuses on packet switched networks and virtual circuit networks, including a layered approach to network design and coverage of the TCP/IP model, and internetworking with router-based architecture, IP addressing, datagram encapsulation and fragmentation, transmission via UDP and TCP, and application level protocols such as Telnet, FTP, SMTP and others. Also, provides coverage of general topics and such as routing error handling, security and encryption. Prerequisite: CIS-342.

3

CIS-351 Internet Programming

An intermediate course in Internet Programming. Special emphasis will be given to learning current and emerging server side languages and technologies how they are utilized with other web conventions. Students should be familiar with basic web languages such as HTML and Javascript. Prerequisite: CIS-221 or CIS-222; Co-requisite: CIS-221 and CIS-222. One of these may be taken concurrently as long as the other is already completed.

3

CIS-361 Assembly Programming

An introduction to assembly language programming along with associated concepts of machine architecture and design. Topics include the organization of the CPU and peripheral equipment, addressing techniques, segmentation and linkage, macro assembly, assembler construction, interrupts, and timing. Prerquisites: CIS-221.

3

CIS-362 Compiler Programming

The course surveys the basic issues of compiler design, beginning with lexical and syntactic analysis and proceeding through code generation, optimization, and error handling. The central activity of the course will be a large programming project. Prerequisites: CIS-221

3

CIS-363 Concurrent Programming

Topics in the theory of concurrent programming. Models of concurrency. Programming logics. Emphasis on the formal specification and verification of concurrent programs. Prerequisite: CIS-221.

3

CIS-373 Numerical Analysis

A study of the operation, efficiency, and accuracy of numerical algorithmic processes. Topics include rates of convergence, analysis of error, solution of equations, interpolation, numerical integration and differentiation, solution of linear systems, and approximation/curve-fitting. Prerequisites: MAT-254, MAT-280 and CIS-121.

3

CIS-382 Database Programming Development

This is a course in Relational Database design and development. Topics include data modeling, database design and Structured Query Language. Current and emerging topics in database systems are also covered. Prerequisites: CIS-221.

3

CIS-385 Theory of Computation

This course provides an introduction to the classical and contemporary theory of computation. Topics include theory of automata and formal language, computing by Turing machines, Church's thesis, and decision problems. Nondeterminism and NP-hard problems will be considered. Prerequisites: CIS-336 and MAT-254.

3

CIS-390 Distributed Systems

This course examines how distributed computing systems operate over computer networks. It introduces fundamentals of data communication, including an overview of the use of physical media to transfer bits, time division and frequency division multiplexing, encoding, modulation, bandwidth, throughput, and noise. It focuses on packet switched networks and virtual circuit networks, including a layered approach to network design and coverage of both and OSI and TCP/IP models, and internetworking with router-based architecture, IP addressing, datagram encapsulation and fragmentation, transmission via UDP and TCP, and application level protocols such as Telnet, FTP, SMTP and others. Also, provides coverage of general topics and such as routing error handling, security and encryption. Prerequisites: CIS-221 or CIS-222 and CIS-236.

3

CIS-396 Advanced Studies in Computer Information Systems

A course in advanced topics of current interest in Computer Information Systems. Specific content varies term by term. Prerequisite: Permission of Division Chair.

1 to 3

CIS-421 Advanced Software Engineering

A continuation of the study introduced by CIS-320. The student will consider why application of engineering principles to the development of large software systems effects higher quality software development. Current practices regarding software requirements methodologies and system design, documentation standards, software project management, verification and validation techniques will form the basis of the course, to be demonstrated by a class team project in designing a system. Possible additional coverage of software security considerations, software quality assurance documentation and computer human interfaces may be included. Prerequisite: CIS-320.

3

CIS-425 Operating Systems

This course provides an introduction to computer operating systems and analysis of operating system architectures. Included are consideration of the topics of processes, inter-process communication and synchronization; CPU job scheduling, memory and input/output device management; file system management; virtual memory; and mutual exclusion and deadlocks. Prerequisites: CIS-221.

3

CIS-430 Requirements Engineering and Specifications

This course is a study of the requirements phase within the development of large scale software systems. Topics covered include: requirements elicitation, prototyping, and requirements inspections. Specifying software behavior for state-oriented, function-oriented, and object-oriented models, as well as non-behavioral requirements; and refinement of requirements into preliminary design. Prerequisite: CIS-320.

3

CIS-435 Software Process and Quality Assurance

This is a course focusing on the process of software development. Coverage includes software metrics, predicting reliability, version control and configuration management. Software design concepts such as reusable components, change during development in response to new requirements, software maintenance and reverse engineering will also be addressed. Prerequisite: CIS-320.

3

CIS-440 Advanced Internet Concepts

This is a culminating course for the Internet Development track. Topics explored will depend on current development and research interests of the students. The students will deeply explore one or two major trends on the Internet and share that information with the rest of the class. Cutting edge developments will be studied. Ethics, Internet security and strategies for staying current will also be studied. Prerequisite: CIS-382.

3

CIS-450 Ethics in the Computer Society

This is an independent writing course in which the student will explore various topics in business and personal ethics. Special emphasis will be placed on how certain facets of ethical practices are impacted by the use of computers in society. This course provides upper-level students an opportunity to hone writing skills as well as reflect on their personal integration of faith and learning. Prerequisite: Permission of Division Chair.

3

CIS-475 Independent Learning in Computer Information Systems

A course designed to allow individualized research or problem solving in Computer Information Systems. Prerequisite: Permission of Division Chair.

1 to 4

CIS-482 Senior Project I

A capstone course in which the student will study, research, design, program, verify, and document a special project assignment selected in consultation with the instructor. Student will work independently under the guidance of a supervisor familiar with the needs of the project. Each student will be required to make at least one oral presentation. Prerequisite: CIS-221.

2

CIS-489 Research in Computer and Information Sci

Students will engage in a research project in conjunction with a faculty member. Prerequisite: Permission of the instructor. 1-3 credit hours. Unlimited repeats.

1 to 3

CIS-492 Senior Project II

A continuation of CIS-482 (Senior Project I). Students will be responsible for completion of coding, implementation and testing of software package begun in CIS-482 (Senior Project I). In addition, students will present their work at a symposium at the end of the course. Prerequisite: CIS-482.

2

CIS-497 Practicum in Computer Information Sciences

Individually arranged work assignments designed to give practical work experience in the use of computer systems. Prerequisite: Permission of Division Chair.

1 to 3
Indiana Weselayan