Computer Science (CIS)
CIS-1030 Introduction to Computer (3) as required
Students will become familiar with the Windows operating system, the applications that comprise the Microsoft Office software suite (word processing, spreadsheet, database, and presentation graphics), and communication software. 3 hours of lecture/ laboratory per week. Prerequisite: None.
CIS-1050 Introduction to Spreadsheets (1) fall/spring
This course introduces the student to the Microsoft operating system, e-mail, Internet, and the use of a spreadsheet. Topics include the commands necessary to build a spreadsheet and make graphs. 1 hour of laboratory per week. Prerequisite: None.
CIS-1080 Introduction to Spreadsheets and Database Management (2) fall/spring
This course introduces students to the use of email, MAPLE database functions, and the Internet, as well as to the use of a spreadsheet and database. Spreadsheet topics include all functions necessary to build a spreadsheet and create graphs. Database topics include the fundamentals of computer database design and management. 2 hours of laboratory per week. Prerequisite: None.
CIS-1120 Introduction to Information Technology (3) fall
This course introduces students to the world of IST across a broad range of topics. Topics include history of computing in society, career paths in computing, and the use of computers in the workplace. 3 hours of lecture per week. Prerequisite: None.
CIS-1151 Website Development (3) fall
This course includes the introduction of web pages for commercial web sites: use of and design with HyperText Markup Language, text and graphics; applying appropriate design, color, and art; size and placement of graphics, including imagemaps, in a web page; creation of advanced tables, including nested tables; creation of forms that contain advanced input types and attributes, text areas, and advanced lists; use of a validation tool to debug an HTML document. 2 hours of lecture, 2 hours of laboratory per week. Prerequisites: None
CIS-1152 Advanced Website Development (3) spring
Students learn intermediate skills and techniques used in webpage development. Topics include applying sophisticated formatting to text; creating documents that automatically display another page and that contain interactive JAVAScripts; creation of and work with frames documents; examination of document styles and recommendations on improvements; HTML document creation/conversion tools; using XML to manage content; an introduction to database theory; use of basic SQL programming; use of Cold Fusion to reformat text and databases and dynamic web pages; use of style sheets; 2 hours of lecture, 2 hours of laboratory per week. Prerequisite: CIS-1151.
CIS-1160 Fundamentals of Programming in C (1) spring
Fundamentals of programming in C is a course intended to be a gentle introduction to writing programs in a Windows environment. It will be taught using the C programming language, but will focus primarily on concepts such as variable declarations, if statements, and loops that are common to most popular programming languages. Students will also learn how to manage files and directories, run programs, edit text files, and use a computer. This course is open to all majors who would like to take an introductory programming course. 3 hours of lab per week. Prerequisite: None.
CIS-2010 Computer Organization (4) spring
Students gain a basic understanding of computer hardware. The students are introduced to binary data representation, pointers and memory through the C language. This understanding expands to include the functioning of the CPU, including registers, ALU and simple I/O, culminating in an introduction to assemble language. 3 hours of lecture and 2 hours of lab per week. Prerequisite: CIS-2271 and MAT-2120.
CIS-2025 "C" Programming (4) fall/spring/on-line
This course teaches students to write programs using the C language. All fundamental features of C are covered, including arrays, functions, pointers, file I/O, string manipulation, and preprocessor directives. In addition, this course will emphasize good software design techniques, programming style, and documentation. No prior programming experience is required. This course is offered in both classroom and online versions. Sufficient internet skills and the permission of the instructor are required to take the course on-line. 3 hours of lecture, 3 hours of laboratory per week. Prerequisite: None.
CIS-2151 Computer Networks I (4) fall/spring
This course introduces the student to network protocols. The course covers physical, data link, network, transport, and application layer protocols. The TCP/IP protocol suite is discussed in detail. IPX/SPX is also discussed. Topics include ethernet and token ring networks, connectionless protocols, connection-oriented protocols, and application protocols such as SMTP, NNTP, and HTTP. Students learn about both hardware and software troubleshooting tools, security issues, and current topics such as IPv6. The way network software is written, both on the server side and the client side, is also covered. 3 hours of lecture, 3 hours of laboratory per week. Prerequisite: CIS-2025 or CIS-2271.
CIS-2230 System Administration (4) spring
In this course the student explores the basics of system management. The course provides the student with enough theory to understand how operating systems work and to interpret the output of various management tools. It also covers practical issues in system administration including process, memory, and file system monitoring and performance tuning. Some topics in computer security are also discussed. Unix and Windows NT/2000 are the specific systems currently studied. 3 hours of lecture, 3 hours of laboratory per week. Prerequisite: CIS-2025, CIS 2271 or CIS 2280.
CIS-2260 Object-Oriented Programming (3) fall
This course introduces students to the concepts of programming with abstract data types and object-oriented programming. It uses C++ to cover classes, inheritance, and polymorphism. The course also builds on the prerequisites to provide students with more advanced exposure to software design, implementation, debugging, and documentation. 3 hours of lecture per week. Prerequisite: CIS-2010, CIS-2025 or CIS-2271.
CIS-2271 JAVA Programming (4) fall
This course will introduce the student to basic concepts of JAVA and Object Oriented Programming (OOP). The course begins with basic concepts of OOP. These include classes, objects, inheritance, polymorphism, and object oriented design. The course will then cover the language features of JAVA. The topics in this section are: program structure, statement and field types, operators, expressions, and control structures. The course then returns to OOP features of JAVA, focusing on object data types, strings, methods, classes, and constructors. The final section addresses graphical user interface (GUI). The topics are: applets, GUI components (e.g. buttons), event processing, and frames. 3 hours of lecture, 2 hours of laboratory per week. Prerequisite: None
CIS-2280 Perl Programming (2) spring
This course continues the student's training in programming by introducing the student to the use of the scripting language Perl. Students are introduced to the Linux operating system. The basic concepts of programming are reviewed using Perl to demonstrate those concepts. Concepts unique to Perl, such as regular expression handling and hashes, are introduced. The emphasis in the course is on using Perl as a tool to get things done rather than only as a vehicle to explain how to program. Examples and assignments are drawn from topics related to system administration, web programming, and application programming. 2 hours of lecture per week. Prerequisite: CIS-2010, CIS-2025, or CIS-2271.
CIS-2320 Software Quality Assurance and Testing (3) fall
Students are introduced to the concepts, techniques and tools used for evaluating and ensuring the quality of computer software. Topics include dimensions and implications of quality, code reviews, test construction, test coverage metrics, partition testing, user interface testing and current test support tools. 3 hours of lecture per week. Prerequisite: CIS-2010, CIS-2271, or CIS-2025.
CIS-2720 Current Topics in Computer Engineering (3) spring
This course provides students the opportunity to integrate the topics presented throughout the curriculum as well as to explore additional specific topics that are relevant to the current state of the field. Recent topics have included HTML authoring, JAVA, CGI scripting, Windows programming, X11/Qt programming, and databases. At the discretion of the instructor, students may work on a semester long project, do library research, give an oral presentation, write a significant program, or build significant electrical hardware. The precise content and nature of this course varies from year to year, depending on current industry needs. 2 hours of lecture, 3 hours laboratory per week. Prerequisite: ELT-1080, ELT-2050, CIS-2151, and CIS-2260. Co-requisite: CIS-2230.
[Course Fee: $50]CIS-2730 Software Engineering Projects (3) spring/fall
This capstone course involves the development of a group project. The development effort will be combined with an introduction to systems development and life cycle. Students will also receive an introduction to orally presenting technical information to a technical audience. Each group will present their project design and the final project. 2 hours of lecture and 2 hours of lab per week. Prerequisite: CIS-2271 or CIS-2025.
CIS-3010 Database Systems (4) spring
In this course students study a method for designing relational databases, the use of SQL to access data stored in a relational database, and the use a commercial database management system to implement a relational database system. Students are required to implement a real-world example relational database as a project. Additional topics that may be discussed as time and class interest permit include: VBA, DAO and ActiveX, ODBC, and JDBC. Prerequisite: CIS-2230 or equivalent.
CIS-3030 Programming Languages (3) fall
This course introduces the student to a variety of important or current languages. The idea is to give the student more exposure and experience with programming by showing the student how various languages can be used to solve various problems. The intent is to cover languages of practical and theoretical importance. Some software engineering techniques are also introduced. 3 hours of lecture per week. Co-requisite: CIS-3050.
CIS-3050 Algorithms and Data Structures (3) fall
This course focuses primarily on the implementation of various important algorithms and data structures. It contains some theory but the theory content is minimized in favor of a more rigorous treatment of implementation techniques. The course covers classic topics such as lists, trees, hash tables, sorting, and string matching. It also covers selected other topics such as encryption, data compression, and image processing. The language used is C++ with an emphasis on the C++ Standard Template Library. 3 hours of lecture per week. Prerequisite: CIS-2260 or instructor permission.
CIS-3080 Issues in Information Technology (3) as required
This course is an in-depth study of the uses of and issues related to computers and information systems in society. Topics explore the benefits and professional impact of continuing career preparation, career progression, outreach to the community, ethical development, and ethical behavior. Controversies and alternative points of view are evaluated on issues such as professional ethics and professional responsibility. Students research and write extensively on course topics. Prerequisite: Junior standing or instructor permission.
CIS-3152 Networks II (4) spring
This is a second course in networks with an emphasis on the upper layers of the OSI model and network programming. Topics include TCP/IP protocol behavior (including coverage of IPv6), client/server programming, and an application level protocol such as HTTP or SMTP/MIME. An introduction to character sets and XML is also presented. In addition, RPC and a distributed object system such as CORBA are covered. Prerequisite: CIS-2151.
CIS-3170 History of the Theory of Computation (3) spring
This history of computer and early calculators will be examined. Students will learn the principles of early computational devices and investigate how the concepts utilized in these devices are implemented in modern computers. Particular attention is focused on Boolean logic. Frege formula language, Turing machines, Implications of Shannoan's Limit and Moore's Law will be studied. Also offered on-line. Prerequisite: Junior standing. (General Education: SS. For non-computer students).
CIS-4020 Advanced Operating Systems (4) fall
In this course students study the internal workings of modern operating systems. Topics include file systems, multiprocessing, memory management, and device drivers. Distributed operating systems and real time operating systems are also discussed. As part of this course students write a significant Linux kernel module and a device driver for some commercially important operating system. 3 hours of lecture and 3 hours of laboratory per week. Prerequisite: CIS-2230 or equivalent, CIS-3050, and CIS-3152.
CIS-4030 GUI Programming (3) fall/on-line
Modern Graphical User Interface (GUI) design and implementation methods are studied. The course uses JAVA as the base language. Industry standard libraries, such as Swing and Open GL are used for programming coursework. Prerequisite: CIS-2271 or CIS-3030.
CIS-4040 Computer Security (3) spring
This course focuses on security issues associated with computers and computer networks. The course starts by covering cryptographic topics such as symmetric and public key systems, digital signatures, secure hashes, cryptographic random number generation, and message authentication codes. Network security topics are also covered including secure protocols (SSH, SSL, IPsec), network attack methods, network authentication protocols (for example, Kerberos), and firewalls. Finally, the course covers host security matters such as building secure software, auditing, and intrusion detection. 3 hours of lecture per week. Prerequisite: CIS-3040 or CIS-3152.
CIS-4050 Compiler Design (3) spring
This course investigates how languages are implemented and gives the student enough knowledge to build specialized "mini languages" for niche applications. Students will use compiler generation tools, such as Lex and Yacc, and will create some hand-built components. Although some theory is presented, the emphasis is on implementation (programming) rather than theorem proving. Most programming is done in C, but other languages (C++, JAVA) are also used. 3 hours of lecture per week. Prerequisite: CIS-3030, CIS-3050.
CIS-4120 Systems Analysis and Design (3) spring
This course addresses the methodology used in gathering data, analyzing data, and determining user requirements for information processing using advanced systems analysis techniques and the associated techniques used in designing solutions that can then be programmed as application software for use on computer-based systems. 3 hours of lecture. Prerequisite: Junior standing in IST or CPE and CIS-2260.
CIS-4130 Introduction to Software Engineering (3) as required
This course continues beyond good programming techniques to design modeling techniques for process, event, object and data modeling and utilizes an underlying framework call UML (Unified Modeling Language). 3 hours of lecture, 2 hours of laboratory per week. Prerequisites: CIS-3070 or 3090.
CIS-4150 Software Engineering (3) fall
This course is chiefly concerned with the application of engineering principles to the all too chaotic process of software development. The student will learn how the concepts of repeatability, modularity, traceability, maintainability, and reusability affect the architecture and design of software systems. The software life cycle and how it is supported by various methodologies will be explored, as well as the ramifications of differing team sizes to the selection of traditional versus agile methods. The student will be shown how documentation techniques, modeling languages, and CASE tools can be used to minimize miscommunications and ensure that the system desired is the system that is eventually built. 3 hours of lecture per week. Prerequisite: CIS-3030, CIS-3050.
CIS-4711 Project I (2) fall
This course is a largely self-directed senior project in which students demonstrate their mastery of the subjects covered in their program. 1 hour of lecture, 3 hours of laboratory per week. Prerequisite: Senior standing in a computer program. [Course fee: $50.00]
CIS-4712 Project II (3) spring
Completion and final presentation of the senior project begun in the fall. Regular progress reports are required and a formal presentation is required at the end of the term. This presentation occurs in front of students, departmental faculty, and invited guests (including potential employers). 1 hour of lecture, 6 hours of laboratory per week. Prerequisite: CIS-4711 or instructor permission. [Course fee: $50.00]
CIS-4720 Information Systems Technology Projects (3) spring
This capstone course combines a major project with a review of systems development and life cycle including select human and organization behavior issues, a survey of information technology associated literature focusing on the role of information sciences in society, the psychological underpinnings of design, experimental technologies and future looking science fiction In addition to the significant project spanning at least the three stages of the life cycle, reflective activities include development barriers, use interaction, analyzing project performance and planning for future issues. 1 hour of lecture, 3 hours of laboratory per week. Prerequisite: Senior standing in the Software Engineering or Information Technology program.
CIS-4721 Information Systems Technology Senior Project I (2) fall
This course is a largely self-directed senior project in which students demonstrate their mastery of the subjects covered in the BS.CSE or BS.CIT program. 4 hours of laboratory per week. Prerequisite: Senior standing in the CSE or CIT programs.
CIS-4722 Information Systems Technology Senior Project II (3) spring
This course is the completion and final presentation of the senior project begun in the fall. Regular progress reports are required and a formal presentation is required at the end of the academic year. This presentation occurs in front of students, departmental faculty, and invited guests (including potential employers). 1 hour of lecture, 4 hours of laboratory per week. Prerequisite: CIS-4721.


