2013-2014 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-117 Essential Foundations for Computing

This course provides a backdrop of essential topics for computer major students. Classroom lecture format is used to provide an overview of selected topics from discrete mathematics, fundamentals of desktop computer operating systems and standard office applications, and an introductory experience in writing technical papers at the college level. The new computing major student will begin to be acclimated to the social fabric of the Department, and intentional introduction made to upper division students in the majors. Finally, an overview of the computing curricula available will be given. Meets the general education math/computer requirement. Prerequisite: a declared computing major or minor.

3

CIS-121 Introduction to Programming

The study of computing can be viewed as the science of knowing how to solve problems. 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. No prior experience in programming is necessary, but the student should be familiar with basic computer terminology and use of applications such as word processors and electronic spreadsheets. Meets the general education math/computer requirements. This course does not apply toward a computer major or minor. Credit is not given to any student who has previously completed six credits in CIS courses. 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-125 Introduction to Computer Sciences I

This course combines classroom instruction with weekly, supervised laboratory work to teach an introduction to computer science including structure programming. Special attention is given to the study of problem-solving processes in the context of algorithmic development. Programming topics include text processing, mathematical manipulation, array processing and code reading. Overview treatment of the history of computing and other general computer science topics like the binary numbering system, data storage, and operating systems will be covered. Meets the general education math/computer requirement. Prerequisite: Satisfactory completion of the mathematics preparatory requirement.

3

CIS-126 Introduction to Computer Sciences II

This course continues the development of programming skill using a combination of classroom instruction together with weekly supervised laboratory work each week to stress problem solving through computer programming. Algorithms for information retrieval, file handling, sorting, searching, dynamic storage, allocation and introductory data structures are presented. Good algorithm design, style, program structure, documentation code reading, and introductory software engineering techniques are emphasized. Additional topics include the branches of study in the discipline of computer science, as well as coverage of social and ethical implications of current and future development in computer usage. Meets the general education math/computer requirement. Prerequisite: CIS-125.

3

CIS-175 Independent Learning in Computer Languages

A course designed to allow individualized study of a specific programming language. An application project is required that demonstrates proficiency in the major features of the selected language. Prerequisite: Permission of instructor.

1 - 2

CIS-221 Data Structures

A study of data organization and processing in the context of abstract data types. This course combines classroom instruction with weekly supervised laboratory work to cover topics including pointers, lists, strings, stacks, queues, trees, searching, and sorting. It is taught against the backdrop of a modern programming language. Prerequisite: CIS-126.

3

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.

3

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: Sophomore standing.

3

CIS-236 Machine Structures and 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. Prerequisite: CIS-125.

3

CIS-241 Topics in Scientific Programming

A course in techniques and concepts used in scientific applications of computers. Topics may include computer hardware, machine language, numerical and statistical techniques, computer simulation, and graphics. Prerequisites: CIS-221, CIS-236, and MAT-253.

1 - 4

CIS-250 Internet Programming

A beginning 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 or Co-requisite: CIS-221 or CIS-222.

3

CIS-290 Local Area Networks

This course introduces the concepts and technologies in a local area network. The content will cover the theoretical foundation such as networking topologies, networking theoritic models, communication protocols, networking operating systems, and network administration. This course also gives students an opportunity to build and maintain a local area network. Prerequisite: CIS-125.

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

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: CIS-221 or CIS-222, and CIS-225.

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 or CIS-222.

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 and CIS-222. One of these may be taken concurrently as long as the other is already completed.

3

CIS-340 Internet Database Programming

This course introduces the concepts and techniques necessary to incorporate database applications and content into web applications. Topics to be covered include an overview of DBMS technologies, using client-side tools to access server-side databases, and N-tier web application development. Emerging tools, including object-oriented databases will be discussed. Prerequisites: CIS-382.

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 or CIS-222.

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-221 or CIS-222.

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-350 Computer Applications-Business

A course emphasizing computer applications in a business environment. Includes case studies, field trips, and programming projects. Prerequisites: CIS-116 and CIS-225. Prerequisite or concurrent enrollment: ACC-202.

3

CIS-361 Assembly Programming

An introductiong 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, aseembler construction, interrupts, and timing. Prerquisites: CIS-221 or CIS-222.

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. Prerequisite: CIS-221 or CIS-222.

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 or CIS-222.

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

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 or CIS-222, and CIS-225.

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

1 to 3

CIS-399H Honors Thesis/Project

Work with a faculty mentor and in cooperation with an Honors College advisor, producing a research thesis or creative project.

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 or CIS-222, and CIS-236.

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

3

CIS-452 Programming for E-Commerce

This course examines the issues involved in bringing the full range of business transactions to the Internet and World Wide Web. Provides an in depth introduction to storefront user interface, shopping cart, catalogs, certificate authority, order management (order form, order status and order initialization), payment methods and authorization, secure transactions and database storage objects. Additional topics include on-line ordering, transaction security, and digital currencies. Prerequisite: CIS-340.

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

1 to 4

CIS-480 Applied Software Development Project

A capstone course in which the student will design, program, verify, and document a special project assignment selected in consultation with the instructor. The student will work independently under the guidance of a supervisor familiar with the needs of the project. Prerequisite: A declared computer major, at least 90 total credits, a submitted application to graduate, and approval of one's computer academic advisor.

3

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: Senior status in a Computer Information Systems or Computer Science major.

2

CIS-490 Senior Seminar

A course to foster independent study and research skills and pursue topics of current interest in the field of Computer Science. Each student will be required to make at least one oral presentation. Prerequisites: Completion of CIS-480; to be taken in final semester.

1

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 Systems

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

1 to 3
Indiana Weselayan