Course Catalog
CpSc 110: Computer Concepts
A computer literacy course stressing the use of applications software on personal computers. It covers a survey of computers and their impact on society and the use of word processing software. Other application software is also covered, such as spreadsheets and database software, but the particular applications examined may vary from section to section.
Credits:3
CpSc 130: Introduction to Programming and Information Systems
An introductory course devoted to programming and to a description of hardware and software concepts. Programming concepts covered include top-down program development using pseudocode, algebraic notation, standard control structures, and arrays in an appropriate programming language. Other topics include binary representation, storage, and general architecture and functioning of a computer system.
Credits:3
Prerequisites:
| ACSD | 110 | Beginning Algebra |
CpSc 140: Introduction to Programming Principles
Techniques are stressed that enable systematic development of clear, correct programs. Other topics include data types, algebraic notation, standard control structures, functions; input/output, arrays, and program testing and debugging.
Credits:3
Prerequisites:
| ACSD | 110 | Beginning Algebra |
CpSc 150: Advanced Programming Principles
This course places its emphasis on data and their role in software development. Such a study relies on a two-step approach to data abstraction. In the first step, data must be viewed as abstract objects. These objects are selected and specified so as to be useful in the solution of programming projects. In the second step, the abstract objects are translated into program data structures. An extensive examination of data structures provides the student many opportunities to explore the issues of implementing data abstractions.
Credits:4
Prerequisites:
| CpSc | 140 | Introduction to Programming Principles |
| ECON | 219 | Business Statistics |
| Or MGMT | 219 | Business Statistics |
| Or MATH | Beyond Math 120 | |
| Or | Permission of the Instructor |
CpSc 207: System Software and Architecture for End Users
This course introduces the student to prevalent operating systems and the hardware and networking of those systems. User level commands in the current PC operating system and the Unix operating system for managing files, system utilities, and task management are introduced. The architecture of the PC and how it relates to the OS is discussed conceptually and physically examined. The hardware and software required for inter-connecting systems are discussed.
Credits:3
CpSc 210: Productivity Software
An in-depth, practical study of existing productivity software packages that focuses primarily on decision-support systems for microcomputers. Projects will involve the use of intermediate and advanced features of various software packages, as well as the use of several packages in finding computer-based solutions to information storage and retrieval problems. Prerequisite: Microcomputer proficiency.
Credits:3
Prerequisites:
| Microcomputer proficiency |
CpSc 212: Computers in Education
A survey of ways computers are used in education, with emphasis on both secondary and elementary education. Practical work in computer-aided instruction is provided.
Credits:3
Prerequisites:
| Progress in an Education program |
CpSc 217: Structured and Dynamic Web Programming
This course is designed to cover the features of popular programming languages specifically for creating web pages. Mouse rollovers, browser detects, pop-up windows that launch when a web page loads or in response to specific actions, and form data-checking are just a few of the most popular uses of web programming languages that will be discussed. Programming will be done in a representative programming language.
Credits:3
Prerequisites:
| CpSc | 130 | Introduction to Programming and Information Systems |
| CpSc | 140 | Introduction to Programming Principles |
CpSc 236: Selected Computer Languages
A selected prevalent computer language(s) other than those taught regularly in other Computer Science courses will be studied and used for programming from an advanced point of view. Topics will include data structure, control structures, data control, modularization and other features of the language. Special applications, if any, of the language will be studied. The student is expected to have programming expertise in at least one other language. For different languages, this course may be repeated for credit toward graduation, but not toward a computer science major or minor.
Credits:3
Prerequisites:
| CpSc | 150 | Advanced Programming Principles |
CpSc 300: Challenges of Computer Technology
An in-depth study of the critical issues related to the computerization of society. Ethical, legal, and moral issues raised by the evolution of computer technology will be discussed.
Credits:3
Prerequisites:
| Advanced Standing |
CpSc 301: Practical Computer Security
A practical introduction to the threats present to the online, electronic community, and how to protect yourself and your organization from them. We will explore the connectivity structure of the Internet, along with the security and criminal threats to members of the online community. The legal, ethical and technical issues related to threats such as viruses, worms, and identity theft will be covered.
Credits:3
CpSc 305: Introduction to Expert Systems
An overview of the purpose, structure, and applications of expert systems. Topics covered will include expert systems technology, knowledge engineering, applications of expert systems, expert systems development, and the future of expert systems.
Credits:3
Prerequisites:
| Microcomputer proficiency |
CpSc 317: Scripting Languages
This course emphasizes programming using scripting languages for the purpose of collecting and manipulating system information by system administrators and managers. Programming concepts such as data types and control structures will be discussed as well as operating system commands. A variety of languages and utilities will be discussed such as the Bourne shell, Perl, awk, and the Common Gateway Interface. The student is expected to have programming experience and knowledge of the Unix and Windows environments.
Credits:3
Prerequisites:
| CpSc | 207 | System Software and Architecture for End Users |
| CpSc | 217 | Structured and Dynamic Web Programming |
CpSc 323: Database Systems
Database Systems is a study of relational database concepts as applied to comprehensive information systems. These concepts include data design; modeling; normalization; the use of Structured Query Language (SQL) to define, manipulate and test the database; programmatic access to a database; and practical issues faced by database developers.
Credits:3
Prerequisites:
| CpSc | 130 | Introduction to Programming and Information Systems |
| Or CpSc | 140 | Introduction to Programming Principles |
| Or CpSc | 210 | Productivity Software |
CpSc 327: Systems Administration and Security
Students will learn administration techniques for at least two popular computer operating systems, with special attention to system security. Techniques for managing networking, remote printing, storage allocation, account management, and backup will be discussed. Common techniques for breaching system security, and methods of defense against such attacks, will be emphasized.
Credits:3
Prerequisites:
| CpSc | 317 | Scripting Languages |
CpSc 343: File Processing
A practical study of information storage and retrieval using computer data files. Fundamental file structures and organization are emphasized and exemplified through a programming language on personal computers. Advanced file structures and organizations are discussed.
Credits:3
Prerequisites:
| CpSc | 140 | Introduction to Programming Principles |
CpSc 358: Simulation
Models of real-life phenomena are programmed with a current simulation language. These are run and adjusted for accurate prediction and explanation. Other simulation languages are surveyed, and needed statistical background is reviewed.
Credits:3
Prerequisites:
| CpSc | 140 | Introduction to Programming Principles |
| MGMT | 219 | Business Statistics |
CpSc 365: Management Information Systems
Managerial and technological issues that are necessary to understand, establish, manage and use information systems in all functional areas of organizations.
Credits:3
Prerequisites:
| CpSc | 210 | Productivity Software |
| Mgmt | 250 | Principles of Management |
| Or Mgmt | 251 | Organizational Behavior |
CpSc 370: Computer Organizationn
The fundamental elements of digital logic and their use in computer construction, different kinds of data representation, elements of machine and assembly language programming and the interaction between the hardware design and the instruction set architecture of the computer.
Credits:3
Prerequisites:
| CpSc | 150 | Advanced Programming Principles |
CpSc 374: Algorithms and Data Structures
This course establishes a foundation for the systematic study of algorithms and data structure. The integration for these two concepts into a single organizational structure emphasizes that algorithms and data structures are inseparably inter-twined. This course builds and elaborates on the concepts introduced in CpSc 140 and 150.
Credits:3
Prerequisites:
| CpSc | 150 | Advanced Programming Principles |
CpSc 376: Programming Languages
Programming languages are studied from the view of users. Features of common computer languages are surveyed along with developments in newer languages. The goal is deeper understanding of computer languages. Topics include compilation, interpretation, data types, data structures, binding, scope, control mechanisms, conversions, storage management, reliability, portability, modularity, documentation, implementation methods, and language extensibility.
Credits:3
Prerequisites:
| CpSc | 150 | Advanced Programming Principles |
CpSc 378: Theory of Computation
Both the classical and contemporary theories of computation will be discussed in this course. The topics covered include the theory of automata and formal languages, computability by Turing machines and recursive functions, uncomputability, and proof of correctness of code.
Credits:3
Prerequisites:
| CpSc | 150 | Advanced Programming Principles |
| MATH | 131 | Discrete Mathematics |
CpSc 413: Systems Analysis
A course in computer-based information systems. Course content includes: foundations of information science, techniques for system development, information architectures, and resource allocations. Case studies are discussed and utilized as class projects.
Credits:3
Prerequisites:
| CpSc | 323 | Database Systems |
CpSc 423: Computer Networks
This is an introduction to computer networks and data communications. Course content includes: the layered model; transmission and multiplexing; data link protocols; packet, point-to-point, and satellite transmission; local area networks; security and privacy. Examples of some well-known networks will be studied.
Credits:3
Prerequisites:
| CpSc | 150 | Advanced Programming Principles |
CpSc 427: Interface Design
This Information Technology major course uses graphical user interface design concepts to introduce interface design possibilities. This senior-level course requires students to produce an intricate interface that utilizes systems design, information management, systems administration & security, and programming concepts from lower-level courses. This course is intended as a capstone course that introduces human user interface theory and practice.
Credits:3
Prerequisites:
| CpSc | 413 | Systems Analysis |
| CpSc | 317 | Scripting Languages |
CpSc 443: Software Project Management
An introduction to project management in the information systems, or IT development, area. Provides an understanding of the purpose, methods and benefits of process management by exposing the student to the concepts, practices, processes, tools and techniques used in process management for software development.
Credits:3
Prerequisites:
| CpSc | 323 | Database Systems |
CpSc 450: Internship
An in-depth study of the critical issues related to the computerization of society. Ethical, legal, and moral issues raised by the evolution of computer technology will be discussed.
Credits:3
Prerequisites:
| Advanced Standing |
CpSc 456: Introduction to Computer Graphics
This course introduces the basics of interactive computer graphics including software and hardware requirements for computer graphics systems, graphics data structures, algorithms and programming languages, raster and random display devices, and graphics applications. Students will work with dedicated graphics computers in completing laboratory exercises and course projects.
Credits:3
Prerequisites:
| CpSc | 374 | Algorithms and Data Structures |
| Or | Permission of the Instructor |
CpSc 464: Principles of Concurrent Programming and Operating Systems
An introduction to operating systems with emphasis on fundamental principles. These include store management, processor management, file systems and input/output. Laboratory exercises are assigned using a language that supports concurrency. Distributed and "real time" illustrations are used, as well as standard operating system illustrations.
Credits:3
Prerequisites:
| CpSc | 370 | Computer Organizationn |
| CpSc | 374 | Algorithms and Data Structures |
| CpSc | 376 | Programming Languages |
| CpSc | 378 | Theory of Computation |
CpSc 466: Compiler Design and Implementation
This is an introduction to language translation. Topics include specification of languages and its relation to automata, lexical analysis, finite state machines, context free languages, LL and LR parsing methods, syntax directed translation, error recovery, code generation, and portability.
Credits:3
CpSc 474: Computer Architecture
Architectural features of computer systems are studied. Central processors, storage systems, various forms of parallelism, microcode, and system performance are included as central topics. Hardware support for vector operations, programming languages, concurrency, and distributed processing are included, along with salient architectural features of concurrent integrated processors.
Credits:3
Prerequisites:
| CpSc | 370 | Computer Organizationn |
| CpSc | 374 | Algorithms and Data Structures |
CpSc 476: Artificial Intelligence
A survey of artificial intelligence topics including heuristic programming, search techniques, knowledge representation, expert systems, vision and speech in automators, pattern recognition and robotics.
Credits:3
Prerequisites:
| CpSc | 374 | Algorithms and Data Structures |
CpSc 478: Analysis of Algorithms
An advanced study of algorithms and data structures. Analysis of algorithms, space and time complexity, and the NP classes will be considered. Significant illustrative individual or group programming projects are required. Examples may be drawn from heuristic programming, encipherment, natural language processing, object code generation, combinatorial analysis, graphics, robotics, relational databases, or other algorithmic issues of current importance.
Credits:3
Prerequisites:
| CpSc | 374 | Algorithms and Data Structures |
| Or | Permission of the Instructor |
CpSc 488: Software Engineering
The course is the study of software engineering principles and design. The course will emphasize requirement analysis, design, testing, debugging and implementation of a semester long project. Students will work in groups for the project to be implemented. There will be multiple phases for the design and implementation of the project. The project will be implemented using a standard programming environment.
Credits:3
Prerequisites:
| CpSc | 374 | Algorithms and Data Structures |
CpSc 490: Independent Study
Supervised study in a special interest area. Prerequisites: Two computer science courses selected from 370 or above, permission of the instructor, departmental chairperson, and dean of the college where the study will be conducted.
Credits:3
CpSc 498: Selected Topics
The in-depth examination of a specific topic. For different topics, this course may be repeated for required elective credits toward a computer science major or minor.
Credits:3
Prerequisites:
| Permission of the Instructor |
CpSc 4981: Topics in Computer Science: Machine Learning and Robotics
A survey of artificial intelligence topics including heuristic programming, search techniques, knowledge representation, expert systems, vision and speech in automators, pattern recognition and robotics.
Credits:3
Prerequisites:
| CpSc | 374 | Algorithms and Data Structures |
CpSc 4982: Topics in Computer Science: Compiler Transformations
The in-depth examination of a specific topic. For different topics, this course may be repeated for required elective credits toward a computer science major or minor. Prerequisite: Permission of the instructor
Credits:3
Prerequisites:
| Permission of the Instructor |
