Computer Science


CS 110 Website Production 3 SH
Using a problem-solving based approach, students will be introduced to the various aspects of website production including problem specification, requirements analysis, image, video, audio, HTML, VRML, and programming using a scripting language such as JavaScript. Through the use of interactive, hands-on sessions, students will be able to construct a website that satisfies a specific set of requirements. Not for CS major credit. Fall and spring semesters. Prerequisite: MAT 100 or appropriate placement. General Education: Computer Science.

CS 135 Introduction to Problem Solving with Computers 3 SH
Beginning with an historical perspective, students will first be introduced to various computer concepts including data and information processing, and networks. Students will explore various computer-based problem-solving strategies such as flow-charting, numerical modeling, data abstraction and algorithm design. Subsequently, students will be introduced to several computer applications that provide the tools necessary to implement these strategies. Not for CS major credit. Fall and spring semesters. Prerequisite: MAT 100 or appropriate placement. General Education: Computer Science.

CS 140 Introduction to Programming 4 SH
This is a first course in computer programming using a high-level programming language such as Java, JavaScript, Visual Basic.Net, C#, etc. The registration booklet will indicate the language used in each section of the course. The course emphasizes problem solving and sound programming practices. No previous programming experience is necessary. During this course, students will learn how to construct algorithms and convert them into computer programs using typical flow control statements and data types. Not for CS major credit. Fall and spring semesters. Prerequisite: MAT 100 or appropriate placement. General Education: Computer Science.

CS 143 Visual BASIC 3 SH
This is a first course in programming. No previous programming experience is necessary. Student will learn how to write interactive windows-based programs that solve real problems in their major field. Students will learn how to construct algorithms and convert them into computer programs using all the typical flow control statements, data types, and aggregate data structures. Program interfaces will consist of the common window controls such as menus, buttons, list boxes, combo-boxes, common dialog boxes, scroll bars and multiple forms. Not for CS major credit. Fall and spring semesters. Prerequisite: MAT 100 or appropriate placement. General Education: Computer Science.

CS/MAT 165 Introductory Discrete Mathematics 4 SH
See MAT/CS 165. General Education: Math

CS 166 Introduction to UNIX 3 SH
An introduction to problem solving and algorithmic development. The fundamentals of the UNIX operating system concepts, architecture and administration are covered. Topics will include: the functions of an operating system and how UNIX fulfills that role, the file system, shells, scripting, utilities and system administration. The course emphasizes problem solving and basics of computer programming in UNIX/Linus computing environment. Not for CS major credit. Fall semester. Prerequisite: MAT 100 or appropriate math placement score. General Education: Computer Science.

CS 170 Computer Science I: Language 4 SH
An introduction to a modern programming language (C++) and its use in constructing programs that solve a variety of problems. The software development process is emphasized. The course will include a significant amount of project work. Fall and spring semesters. Prerequisite: CS 140 or CS 143 or permission of the instructor.

CS 171 Computer Science II: 4 SH Data Structure
This course is a continuation of CS 170. It includes an introduction to the abstract data types: stacks, queues, lists, trees and graphs and their implementation. Another major topic area is the development of object-oriented programs where real-world objects and processes are modeled with classes. Fall semester. Prerequisite CS 170; Prerequisite or Corequisite: CS/MAT 165.

CS 200 Applied Topics 3 SH
This course provides students with an exploration of the use of computing in an applied area. Each offering of this course will focus on a chosen applied computing topic (robotics, computer art technology, databases, etc.) and provide students with an environment within which they can learn, through discovery, how computing will affect their lives. Prerequisite: CS 110 or CS 135 or CS 140 or CS 143 or CS 166 or permission of the instructor.  General Education: Computer Science.

CS 205 Data Modeling & Database Design 4 SH
An in-depth introduction to information management techniques with emphasis on data modeling and relational database design. Topics include conceptual data modeling, relational database design and normalization, database query languages, schema integration and integrity constraints, physical database design, and database usability issues in a shared environment. Students will design and implement a database application working from the E-R modeling stage through to the actual implementation. Fall semester. Prerequisite: CS 140 or CS 143 or CS 170.

CS 215 Computer Architecture 4 SH
An introduction to logic circuit design, computer hardware, and microprocessors. Topics include the study of finite state machines, control units, arithmetic units, main memory, IO systems, interrupts, and computer peripherals. Spring semester. Prerequisite: CS 140 or CS 143 or CS 170.

CS 235 Digital Media 4SH
This course explores, from a technical point of view, the many ways that computers are used to produce both still and animated images. Topics include: color theory, computer graphics hardware, imaging algorithms, graphics file formats, and analysis of related software applications. Prerequisite: CS 170 or 144 or 250; ART 108 or 111.

CS 240 Computer Organization and Software 4 SH
The study of software concepts and hardware components (at the register level). Students will use all of the software tools (compilers, an assembler, linker, object librarian, debugger, make facility) to write programs which will illustrate low-level implementation of programming concepts and machine control. Spring semester. Prerequisite: CS 171.

CS 245 Web Applications Development 4 SH
This course provides a thorough coverage of web application development. Students learn how to use HTML and XHTML features along with one of the scripting languages such as JavaScript or VB script, and are exposed to a selection of server side technologies such as Active Server Pages (ASP) and Java Server Pages (JSP). Students choose their implementation tools based on their previous programming background. Students also learn advanced features of various technologies such as cascading style sheets, objects and collections of objects and the HTML event model for dynamic document formatting. Prerequisite: CS 250 or CS 144 or CS 170 and CS 205.

CS 250 Advanced Topics in Programming using Java 4 SH
This course quickly covers all the fundamental concepts in the Java Language and then concentrates on more advanced topics such as events, various collection classes, the serialization of objects, multi-threaded programming, database connectivity, network programming with sockets, applets, and servlets. Prerequisite: CS 140 or CS 170 or a background in object-oriented programming.

CS 285 Artificial Intelligence 4 SH
The field of artificial intelligence (AI) is concerned with the design and analysis of autonomous agents. Artificial intelligence also provides a set of tools for solving problems that are difficult or impractical to solve with other methods. These include: heuristic search and planning algorithms, for knowledge representation and reasoning, machine learning techniques and methods applicable to sensing, and action problems such as speech and language understanding. The student needs to be able to determine when an AI approach is appropriate for a given problem and to be able to slect and implement a suitable AI method. Prerequisite CS 250 or 144 or 171; MAT 165 strongly recommended and Junior standing.

CS 297 Cooperative Education 1–9 SH

CS 298 Faculty Developed Study 1–4 SH

CS 299 Student Developed Study 1–4 SH

CS 315 Design and Analysis of Algorithms 4 SH
The design, implementation, testing and analysis of various algorithms. Methods such as divide and conquer, dynamic programming as applied to problems in sorting, sets, trees and graphs will be studied. The analysis of algorithms, including questions of correctness, efficiency and complexity will be studied. Fall semester. Prerequisite: CS 171 and MAT 181 or MAT 171.

CS 330 Computer Graphics 4 SH
The fundamentals of computer graphics including typical hardward and software configurations, raster and vector graphics, and common graphics standards. Graphics primitives (both 2D and 3D) and attributes will be used in developing computer programs. Prerequisite: CS 144 or 250 or 171 and Junior standing.

CS 340 Computer Animation 4 SH
An exploration of the theory and application of computer animation. Students will participate in both a lecture component covering both traditional and computer animation concepts, and a project component consisting of the creation of an animation including of at least two objects in motion, and including one or more advanced concepts presented during the lecture component of the course. Alternate fall semesters. Prerequisite: CS 144 or CS 171 or CS 250 and Junior standing.

CS 350 Object Oriented Software Engineering 4 SH
This course addresses the application of theory, knowledge, and practice for effectively and efficiently building software systems that satisfy the requirements of users and customers. Central topics are software quality, evolution, reuse and cost. The methods introduced are applicable to small, medium, and large-scale systems. The course emphasizes modern object-oriented methodology and encompasses all phases of the life cycle of a software system, including requirements specification and analysis, design, construction, testing, and operation and maintenance. Students participate in a team project for development of a medium-size system. Prerequisite: CS 171 and CS 205.

CS 351 Independent Study 3 SH
Designed for students who show above average ability and interest in computer science, this course allows the student to study advanced topics not included in standard course offerings. Approval from the chair of the Department of Computer Science is required. Fall and spring semesters

CS 355 Programming Languages 4 SH
Formal definition of programming languages, including specification of syntax and semantics. Types of languages and their uses. Organization of compilers illustrating compilation of simple expressions and statements. Fall semester. Prerequisite: CS 171, CS 240, and MAT 165.

CS/MAT 359 Introduction to the Theory of Computation 3 SH
See MAT/CS 359.

CS 360 Distributed Applications Engineering 4 SH
This course introduces principles of software engineering with emphasis on building distributed applications. After an introduction and overview of the fundamentals of networking and inter-process communication, students will study, through examples and case studies, the architecture of typical distributed applications. They will build programs for the primary components of distributed architectures. The course will cover interprocess communication, remote method invocation and CORBA, security issues, WEB client-server computing, distributed transactions, the role of data replication in distributed systems, and distributed multimedia systems. This course will be an elective in the computer science program unless it is being substituted for the required course CS 350. Prerequisite: CS 205 or MIS 301, and CS 245 or CS 250.

CS 385 Data Mining 4 SH
This is an introductory course in Data Mining, an evolving and growing interdisciplinary area of research and development, both in academia as well as in industry. Along with the traditional concepts and functions of data mining, like classification, clustering, and rule mining, students will be introduced to the current issues related to mining in Web and in multimedia applications. This course is an elective in the computer science program. Prerequisite: CS 171 and Junior standing.

CS 399 Honors Project 3 SH
This course requires that each student implement a programming project in an area selected by the student and approved by the instructor. The student will be expected to: 1) investigate the project area in the current literature and 2) make a final oral report at an “open seminar.” The student who passes this course with an ‘A’ and maintains at least a 3.5 average in computer science course at the university will be considered to have graduated ‘With Honors in Computer Science.’ Fall and spring semesters. Prerequisite: CS 355 and CS 450 and in all CS/MAT required courses a GPA of 3.5 or higher.

CS 410 Compiler Construction 4 SH
Phases of a compiler: scanning, parsing, internal representation, code generation and optimization; tools for compiler development; and a compiler for a simple language will be studied. Programming projects will be required. Prerequisite: CS 240 and CS 350.

CS 444 Computer Networks 4 SH
An introduction to computer networks and data communications. Course work includes a study of network organization, telecommunication principles, network software and hardware, and examples of existing networks. Data communications: concepts, modes, devices, coding theory, and systems structures as well as networks types, structures, topologies, and protocols will be studied. ISAO reference model: protocol layers and functions; LAN and WAN; Wireless MANs and LANs, home networking, communication protocols, PTP networks, network programming, Client/server programming, Web programming, and computer networks security. Network programs will be implemented using operating system services, and high level language (e.g. Java) Prerequisite: CS 315 and MAT 120.

CS 450 Operating Systems 4 SH
A study of the history, evolution, philosophies, and structures of operating systems (OS). An introduction to: concepts processes, resource management, virtual machines, scheduling, memory management, file systems, device management, allocation techniques, memory protection, virtual memory, paging and segmentation, the role of the OS in security and protection, OS interface and distributed/network OS concepts. The course includes detailed comparative study of features and architecture of current operating systems. Fall semester. Prerequisite: CS 215 and CS 240 and Senior standing.

CS 484 Special Topics in Computer Science 4 SH
An examination of one or a few related emerging topics in computer science. The topics in this course will be announced by the middle of the previous semester. Prerequisite: CS 350 and Junior standing.

CS 484 Special Topics in Computer Science 4 SH
An examination of one or a few related emerging topics in computer science. The topics in this course will be announced by the middle of the previous semester. Prerequistie: CS 350 and Junior standing.

The following courses also have been approved and are offered periodically:
CS 144 Advanced Visual BASIC
CS 201 Computer Language Topics
CS 235 Digital Media
CS 270 Computers in Society
CS 285 Artificial Intelligence
CS 305 Database Applications Engineering
CS 330 Computer Graphics
CS 340 Computer Animation

Related Links: