CIS Logo SVC Logo

Computing & Information Systems Department

 

Schoology Facebook            Search CIS Site
Scholarships

CIS Course Descriptions

NSCI 255 Science of Computing

This course establishes computing as a science and affirms the connection between computing and the sciences. Topics include the scientific method, methodologies used in computer science for evaluating hypotheses, as well as how computing is used as a tool in other fields of science. The course includes a lab component in which students will get hands-on experience investigating computer science problems. Programs will be set up for students to run so they can test different hypotheses. It will be possible to configure the programs with different parameters to see the impact of running over more data sets, running different algorithms, running in different environments, etc. The experiments involve generating and collecting data that can be analyzed to determine whether preliminary hypotheses are true or false. The data, analysis, and conclusions will be written up as lab reports. This is a Tier 2 science course. Any Tier 1 science course serves as the prerequisite. Four credits.

CS 102 Fundamentals of IT and Computing

This course is for the student who wishes to be fluent in information technology (IT) and computer concepts. It is an introduction to the wide range of concepts, techniques, and applications of computer and network technologies. Emphasis is on the possibilities and limitations of Computer Science/Information Systems/Information Technology in personal, commercial, and organizational activities. Topics include history of computing, computer types, computer structure and operation, computer languages, human/computer interaction, program development, computer applications, basic networking, security, and computers in society. Offered in the fall as a freshman seminar course and in the spring semester as a standard course. Three credits.

CS 109 Introduction to Visual Basic Programming

An introduction to the Visual Basic programming language and the concepts and techniques of GUI programming. The syntax of Visual Basic, forms, properties, controls, variables, decision structures, functions, subroutines, and VBScript are covered. Offered spring semesters.

CS 110 C++ Programming I

An introduction to problem solving and computer programming. Topics include algorithms, program structure, input/output, modularity and parameters, control structures, data abstraction, arrays, text files, and structured techniques. Offered fall and spring semesters. Three credits.

CS 111 C++ Programming II

A study of advanced programming techniques and applications continuing from the point where CS 110 ended. Elementary data structures and associated algorithms are examined. Topics covered include arrays, strings, file processing, classes, stacks, queues, linked lists, and recursion. Prerequisite: CS 110. Offered fall and spring semester. Three credits.

CS 170 Discrete Structures I

An introduction to the topics of discrete mathematics which are appropriate to computing. The major purpose is to help the student obtain some fluency in specific areas of mathematics and to encourage the use of the associated techniques within other computing courses. Topics to be covered include logic, sets, functions, proof techniques, algorithms, counting techniques, basics of graphs and trees, finite state machines, parsing, and grammars. Prerequisite: CS 109 or CS 110 or MA 109 or MA 111. Offered fall semester. Three credits.

CS 171 Discrete Structures II

A continuation of CS 170 with an emphasis on the mathematical and theoretical foundations of computer science. Topics to be covered include proofs of correctness, recurrence relations and generating functions, number theory and encryption, algorithm analysis, computability theory (using Turing machines), complexity theory, finite state machines, parsing, and grammars. Prerequisite: CS 170 or MA 110 or MA 112. Offered spring semester alternate years (spring 2018). Three credits.

CS 205 Web Site Design and Programming

This introduction to web development and web programming is intended for both CIS majors and non-majors. Topics include basic aspects of good web design and introductions to technologies that add functionality such as HTML 5, cascading style sheets, JavaScript, the document object model, XML, PHP, Ajax, and the MySQL database. Offered spring semester alternate years (spring 2019) Prerequisite: CS 109 or CS 110. Three credits.

CS 214 Introduction to Mobile Application Programming

This course will cover the basics of developing applications for mobile platforms such as the Apple iOS and Android devices. Differences between mobile and desktop computing will be discussed. Programming languages for the development of mobile software will be introduced along with integrated development environments such as Xcode for iOS and Eclipse for Android. Students will complete projects in small groups and must pass exams individually. Offered fall semesters alternate years (fall 2018). Prerequisite: CS 109 or CS 110. Three credits.

CS 221 Data Structures

The study of data structures and associated algorithms is developed in an object-oriented fashion. This course attempts to show the value of object-oriented design. Various implementations of data structures and the efficiency of the associated algorithms are discussed. Topics to be covered include stacks, queues, keyed tables, recursion, linked lists, binary trees, B -trees and other types of trees, sorting, searching, hash functions, and external sorting. Prerequisite: CS 111. Offered fall semester. Three credits.

CS 225 Cybersecurity

This course examines both the theory and practices that serve as the foundations of cybersecurity. Utilizing the CISSP Common Body of Knowledge as a foundation, fundamentals of access control, network security, risk management, cryptography, business continuity/ disaster planning, environmental security, software development security, and security architecture and design are introduced. Offered fall semester alternate years (fall 2018) Prerequisite: CS 102 or permission of the instructor. Three credits.

CS 226 Mobile Forensics

This course covers areas of mobile forensics, including topics from the legal and technical aspects of the discipline. Software based forensics tools will be utilized to examine mobile communication and computing devices. Removable storage mediums will also be addressed. A focus will be placed on recovering data that could be used to identify users and their actions. Supporting topics will also c over the basics of the investigative process, issues regarding privacy, incident response policies and procedures, evidence gathering, exhibit handling, and differences between private and criminal investigations. The course will also cover the essentials of mobile phone networks and differences with traditional data/communication networks. Offered on an irregular basis. Three credits.

CS 250 User Interface Design

Good decisions involving the design of a user interface can lead to programs that are easier for end users to execute. Code that is written by programmers who are sensitive to ergonomic issues will execute faster, have fewer errors, require less training time and ultimately give its end user a greater sense of satisfaction. This course will discuss the many issues involving such human-computer interaction. A group project involving the design or re-design of a site or application will be completed. Prerequisite CS109 or CS110. Offered spring semesters alternate years (spring 2019). Three credits.

CS 255 Introduction to Artificial Intelligence

This course will present overviews of the roots of artificial intelligence, predicate calculus, the importance of search and search techniques, knowledge representation and knowledge-based problem-solving, the complexity of natural language and machine learning. In addition to other assignments, students will be required to complete projects using languages and techniques which will be introduced during the course. Offered on an irregular basis. Prerequisite: CS 111. Three credits.

CS 265 Information Systems Management

This course provides an introduction to management information systems, e-commerce, planning, and decision support systems explaining how information is used in organizations, the role of information technology professionals, and how information systems are used to an advantage in business settings. Social and ethical issues related to the design, implementation and use of information systems will be addressed. Basic information technology project management skills will be covered as well as the issues and challenges involved in managing an information services department and navigating organizational structures in the corporate world. Offered fall semester alternate years (fall 2017). Three credits.

CS 270 Introduction to Numerical Computation

An introduction to the algorithms of scientific computation and their application to problems in engineering, algebra and calculus. Topics covered include number representation, error analysis, programming techniques, function evaluation, solutions of nonlinear equations, solutions of linear systems, numerical integration, eigenvalues/eigenvectors, and solutions of differential equations. Prior programming experience is not required. Prerequisite: MA 109 or MA 111. Offered spring semester alternate years (spring 2018). Three credits.

CS 290 Special Topics

This course examines a topic of current interest in the field of computing. Prerequisite: CS 111 or permission of instructor. This course may be repeated as long as the topic is different. Offered on an irregular basis. Three credits.

CS 292 Engineering and Computer Ethics

Study of ethical issues in the fields of engineering and computing: Topics include safety and liability, professional responsibility to clients and employers, whistle-blowing, codes of ethics, legal issues that relate to privacy, intellectual property rights, and cybercrime. The course also examines issues concerning the use and development of developing and emerging technologies that may involve computers or be used by computing or engineering professionals. Prerequisite ENGR 100, ENGR 115, or CS 110. Three credits.

CS 305 Web Technologies

This course focuses on more complex web technologies than are covered in CS 205, especially ASP.NET. The majority of the course involves building an ecommerce site and using webpages as front-ends to server-based databases. Offered fall semester alternate years (fall 2017). Prerequisite: CS 205 or CS 111. Three credits.

CS 310 Programming Languages

This course examines the features, implementation, and design of programming languages. Various high-level programming languages representing different programming paradigms will be covered. Java will be used as the primary example of an object-oriented programming language. Programming language translation and runtime features such as storage allocation will be among the topics that are considered. Prerequisites: CS 221, CS170 and CS330. Offered spring semester. Three credits.

CS 315 Server-Side Programming

This course concentrates on designing, writing, installing, and configuring software for Linux and Windows servers. Possible languages to be used include C++, PowerShell, Node.js, and bash. Server-based software projects often provide a service that many users can access simultaneously, often over the network. Also covered is the use of git and GitHub in managing projects and installing software. Prerequisites: CS 111. Offered fall semester alternate years (fall 2018). Three credits.

CS 321 Data Communications and Computer Networks

This course covers the major areas of data communications and networking. It uses the OSI layered approach and focuses especially on the TCP/IP protocols and the Internet. LAN technologies and the configuration of routers and switches are also included. Offered fall semester alternate years (fall 2017). Three credits.

CS 322 Advanced Networking

This course will address computer networking beyond the OSI model framework. Current industry techniques and technologies are explored in areas of voice, mobile, wireless, and remote technologies. Issues in system security, performance, and maintenance will also be examined. Current research and evolving trends will be discussed to highlight the ever-changing nature of the field and to identify the skills necessary in evaluating new technologies. Students will be expected to build functioning networks during hands on activities beginning with basic wiring through router and VPN configurations. Offered spring semesters alternate years (spring 2018). Prerequisite: CS 321. Three credits.

CS 325 Advanced Topics in Cybersecurity

This course explores advanced topics in cybersecurity such as computer forensics, malware analysis, secure coding, and penetration testing of web applications and networks. Building upon the theoretical foundations of CS225, students will participate in multiple lab and practical exercises to gain experience with current field techniques. The course requires a basic knowledge of cybersecurity issues, networking, and programming background. Offered spring semester alternate years (spring 2019). Prerequisite: CS 225 or CS 321. Three credits.

CS 330 Computer Architecture and Operating Systems

Computer architecture and operating systems are covered using the multilevel machine approach, with particular attention paid to the microprogramming level, the conventional machine level, and the operating system level. A simulator will be used to allow students to try microprogramming and machine language programming. The operating systems part of the course covers key operating system concepts and algorithms. In addition, it uses Linux as a case study, emphasizing system administration tasks, Linux utilities, pipes, and bash scripts. Prerequisite: CS 111. Offered spring semester. Three credits.

CS 350 Database Concepts and Information Structures

This is a first course in modeling complex organizations of data. It includes a review of logical file structures and access methods. Information structures and databases are studied, with detailed work in personal and enterprise database systems. Prerequisite: CS 102. Offered fall semester. Three credits.

CS 351 Information Systems Analysis and Design

An investigation of the discipline of systems analysis in relation to the information system life cycle. Structured and object-oriented techniques of analysis and design applicable to current system documentation and the development of general systems solutions are presented. Topics include process and data flows, I/O designs, and systems modeling. Problem solving and communication skills employed in the transition from analysis to design are stressed. P rerequisite: CS 109 or CS 110. Offered spring semester alternate years (spring 2019). Three credits.

CS 355 Software Engineering

This course will cover methodologies for program construction which will allow software of high quality to be constructed, where high quality software is defined as software which is reliable and reasonably easy to understand, modify, and maintain. The course covers the software development life cycle, from requirements (elicitation, modeling, analysis and specification), to design specifications, to implementation, testing and delivery. Also included are project management, project documentation and the development of communications skills through written documentation. Prerequisite: CS 111. Offered spring semester alternate years (spring 2018). Three credits.

CS 357 Computing Science Project I

Using principles and techniques developed in CS 351 Systems Analysis and Design or CS 355 Software Engineering, a capstone senior project is researched, designed, documented, implemented and tested over two semesters. Projects are typically completed individually, but a team approach may be used at the discretion of the instructor. Projects may be done for actual clients. Each project should be done in an area related to one's major. Prerequisite: CS 351 or CS 355. Offered fall semester. Two credits.

CS 358 Computing Science Project II

Using principles and techniques developed in CS 351 Systems Analysis and Design or CS 355 Software Engineering, a capstone senior project is researched, designed, documented, implemented and tested over two semesters. Projects are typically completed individually, but a team approach may be used at the discretion of the instructor. Projects may be done for actual clients. Each project should be done in an area related to one's major. Prerequisite: CS 351 or CS 355. Offered fall semester. Two credits.

CS 375 Applied Cryptography

This course presents sufficient number theory and algebra to describe common cryptographic systems. Course topics include the German Engima machine, DES, the RSA cryptosystem, discrete logarithms, and the ElGamal cryptosystem. Students will use computer software to solve cryptography problems and will write computer their own software to handle some types of cryptography, cryptanalysis, etc. Mathematica may be used to solve some of the problems. Students will be asked to implement several cryptographic algorithms using C++ in Linux with the aid of the BigInt package. Some of these algorithm implementations might be done as group projects. Common applications of cryptography such as key distribution, digital signatures, and cryptocurrencies will also be studied, as well as some of the methods of attacking cryptosystems. Prerequisites: One course from CS 170, MA 109, MA 111 as well as one course from the list CS 110, CS 270. Offered fall semester alternate years (fall 2017 ). Three credits.

CS 450 Independent Study -- Computing

An independent study may be possible by arrangement with an individual faculty member. Course may be repeated with a different topic. Variable credit.

CS 550 Computing Internship

An internship involves practical work experience, typically with a local business. Course may be repeated. Variable credit. Internships may be done for no credit.