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. (3 credits)
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. Prerequisite: ASSD 110. (3 credits)
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. Prerequisite: ASSD 110.
(3 credits)
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. Prerequisite: CpSc 140 or
permission of the instructor. (4 credits)
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.
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. (3 credits)
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. Prerequisite: Progress in
an Education program. (3 credits)
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. Prerequisites: CpSc
130 and 140. (3 credits)
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. Prerequisite: CpSc 150. (3 credits)
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.
Prerequisite: Advanced standing. (3 credits)
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.
Prerequisites: CpSc 110 or microcomputer proficiency and advanced
standing. (3 credits)
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. Prerequisites: CpSc 127 and 217. (3 credits)
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. Prerequisites: CpSc 130, or 140, or 210. (3
credits)
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.
Prerequisite: CpSc 317. (3 credits)
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. Prerequisite: CpSc 140. (3 credits)
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.
Prerequisite: CpSc 140 and a statistics course. (3 credits)
CpSc 370:
Assembly Language and Machine Organization
Computer instruction sets, organization, and elementary
architectural features are studied and used via programming in
assembly language. Prerequisite: CpSc 150.
(3 credits)
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. Prerequisites: CpSc 150. (3 credits)
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. Prerequisite: CpSc 150.
(3 credits)
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. Prerequisites: CpSc 150 and Math 131. (3 credits)
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.
Prerequisite: CpSc 220. (3 credits)
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. Prerequisite: CpSc 150. (3 credits)
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. Prerequisites: CpSc 413 and CpSc 327.
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. Prerequisite:
CpSc 210 or 207. (3 credits)
CpSc 450:
Internship
Professional work experience performed as an intern at selected
agencies supervised both by the agency and by the Computer Science
Department. Prerequisites: Computer science, or information systems
major with junior or senior standing, 2.750 QPA overall, 3.000
major QPA, and application to the department one semester prior to
the term in which the internship is to be undertaken. (3 - 12
credits, where 1 credit is 40 work hours).
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.
Prerequisite: CpSc 374 or permission of the instructor. (3
credits)
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. Prerequisites: CpSc 370, 374, 376,
and 378. (3 credits)
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. Prerequisites: CpSc 370, 374, 376, and
378. (3 credits)
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.
Prerequisite: CpSc 370.
(3 credits)
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. Prerequisite CpSc 374. (3 credits)
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. Prerequisite: CpSc 374 or permission of the instructor.
(3 credits)
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. Prerequisite: CpSc 374. (3 credits).
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. (1-3 credits)
CpSc 498:
Topics in Computer Science: Machine Learning and
Robotics
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 (1-3 credits).
CpSc 498c:
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 (1-3 credits).
|