Computing Courses

Lower Division
CS 141 Introduction to Computer Science I CS 211 Discrete Structures
CS 142 Introduction to Computer Science II CS 221 Software Development I
CS 201 Introduction to Computer Organization

Upper Division
CS 301 Operating Systems CIS 351 Ethics and Technology
CIS 301 Web Application Development CS 361 Numerical Analysis
CS 302 Computer Organization and Architecture CS 371 Compiler Design
CS 304 Computer Networks and Mobile Computing CS 380 Programming Languages
CS 310 Computer Graphics CS 410 Computer Graphics II
CS 311 Algorithms CS 431 Artificial Intelligence
CS 321 Software Development II CS 472 Theory of Computation
CS 331 Graph Theory CS 498 Senior Research I
CIS 331 Computer and Network Security CIS 498 Senior Project I
CIS 340 Internship in Computer Information Systems CS 499 Senior Project II
CS 341 Mathematical Modeling and Computer Simulation CS 499 Senior Research II

CS 141 - Introduction to Computer Science I
(4 Credits) An introduction to computer science and object-oriented programming with Java


CS 142 - Introduction to Computer Science II
(4 Credits) A continuation of CSCI141, with an introduction to recursion, linked lists, sorting and searching, and object-oriented design. Prerequisite: CSCI141


CS 201 - Introduction to Computer Organization
(4 Credits) Hardware organization, assembly and system level programming, macro facilities. Prerequisite: CSCI111.


CS 211 - Discrete Structures
(4 Credits) Boolean algebra and propositional logic, mathematical proofs, finite machines, Turing machines, formal language, combinatorics, probability. Prerequisite: CSCI141.


CS 221 - Software Development I
(4 Credits) Implementation of the Object Oriented paradigm using C and the Unified Modeling Language (UML). An introduction to the components of the C compiler, and the software development life cycle Prerequisite: CS142.


CS 301 - Operating Systems
(4 Credits) Study of the components of an operating system. Management of and communication between concurrent processes, virtual memory, scheduling, file management. Prerequisite: CSCI221.


CIS 301 - Web Application Development
(4 Credits) Web Application Development. Implementation of Web applications, treating both the client and the server, with an emphasis on database driven applications that includes logical and physical database design, entity-relationship modeling, and database normalization. Possible development environments include PHP, Javascript, and MySQL. Prerequisite: CSCI221.


CS 302 - Computer Organization and Architecture
(4 Credits) Organization of major hardware components of a computer; introduction to logic and micro-programming; comparison of computer architecture. Prerequisite: CSCI201.


CS 304 - Computer Networks and Mobile Computing
(4 Credits) This course focuses on the communications protocols used in computer networks: their functionality, specification, implementation, and performance (TCP/IP, Ethernet, Gigabit Ethernet). It also introduces the field of mobile and wireless computing. Prerequisite: CSCI221 and CSCI301


CS 310 - Computer Graphics
(4 Credits) Techniques and standard algorithms for creating and animating two- and three-dimensional objects, including lighting, texturing, collision detection, matrix transformations, physics-based animation and SLERPing via quaternions. Prerequisite: CSCI221, MATH235


CS 311 - Algorithms
(4 Credits) A detailed study of algorithm design and analysis, including greedy algorithm, divide and conquer, dynamic programming, backtracking, and branch and bound. Some advanced data structures are introduced. There is an emphasis is on the verification and analysis of time and space complexity. NP theory is introduced. Prerequisite: CSCI211


CS 321 - Software Development II
(4 Credits) The study of advanced Object Oriented and UML concepts using C . Design Patterns, the Standard Template Libraries, and basic network communications (sockets, rpc). A continuation of the study of the software development life cycle. Prerequisite: CSCI221


CS 331 - Graph Theory
(4 Credits) This course studies techniques of enumeration and graph theory. Topics include binomial coefficients, recursion, generating functions, Burnside's Lemma, Eulerian and Hamiltonian graphs, trees, planarity, duality, graph coloring, graph algorithms, and various practical applications. Prerequisite: CSCI211 or junior standing in mathematics. Cross-listed as MATH331.


CIS 331 - Computer and Network Security
(4 Credits) An introduction to computer and network security with an emphasis on computer attacks and defending against them. Examines the reconnaissance, scanning, gaining access, maintaining access, and covering tracks phases of the attack process and uses various open source tools for monitoring and detection. Prerequisite: CSCI221.


CIS 340 - Internship in Computer Information Systems
(4 Credits) Students are expected to complete an internship of varying time length with an external strategic alliance partner. Emphasis is on a relevant learning environment and acquisition of appropriate career skills at a suitable level of authority and responsibility. Prerequisite: Approval of CINF faculty.


CS 341 - Mathematical Modeling and Computer Simulation
(4 Credits) An introduction to the development of mathematical models, and the use of computers towards that goal. Topics include model construction, regression, empirical modeling, difference equations and dynamical systems, probabilistic modeling, and Monte Carlo simulation. Pre-requisite: MATH142, MATH235, and CSCI141. Cross-listed as MATH341.


CIS 351 - Ethics and Technology
(4 Credits) This course is intended to enable students to understand and to respond to the legal and ethical issues that arise from the utilization of information technology. Students will explore ethical and social issues arising from the computerization of industry and government, with emphasis on copyright, security, and privacy issues. The primary focus of the course will be the determination of the weight that these ethical and social issues should have in the design, implementation, and uses of present and anticipated applications of information technology. Prerequisite: Junior standing.


CS 361 - Numerical Analysis
(4 Credits) A study and analysis of common numerical methods used in applied mathematics. Topics include solutions of non-linear equations, the solutions of systems of linear equations, interpolation, numerical integration, and the numerical solution of differential equations. Prerequisite: CSCI141. Cross-listed as MATH361.


CS 371 - Compiler Design
(4 Credits) Principles, techniques and tools for designing a compiler for a procedural language. Prerequisites: CSCI201, CSCI221 and knowledge of C programming.


CS 380 - Programming Languages
(4 Credits) Theory and principles of programming language design; study of functional and procedural language. Prerequisite: CSCI221.


CS 410 - Computer Graphics II
(4 Credits) A continuation of CSCI310, including key-frame animation, kinematics, the A* algorithm, flocking behaviors, metaballs, and shader-based graphics. Prerequisite: CSCI310.


CS 431 - Artificial Intelligence
(4 Credits) Emphasizes the new-AI. Topics may include decision trees, neural networks, artificial life, genetic algorithms, genetic programming, evolutionary computing, and fuzzy systems. Prerequisite: CSCI221.


CS 472 - Theory of Computation
(4 Credits) Theory of Computation. An examination of the concepts of formal languages, automata theory, context free grammars, and Turing Machines. Prerequisite: CSCI211.


CS 498 - Senior Research I
(4 Credits) Students will select a topic in computer information systems, and work on it in collaboration with a faculty member. The student will develop a statement of the problem to be studied, the methods to be used, and the background information needed to solve the problem. The student will write a project proposal including any preliminary results and present the problem and results to the department.


CIS 498 - Senior Project I
(4 Credits) Students will select a topic in computer information systems, and work on it in collaboration with a faculty member. The student will develop a statement of the problem to be studied, the methods to be used, and the background information needed to solve the problem. The student will write a project proposal including any preliminary results and present the problem and results to the department.


CS 499 - Senior Project II
(4 Credits) Students will extend their research project started in CINF498. The student will write a final paper, and present the results to the department. Prerequisite: CINF498.


CS 499 - Senior Research II
(4 Credits) Students will extend their research project started in CSCI498. The student will write a final paper, and present the results to the department. Prerequisite: CSCI498.