Skip to main content
Switch to text-only version
Get accessibility information and assistance

Back to the index of course descriptions



Computer Science

CS 101 Computers and Society (3)
This course provides an introduction to the computer’s role in society. The student will become familiar with current computer terminology and will use applications software, including a word processor. Co-requisite: CS 101L must be completed concurrently


CS 121 Computer Applications (2)
Class covers standard office applications for a personal computer. Currently the class uses the Microsoft Office suite of applications and includes intermediate Microsoft Word, basic and intermediate Microsoft Excel and basic Microsoft Access. As time permits, presentation software (Microsoft Power Point) and Web page editing software (Microsoft FrontPage) will be covered as well.


CS 122 Introduction to Computer Science for Non-Majors (3)
History and overview of fundamental concepts of computer science. Topics include: introduction to computer hardware and the role of an operating system; data communications and networks; the history and future of the internet and the world wide Web; issues in computer privacy, computer security, computer ethics and computer crime; buying and upgrading a personal computer system; and careers in computing. This course not open to students who have already taken CS 121 for 5 credit hours.


CS 160 Survey of Computer Science (3)
Introduction to the study of computer science. Topics will include: binary and hexadecimal number systems; data representation in binary, including signed and unsigned fixed and floating point values; pseudo code and algorithm representation using pseudo code; use of a simple machine simulator to understand basic operation of a machine; and an introduction to data structures and object-oriented design using pseudo code. A term paper or project will be required.


CS 161 Computer Science I (5)
Formulation of problem specifications, development of algorithms, program design, structured programming concepts, program execution and documentation. Three hours of laboratory is required in addition to the lectures. Prerequisite: CS 160 recommended


CS 162 Computer Science II (5)
Course covers algorithms for external file processing and concepts associated with data abstraction. Examples will include linked lists, stacks, queues and trees. Three hours of laboratory is required in addition to the lectures. Prerequisite: CS 161


CS 195 Fundamentals of Web Design (3)
Fundamentals of web design using Macro-media software. Focuses on the overall production processes surrounding Web design. Emphasizes design elements involving layout, navigation and interactivity. Includes hands-on web design exercises using Dreamweaver, Flash, Fireworks and FreeHand.


CS 199 Computer Science Topics (1-6)
Course content will vary. Topics are selected relative to new subject areas in computer science appropriate to freshmen level.


CS 221 Advanced Computer Application in Business (2)
An introduction to integration of software applications, advanced spreadsheets, macros, and relational databases. Course will improve students’ understanding of DOS commands, introduce disk management techniques and increase students’ ability to use a microcomputer efficiently. Supplemental topics may include desktop publishing and presentation graphics. Prerequisite: CS 121


CS 222 Computer Systems Management (3)
Provides hands-on experience in assembling, installing and maintaining computer hardware and software systems.


CS 260 Data Structures I (3)
Course studies the merging of abstract data types and the algorithms which manipulate them. Topics could include: the study of the elementary searching and sorting algorithms, the use of abstract data types such as stacks, queues and trees, and an introduction to complexity analysis. Prerequisite: CS 162, MTH 111, MTH 231 (or concurrent), or MTH 251 (or concurrent)


CS 262 Programming Languages (2)
Computer applications using the language designated. Prerequisite: CS 162


CS 271 Computer Organization (4)
Logical organization, computer hardware, introduction to assembly and machine language programming. Prerequisite: CS 162


CS 272 Low Level Programming (3)
Programming techniques that require programmer to be aware of the computer’s hardware organization. Approximately one-half of the class will be devoted to an introduction to assembly language programming, and the remainder of the class will consider aspects of the C programming language such as: pointers, dynamic memory allocation, the address operators and the bitwise operators. Prerequisite: CS 162


CS 299 Topics in Computer Science (1-6)
Course content will vary. Topics are selected relative to new subject areas in computer science appropriate to sophomore level.


CS 311 Data Structures II (3)
A continuation of CS 260, where topics could include advanced searching and sorting algorithms, a further treatment of the data type trees into AVL trees, B-Trees and B+Trees, the inclusion of external file manipulation algorithms, graph structures and further study of complexity analysis and classes. Prerequisite: CS 260, and either MTH 231 or MTH 251


CS 315 Theory of Programming Languages (3)
Programming language paradigms and implementation issues form the major content of this course. Paradigms studied include at least imperative, functional, logic and object oriented languages. Students will learn how to approach problems from the viewpoint of each of the paradigms. Implementation issues studied may include language evaluation criteria, forms of abstraction, scoping rules, parameter types, control structures, data typing, static vs. dynamic issues. Prerequisite: CS 311


CS 340 Ethics and Information Management (3)
Acquaints students with the contemporary or possible future moral problem that arises due to computerization. Gives students a deeper understanding of the nature of morality or the nature of society. Help students understand the relationship between deep human needs, socioeconomic institutions and technology. Prerequisites: CS 160 and junior standing


CS 344 Discrete Structures (3)
Designed for students in computer science. Topics include: mathematical reasoning and methods of proof, sets, relations, functions, partially ordered sets and lattices, groups Boolean algebra, propositional and predicate calculus, recurrence relations and graph theory. Prerequisite: MTH 231


CS 345 Theory of Computation I (3)
Introduction to the theoretical models of computing, i.e. finite automata, pushdown automata and Turing machines are covered, along with a basic discussion on the classification of algorithms. Prerequisite: CS 260, and either MTH 231 or MTH 251, and MTH 354 (or concurrent)


CS 350 Network Administration (3)
Course provides an understanding of local area networks using the OSI model. Topics include network hardware, software and protocols. Students will gain hands-on experience with network administration tasks for popular network environments. Prerequisite: CS 162, MTH 111, MTH 231 (or concurrent) or MTH 251 (or concurrent)


CS 355 UNIX Fundamentals (3)
Introduction to the UNIX operating system. Emphasis on using a UNIX-based or a Linux-based computer and some basic system administration tasks. Covers fundamental UNIX commands and utilities, including the use of a text editor and a mail handler, configuring a shell, the UNIX file system organization, managing processes in a multiprocessing system and writing simple shell scripts. Other topics that may be covered: the X window system, C programming in a UNIX environment and UNIX pattern matching utilities such as awk. This class assumes no previous experience with the UNIX operating system. Prerequisite: CS 162


CS 372 Operating Systems (3)
Introduction to Operating Systems as managers of systems resources. Management of tasks, memory and peripheral devices is explored. Topics include task synchronization, message handling, file management, demand paging, scheduling and dispatching.
Prerequisites: CS 260, CS 271


CS 399 Topics in Computer Science (1-6)
Course content will vary. Topics are selected relative to new subject areas in computer science appropriate to junior level.


CS 406 Special Topics (1-4)
Course is to be offered on an individual student basis. It is designed to support students in investigating the application of programming methods to problems related to their declared major.


CS 407 Seminar (1-4)
Terms and hours to be arranged.


CS 408 Workshop (1-4)
Terms and hours to be arranged.


CS 409 Practicum (1-9)
Offers practical experience working in a computer science department for area businesses and industries.


CS 420 Database Management Systems (3)
Database system architecture; relational, hierarchical and network approaches. Security and integrity of data bases. Prerequisite: CS 260 or IS 320


CS 424 Expert Systems (3)
Course provide an introduction to both the construction of knowledge-based systems and the study of the underlying inference mechanisms. Both diagnostic and constructive systems will be studied. Additional topics may include the study of the development of expertise, the testing and maintenance of knowledge-based systems and their potential impact upon organizations. Prerequisites: CS 311 and CS 315


CS 425 System Analysis and Design (3)
This course requires students to work as a group for the solution of a large scale project. An interactive approach of design and analysis is used while prototyping and other alternative strategies are discussed. This term is devoted to the thorough design and documentation of a software product. Current software tools are integrated into the course, e.g. dataflow systems, version control systems, etc. Prerequisite: CS 420


CS 430 Software Implementation and Testing (3)
A continuation of the CS 425 course where the students, in groups, perform implementation of a designed software product. The emphasis is on unit testing, integration of the system and final testing of the product. Documentation and testing are the emphases. Prerequisite: CS 425


CS 440 Analysis of Algorithms (3)
A variety of algorithms are examined in terms of their demands on the resources of space and time. The trade-offs between space and time utilization is weighed so that the appropriate algorithm will be used for a particular situation. The techniques for doing a detailed algorithm analysis are covered. A theoretical component on the classes of algorithms is included. Prerequisite: CS 311


CS 445 Theory of Computation II (3)
This course explores the mathematical foundation of computer science. The various levels of automata theory are covered along with their deterministic and non-deterministic counterparts. Emphasis is on identifying the gain in “power” as each new machine is introduced and the implications of the class of problems each is able to solve. Finally, a tie is established between the theoretical models and the modern day algorithms which can be described by these models. Prerequisites: CS 311 and CS 345


CS 447 Compiler Design (3)
This course includes the theoretical discussion of the complexities of a modern compiler, along with the examination of the algorithms necessary to implement the same. Programming tools such as LEX and YACC are used. All phases of a compiler are implemented. Prerequisites: CS 311 and CS 345


CS 449 Topics in Computational Theory (4)
This course covers topics of special or current interest in the area of computational theory that are not covered in other courses.


CS 450 Network Programming (3)
Introduction to networking software and protocols. Students will learn about the design and implementation of common network protocols such as TCP/IP and HTTP. Programming assignments may include developing client and server software using sockets, RMI or CORBA, Web services and message oriented middleware. Prerequisite: CS 260


CS 451 Management of Information Systems (3)
Course examines current methods for creating a Web application. This course includes programming techniques used on various platforms appropriate for the creation of a Web application. Prerequisite: CS 260


CS 452 Internet Communications (3)
Comparing different network models. Focus on wide area networks and communication with routers, and switches. Management of Web servers will also be covered. Prerequisite: CS 450


CS 453 Data Mining and Data Warehousing (3)
Develop essential information and guidance on designing and building effective data warehousing systems. Data warehousing will develop tools, concepts and approaches to organize vast stores of information. This course explains what data warehousing is, how it works and why the survival of many businesses in the 21st century will depend on leading-edge information architectures. Prerequisite: CS 420


CS 459 Topics in System Management (3)
This course covers topics of special or current interest in the area of system management that are not covered in other courses.


CS 460 Introduction to Information Assurance (3)
Overview of terminology, concepts, issues, policies and technologies associated with the fields of information and software assurance. Covers the notions of threats, vulnerabilities, risks and safeguards as they pertain to the desired information security properties of confidentiality, integrity, authenticity and availability for all information that is processed, stored or transmitted in/by information systems. Prerequisites: CS 372 or IS 270 and CS 350 or CS 450


CS 469 Topics in Information Assurance (3)
Covers topics of special or current interest in the area of computer security that are not covered in other courses.


CS 470 Human Machine Interfaces (3)
Course focuses on developing understanding of the structure and use of GUI operating system services. Exploration of several key ideas: 1) classical vs. event-driven programming; (2) structures common to all GUI systems; 3) direct system call level programming vs. Class library level programming; 4) Internet GUI systems (Active X and Java). Student will gain hands on experience programming GUI’s using Visual C++ and the Microsoft Foundation Classes, Win32 api (C code) and Java AWT and Swing class libraries. Prerequisite: CS 311


CS 471 Metrics and Testing (3)
Course covers principles of systematic testing of software systems, software verification, symbolic execution, software debugging, quality assurance, measurement and prediction of software reliability, project management, software maintenance, software reuse, reverse engineering. Emphasizes the process of software testing and different testing techniques and methodologies used in the industry. Also covers topics related to the management of a testing project. Prerequisite: CS 430


CS 472 Operating Systems - Advanced Topics (3)
Project-oriented course for senior computer science majors who wish to explore advanced program development techniques utilizing operating system services. Students will develop an understanding of the structure and purpose of distributed operating systems including process control, file systems, input/output systems and memory management. Hands-on experience in advanced development of applications focusing on the development of distributed and client/server applications. Prerequisite: CS 372


CS 474 Concurrent Systems (3)
Study of parallel architecture and parallel programming paradigms. A comparison of large grain and fine grain programming methods. Topics also include: process creation and termination, shared and private data, scheduling algorithms and interprocess communication. Prerequisite: CS 311


CS 475 Applied Computational Intelligence (3)
Introduction to the field of artificial intelligence, including symbolic reasoning, first order logic, heuristic search, game playing, intelligent agents, planning and machine learning. Major successes and failures of the past plus current predictions of the future of AI will be discussed. Students will complete short programming assignments that apply AI concepts. Prerequisite: CS 315


CS 479 Topics in Software Engineering (3)
Course covers topics of special or current interest in the area of software engineering that are not covered in other courses.


CS 481 Computer Graphics (3)
Basic principles for the design, use and understanding of computer graphics. Algorithms for creating and manipulating graphic displays using a graphics kernel system are examined. Also examines hardware and software components of graphics systems. Prerequisite: CS 260


CS 482 Modeling and Simulation (3)
Design and construction of computer models. Use of these models will be used to simulate the behavior of the modeled system 1) to better understand the system, 2) predict how it might behave under different circumstances 3) find ways to improve the “performance” of the system. Covers both discrete and continuous system models. Study of the process of “translating” one’s mental models into a computer modeling language in order to perform simulations. Prerequisite: CS 260


CS 483 Systems Administration (3)
Prepares student to be a system administrator for an enterprise level server. Operating system and server to be studied will be chosen from among the currently available systems. Prerequisite: CS 450


CS 484 Neural Networks (3)
Explores computation in massively interconnected networks of simple, autonomous processing elements. Examines the ideas motivating connectionist computation, how neural nets have been successfully applied to engineering tasks and cognitive modeling. Students will complete individual projects exploring the computational properties of neural networks. Students are expected to be comfortable with calculus and simple matrix operations. Prerequisite: CS 311


CS 600 Fundamentals of Computer and Information Systems (4)
Explores the history, current and future role of information systems. Topics include systems theory, computing systems components and systems development.


CS 606 Special Topics (1-4)
Course is to be offered on an individual student basis. It is designed to support students who need to investigate topics not covered in existing courses. Prerequisites: CS 600 and CS 610


CS 607 Special Topics (1-4)
Special course offerings. Prerequisites: CS 600 and CS 610


CS 609 Practicum (1-9)
Offers credit for a practical work experience where advanced computer science skills are developed and/or utilized. Course must be managed by a computer science faculty member. Prerequisites: CS 600 and CS 610


CS 610 Programming Languages (4)
Become familiar with high level programming languages and develop competency in an object-oriented programming language.


CS 620 Database and Information Systems (4)
Covers database theory and applications of databases. Focus on data modeling and data design. Relational databases and object-oriented databases will be examined. Students will construct an information system using current database tools. Prerequisites: CS 600 and CS 610


CS 630 Software Engineering (4)
Techniques and methods for successful project analysis/design. Tools used to measure and track stages of the project life cycle are examined. Prerequisites: CS 600 and CS 610 or equivalent


CS 650 Networks and Communications (4)
Current and future role of the networked work place will be explored. Communication protocols will be explained and examined. Prerequisites: CS 600 and CS 610


CS 660 Algorithms and Computational Theory (4)
Examines the foundational tools of computer science. Specific topics include what is possible to compute, and if possible, how reasonable is it to compute in terms of time and space. Examples will be described through the use of abstract mathematical models and machines. Prerequisites: CS 600 and CS 610


CS 670 Computer Architecture and Operating Systems (4)
A survey course covering various aspects of operating systems and computer architecture. Students will develop an understanding of the structures and purpose of operating systems including process control, file systems, input/output systems and memory management. Students will also study the components of a general-purpose computer system–CPU, memory and peripherals–and how they connect to each other by means of buses. Prerequisites: CS 600 and CS 610


CS 680 Knowledge Based Systems (4)
Theoretical and practical aspects of decision support and artificial intelligence. Provides a detailed understanding of the broad issues in artificial intelligence and a survey of current AI technology. Broad coverage of innovative representational techniques, including neural networks, image processing and probabilistic reasoning, alongside traditional methods of symbolic reasoning. Prerequisites: CS 600 and CS 610


CS 690 Modeling and Simulation (4)
A study of both discrete and continuous system simulation. Model design and model life-cycles will be explored. Students will build models using current simulation packages. Prerequisites: CS 600 and CS 610



Back to the index of course descriptions 


Office of the Registrar ph: 503-838-8327; fax: 503-838-9696 | or e-mail: