Computer Science
CS 108 Computing Fundamentals (4)
Fundamental concepts of computing and programming. Topics include data types, control structures, functions, arrays, files,
and the mechanics of running, testing, and debugging. The course also offers an introduction to the historical and social
context of computing and an overview of computer science as a discipline. Course taught using the C programming language.
Prerequisites: No programming or computer science experience is required.
CS 220 Computer Organization (4)
Introduces students to the organization and architecture of computer systems as a hierarchy of levels, beginning with the standard
von Neumann model and then moving forward to more recent architectural concepts. Topics include digital logic, microprogramming,
conventional machine and assembly language levels. Emphasis is given to those aspects of computer hardware that effect programming.
Prerequisites: CS 108, MAT 115.
CS 240 Data Structures and Algorithms (4)
Fundamental concepts of data structures and the algorithms that proceed from them. Topics include recursion, the underlying philosophy
of object-oriented programming, fundamental data structures including stacks, queues, linked lists, hash tables, trees, and graphs.
The basics of algorithmic analysis, and an introduction to the principles of language translation. Course programming assignments use
Java and/or C++. Prerequisites: CS 108 and MAT 115.
CS 249 Object-Oriented Programming (4)
Problem-solving and program design using an object-oriented approach.
Starts with a review of control structures and data types with emphasis on
structured data types and array processing. It then moves on to introduce
the object-oriented programming paradigm, focusing on the definition and
use of classes along with the fundamentals of object-oriented design. Other
topics include an overview of programming language principles, simple
analysis of algorithms, basic searching and sorting techniques, and an
introduction to software engineering issues. Prerequisite: CS 240.
CS 307 UNIX Programming Environment (2)
Promotes effective use of the UNIX programming environment. Topics
include: text editor, file system, utility programs, pipe and filter paradigm,
construction and use of regular expressions, shell language programming,
internet, and interprocess communication.
CS 309 Programming Methodology (4)
Problem-solving and program design using an object-oriented approach. Starts with a review of control structures and data types
with emphasis on structured data types and array processing. It then moves on to introduce the object-oriented programming paradigm,
focusing on the definition and use of classes along with the fundamentals of object-oriented design. Other topics include an overview
of programming language principles, simple analysis of algorithms, basic searching and sorting techniques, and an introduction to software
engineering issues. Prerequisite: CS 108.
CS 311 Data Analysis (2)
A hands-on introduction to data analysis using a microcomputerbased statistical package such as SPSS PC+. Topics include
descriptive statistics, measures of association, and hypothesis testing. Emphasis is placed upon data collection, data organization
and report generation. Prior coursework in statistics is helpful, but not required. May not be taken by students who have received
credit for CS 323.
CS 324 Introduction to Internet Tools in Windows (2)
A hands-on introduction to the use of software Internet tools in windows environments and the concepts and perspective in
computing and communications essential to using them effectively. Topics include the Windows interface and environment, and tools
for browsing, editing and Web site creation and maintenance available in the Windows environment. At the conclusion of the course,
the student will have an understanding of computing communication environments and the ability to use Web software tools to construct,
configure, and maintain a Web site.
CS 330 Operating Systems and Networking (4)
Integrates the fundamental concepts of operating systems and networking with the purpose of realizing workable models of
modules and constructs. Topics include concurrency, synchronization, processes, threads, long and short term scheduling, memory management,
I/O, file systems, device management and multimedia systems. Networking topics include basic network models, layered architectures, network
hardware and standard protocols. Within this framework, client-server microkernel design is also presented. Prerequisites: CS 220, CS 240.
CS 345 Logic Design (4)
A concentration on the digital logic level of computer organization. The theoretical and practical concepts covered include:
Boolean algebra, simplification of Boolean functions, and analysis and synthesis of digital circuits with emphasis on mixed logic.
The most common combinatorial and sequential integrated circuits, and algorithmic state machines are highlighted. Prerequisites:
CS 220 and MAT 115.
CS 348 LISP Programming (2)
An intensive survey of the LISP programming language. Topics include: expressions, data types and representations, control structures,
and input/output functions. Prerequisite: CS 240.
CS 350 Information and Knowledge Management (4)
The concept of information as a unifying theme. Investigates a range of issues in computer science, including database systems,
artificial intelligence, human-computer interaction, multimedia system, and data communication. Prerequisites: CS 240, MAT 115.
CS 351 Web Development and Internet Programming (4)
This course teaches students to install, configure and maintain an Internet/Intranet Web Server. Topics include: developing Web pages,
Hypertext Markup Language (HTML), Common Gateway Interface (CGI) scripting, and displaying information on the Web via a Database Management
System (DBMS). Prerequisite: CS 108 and CS 307.
CS 370 Software Engineering (4)
Combines a range of topics integral to the design, implementation, and testing of a medium-scale software system with the practical
experience of implementing such a project as a member of a programmer team. In addition, this course includes discussions on
professionalism and ethical responsibilities in software development and human-computer interaction. Prerequisites: CS 220 and CS 249.
CS 371 Software Engineering Projects (4)
This course offers the student an opportunity to participate in a
non-trivial software engineering team project and to apply the concepts
studied in CS 370. The following will be emphasized throughout the
project: documentation of projects; different roles in a project; corporate,
academic and military software development standards; specification
and requirements documents; configuration, quality assurance, test,
verification, integration plans; post-development software support.
Prerequisite: CS 370.
CS 377 Introduction to the Theory of Computing (4)
Introduction to theoretical computer science. Topics include: automata,
formal languages, Turing machines, recursive function theory,
computational complexity, and program correctness. Prerequisites: CS
240 and MAT 115.
CS 407 UNIX System Administration (4)
Topics will include: concepts involving system administration and maintenance procedures to facilitate normal system operation;
technical details regarding problems that could result from operating system malfunction as well as threats to system security
that are inherent in a multiprogramming environment; techniques and tools for hardware and software configuration management.
Prerequisite: CS 307; Corequisite: CS 330 or permission of instructor.
CS 409 Software Project Management (4)
This course presents different techniques for managing software projects and technical staff and familiarizes the student with
artifacts of project management. The topics to be covered include: user specification; project proposal; contracts; software cost
models and estimation techniques; project planning; implementation management; project delivery. Prerequisite: CS 370.
CS 420 Numerical Computing (4)
Basic techniques of numerical computation. Topics include: computer arithmetic and error control, solution of non-linear algebraic
equations including some non-linear optimization, polynominal interpolations including splines, curve fitting, integration, and an
introduction to differential equations. Emphasis will be on non-formal settings with a view toward applications. Prerequisites:
Calculus and proficiency in a high-level programming language.
CS 421 Computational Linear Algebra (4)
Computational aspects of linear algebra, including linear optimization models, are explored. Topics include: different algorithms
for solution of sets of linear algebraic equations, the eigenvalue problems, linear programming, clustering techniques, and software
requirements. Prerequisite: CS 240 and MAT 340 or equivalent.
CS 431 Principles of Programming Languages (4)
This course fosters a disciplined approach to the design of programs. Through carefully chosen assignments, the need for certain data
structures and programming language features is made apparent. Several different programming languages are used. Topics include:
structured programming, recursion, and string processing. Prerequisite: CS 240.
CS 441 Computer Systems Architecture (4)
After a higher level review of current mainframe architecture and operating systems, advanced architectures, proposed and implemented
for parallel computation, will be considered. The second half of the course will survey techniques for modeling and assessing performance
of computer systems and networks, with emphasis on probabilistic models. Prerequisites: MAT 225 and CS 220.
CS 445 UNIX Network Programming (4)
The course explores computer networks from the implementation and programming point of view. The network architecture and communication
protocols studied by the class allows connection of heterogeneous systems in an environment that may be geographically distributed.
Prerequisite: CS 240 and knowledge of UNIX and C.
CS 446 Local Area Network Architecture (4)
An intensive study of LAN architecture models for computer science students. Topics include: conten- tion-free and contention based models,
hybrid nets. LSLANs, integrated voice/video/data models. Prerequisites: CS 220 and CS 330 and knowledge of probability and calculus.
CS 450 Computer Graphics (4)
A conceptual and programmatic introduction to raster and vector graphics. Topics include object-oriented graphics application
programming interfaces, hierarchical modeling, concepts of scene graphs, geometric transformations and transform groups, behaviors
for animation and interaction, interactive tools for geometries and behaviors, classical application programming interfaces,
web-related graphics technologies, and graphics file formats. Prerequisites: CS 240 and MAT 115.
CS 451 Distributed Systems (4)
A conceptual and practical study of distributed software frameworks. Topics include socket-level distributed software programming,
distributed object computing application programming interfaces, infrastructures for distributed computing, naming and directory services,
transaction management, database access, security, resource management and resource pooling, persistence and state management, service
discovery mechanisms, major distributed object computing frameworks. Prerequisites: CS 240, CS 330.
CS 454 System Simulation (4)
An introduction to the basic techniques of systems modeling and analysis through systems simulation. Discrete and continuous system
simulation models, use of various simulation packages and analysis of simulation output are included for consideration. Prerequisites:
C, C++, or Java and senior status or permission of instructor.
CS 477 Algorithms (4)
How good is it? Is there a better algorithm to solve it? This course aims at developing a toolbox of algorithms for solving real
problems that arise frequently in computer applications and the principles and techniques for determining their time and space
requirements and efficiency. In addition, the general complexity spectrum is discussed to give students a grounding on intractability
and unsolvability. Prerequisites: MAT 115 and CS 240.
CS 480 Compiler Design (4)
Basic concepts of formal languages and automata theory, and their applications in compiler writing. Several practical parsing methods
are discussed. Prerequisite: CS 240.
CS 489 Cooperative Work-Study in Computer Science (Variable credit 1-4)
Student will be employed by a cooperating firm or agency. Periodic progress reports will be required. The depart- ment will provide
a list of cooperating employers, and the student will be required to interview for the position. Students are paid by the employer.
Prerequi- sites: Limited to computer science majors who have completed core courses and secured departmental approval. Additional
restrictions are on file with the department. Only S/U grades are awarded for this course.
CS 490 Selected Topics in Computer Science (Variable credit 1-4)
Coverage of a specialized computer science topic, of current interest but not adequately treated in regular course offerings.
The topic may, for example, be the theoretical and programmatic study of a methodology for a class of computational problems,
an introduction to a research area of computing, or an in-depth examination of the usage and internals of a software artifact or
framework. The same topic will not be repeated for at least two years. Prerequisites: CS 240 and MAT 115.
CS 491 Independent Study (Variable credit 1-4)
Extensive study and research on a particular topic of student interest under the supervision of a faculty member.
The student is required to submit a written proposal which includes a description of the project, its duration, educational
goals, method of evaluation, and number of credits to be earned. Prerequisites: Matricula- ted students only, permission of
instructor and dean of subject area.
CS 495 Artificial Intelligence (4)
An introduction to fundamental knowledge representation schemes and intelligent problem-solving techniques, and corresponding
implementation software artifacts. Both symbol system and biology/society-based approaches are covered. Topics include state space
heuristic search, constraint satisfaction, classical logic, fuzzy logic, Bayesian techniques, connectionism, genetic algorithms,
swarm and multi-agent intelligence, and planning. Prerequisites: CS 240 and MAT 115.
CS 498 Capstone Project (2)
Offers students the opportunity to integrate their knowledge of computer
science by completing a significant project. Periodic written and oral
presentations are required. Most students will complete, report on, and
present a project started while taking CS 370. Prerequisites: CS 330,
CS 350, and CS 370.
CSC 300 Computer Systems and FORTRAN Programming (4)
Basic concepts of computer science and computer programming. An introduction to computer hardware and applications programming
using FORTRAN. No prior knowledge of computers or computing expected. Computer science or computer systems majors will not receive
computer science credit for this course.
CSC 301J Introduction to Computing and JAVA Programming (4)
Basic concepts of computing and computer programming are covered. An
introduction to computing environments, the internet and applications
programming using JAVA. No prior knowledge of computers or
computing is expected. Course is for non-majors. Computer Information
Science/Systems majors will not receive Computer Science credit for
this course.
CSC 301V Introduction to Computing and Visual Basic Programming (4)
Basic concepts of Computing and programming with object orientation
using Visual Basic. Course is intended for beginners. Computer Science
and Computer Systems majors will not receive credit for this course.
CSC 310 Computers and Society (2)
A half-semester course examining the impact of computers in contemporary society. Topics include: components of a computer system,
uses of computers in various disciplines and professions, and problems of data security and privacy.
CSC 317 Computer Systems and C/C++ Programming (4)
The basic concepts of computer science and computer programming are covered. Computer hardware and applications programming using
C are also introduced. No prior knowledge of computers or computing is required. This course is intended for non-majors. Computer
Science or Computer Systems majors will not receive Computer Science credit for this course.
Computer Systems
IS 305 Application Programming with COBOL (4)
Problem solving, algorithm development, and application development using the COBOL programming language. Emphasizes user interface, calculations, data sorting, report writing, data manipulation, data validation, string operations, intrinsic functions, and file handling based on the structured/procedural paradigm. Programming tools that leverage the power of the COBOL programmer are included. Prerequisite: CS 240.
IS 310 Hardware and Network Infrastructure (4)
Conceptual and practical study of the computer hardware, connectivity devices, and other supporting artifacts that comprise enterprise
internal information systems and external systems like the public Internet. Topics include: fundamental digital logic; common integrated
chips and boards for computer organization; execution of processor instructions; device interfacing; peripheral devices; common abstractions
for enabling software development; major functions of an operating system; common connectivity devices and their operation. Prerequisite: CS
108.
IS 315 Networking of Information Systems (4)
An integrated study of fundamental principles and representative technologies underlying computer and device networks. Topics include:
key networking protocols and relevant implementation stacks; interconnection devices; sample distributed software frameworks; management
issues in networked computers and peripherals; deployment requirements for distributed software applications; common tools for the management
of networks and distributed software. Prerequisite: IS 310.
IS 320 Systems Analysis and Design (4)
Examines the process of logically developing information systems. Focuses on the analysis, planning, and logical design phases of
the systems development life cycle that culminate in the specification of functional system requirements. Concentrates on methods,
techniques, and tools used to determine information requirements and the documentation of these requirements in a thorough and unambiguous
form. Topics include: data collection; risk and feasibility analysis; requirements analysis; process modeling; data modeling; prototyping;
joint application development; rapid application development; structured walkthroughs; project management; presentations; report writing.
Prerequisite: CS 240.
IS 324 SQL Programming (4)
Designed to develop SQL programming proficiency. Emphasis is placed on
the Data Definition Language (DDL) and Data Manipulation Language
(DML) of SQL. Upon completion, students should be able to write SQL
statements which create, update, and maintain database tables as well as
write SQL queries to manipulate data in database tables. Prerequisite:
CS 108 or equivalent knowledge. Students may not receive degree credit
for both IS 324 and IS 325.
IS 325 Database Management Systems (4)
Introduction to fundamentals of database management systems, techniques for database design, and principles of database administration.
Emphasizes data modeling, database design, database application development, and database management. Topics include conceptual models;
logical models; normalization; query languages; architectures such as centralized, distributed and client/server; database integrity;
database security; error recovery; and concurrency control. Prerequisite: CS 240.
IS 330 Decision Support and Intelligent Systems (4)
An introduction to the fundamentals of Decision Support Systems (DSS). Focuses on the logical aspects of data processing and analysis.
Topics to be discussed include historical review of computerized decision support, DSS architecture. Data Warehouses, Online Analytical
Processing (OLAP), and Data Mining. The student is introduced to the principles of Intelligent Systems with an emphasis on Expert Systems
(ES) and Artificial Neural Networks (ANN). The organizational and business implications of decision support systems are reviewed.
Prerequisite: CS 240.
IS 340 E-Commerce (4)
An introduction to the fundamentals of e-business and e-commerce. Topics to be discussed include e-business models, principles of
electronic business transactions, Electronic Data Interchange (EDI), electronic checks, and digital cash. The student is introduced
to the protocols of secure e-commerce including the basics of cryptography, digital signatures. Secure Sockets Layer (SSL), Secure
Electronic Transaction Protocol (SET). The languages and e-commerce technologies to be discussed include Java, JavaScript, XML, intelligent
agents, and Database Management Systemsetworking protocols. Prerequisite: CS 240.
IS 469 Information Technology Project Management (4)
Enables students in the information technology area to understand
project management principles for IT programs and be able to apply these
principles to successfully manage IT projects. Covers the essentials of IT
project management which include attributes of projects, project integration
management, project scope, time, and cost management, project quality and
risk management, human resources and communications management,
and procuring IT projects and services from outside agencies. Includes
individual and group assignments and activities, including a group case
study, where students can apply what they have learned to real-life
situations. Prerequisite: IS 320.
IS 470 Database Programming (4)
Provides rigorous coverage of database programming using the Structured Query Language (SQL) and SQL coupled with other programming
languages. Topics include: database management systems (DBMS); data definition; data manipulation; data control; database administration;
report generation; DBMS built-in and programmer-created procedures, functions, packages, and triggers. Prerequisite: IS 325.
IS 490 Special Topics in Systems (Variable credit 1-4)
An in-depth treatment of a selected topic not normally treated extensively in other Information System courses. The subject matter
covered in this course will not be repeated in a future semester.
IS 491 Independent Study/Information Systems (Variable credit 1-4)
Extensive study and research on a particular topic of student interest under the supervision of a faculty member. The student is
required to submit a written proposal which includes a description of the project, its duration, educational goals, method of evaluation,
and number of credits to be earned. Prerequisites: Matriculated students only, permission of instructor and dean.
IS 495 Computer Information Systems Practicum (2) Capstone course for Computer Information Systems (CIS) majors. Students form teams and each team spends an entire semester working to satisfy a set of requirements for a real-world organization. Teams will gain experience in all phases of the systems development life cycle (SDLC) and project management. Periodic written and oral presentations are required. Success requires student teams to work as a cohesive unit which draws upon components of the entire CIS curriculum. Prerequisites: IS 310, IS 320, and IS 325.
MAT 115 Finite Mathematics for CS (4)
A rigorous introduction to discrete mathematics as it is used in computer science. Topics include functions, relations, sets,
propositional and predicate logic, simple circuit logic, proof techniques, elementary combinatorics, and discrete probability.
Prerequisite: MAT 111 or equivalent.
Direct any questions about the program to: Ronald Sarner, Department Chair.
