COMPUTER SCIENCE (C-S)
Course Descriptions
C-S 301/501 Cr. 2
Using the Internet
An introduction to the Internet and
computer networking. A survey of Internet resources and methods
used to retrieve and create Internet resources. Topics include:
connecting to the Internet, electronic mail, file transfer,
remote login, Mosaic, World Wide Web, Gopher, TCP/IP, networking
hardware. Not applicable to a computer science major or minor.
C-S 419/519 Cr. 1-3
Topics in Computer Science
A special topics course in computer
science which will function as a forum for new ideas and testing
ground for new courses. Prerequisite: consent of instructor.
Repeatable for credit — maximum 6. Offered occasionally.
C-S 421/521 Cr. 3
Programming Language Concepts
A comparative study of the concepts
underlying the design of contemporary high level programming
languages, including imperative, functional, logic and
object-oriented paradigms; formal representation of syntax and
semantics; control structures; data and procedural abstraction;
scope and extent; parallelism and exception handling. This
course cannot be taken both at the undergraduate level and at
the graduate level. Prerequisite: C-S 340.
C-S 441/541 Cr. 3
Operating System Concepts
The study of the structures and
algorithms of operating systems. Operating systems are viewed as
managers and controllers of resources such as processors,
memory, input and output devices and data. Topics include
multiprogramming systems, CPU scheduling, memory management and
device management. Prerequisite: C-S 340 and 370.
C-S 442/542 Cr. 3
Structure of Compilers
An extensive study of all phases of
the compilation of high level programming languages. Topics
include: scanning, parsing (LL and LR), semantics analysis,
symbol table organization and manipulation, internal code
generation, storage allocation, optimization and object code
generation. Students are required to complete a compiler for a
small high-level language. Prerequisite: C-S 270 and 340.
Offered Sem. II.
C-S 443/543 Cr. 3
Topics in Operating Systems
An intermediate course in operating
systems extending topics introduced in C-S 441. Operating
systems concepts are studied in-depth. Typically students will
study and modify an existing system. Prerequisite: C-S 441.
Offered Sem. I, even numbered years.
C-S 446/546 Cr. 3
Object-Oriented Software Development
Introduction to the concepts and
principles of object-orientation (OO). Topics include detailed
discussion on analysis and design of OO software systems,
notations for OO analysis and design, and comparison of OO
programming languages. Advanced topics on object-orientation
such as OO testing and Software reuse will be briefly discussed.
Prerequisite: C-S 340. This course cannot be taken for credit
both at the undergraduate level and at the graduate level.
Offered Sem. II.
C-S 449/549 Cr. 3
Advances in Software Engineering
Introduces advanced topics in
Software Engineering. Topics include prototyping models, risk
analysis, component-oriented software development, software
architectures, software reuse, software metrics and quality
analysis. Prerequisite: C-S 741. This course cannot be taken for
credit both at the undergraduate level and at the graduate
level. Offered Sem. I, even numbered years.
C-S 451/551 Cr. 3
User Interface Design
This course focuses on the design and
implementation of user interfaces. The topics include
characteristics of user interfaces, user profiles, user
interface design principles, methods and tools for user
interface development, evolution of user interfaces, evaluation
of user interfaces, and case studies. Prerequisite: C-S 340.
This course cannot be taken for credit both at the undergraduate
level and at the graduate level. Offered Sem. I, odd numbered
years.
C-S 452/552 Cr. 3
Artificial Intelligence and Pattern Recognition
An introduction to the fundamental
principles of artificial intelligence. Topics include the
biological basis for intelligence, classification of object
descriptions and pattern recognition, search strategies and game
trees, natural language processing, automatic theorem proving,
programming for artificial intelligence and knowledge-based
systems. Projects include writing a substantial artificial
intelligence application program. Prerequisite: C-S 340. Offered
Sem. I, odd numbered years.
C-S 453/553 Cr. 3
Introduction to the Theory of Computation
An introduction to the theoretical
aspects of computation. The capabilities and limits of several
computation models are considered including: partial recursive
functions, Turing machines, finite state automata and formal
languages. The implications of Church’s thesis and unsolvable
problems such as the halting problem are discussed.
Prerequisite: C-S 340. Offered Sem. II, even numbered years.
C-S 454/554 Cr. 3
Digital Image Processing
This course introduces the fundamentals of digital image
processing techniques with an emphasis on the design and
implementation of image processing algorithms. Topics include:
color models, point-processing techniques, convolution, fourier
domain processing, the discrete cosine transform, image
compression methodologies, image restoration and enhancement,
sampling and image display. Prerequisite: C-S 340. This course
cannot be taken both at the undergraduate level and at the
graduate level. Offered
C-S 455/555 Cr. 3
Fundamentals of Information Security
This course presents the fundamental
concepts of information security. Basic policies, techniques and
tools for maintaining the security of host computer, information
networks and computer software are presented. Elementary
cryptography is explored with special attention to applications
in data encryption, hashing and digital signatures. Fundamental
security management procedures are also introduced, as are the
legal and ethical issues associated with computer security.
Students will be expected to apply the knowledge gained to
construct security policies and practice security in the form of
access privileges, firewalls, vulnerability scanners and
intrusion detection tools. Prerequisite: C-S 220. This course
cannot be taken both at the undergraduate level and at the
graduate level. Offered Sem. I, odd numbered years.
C-S 464/564 Cr. 3
Advanced Database Management Systems
Advanced topics in database
management systems. Topics include the relational data model,
relational calculus, embedded SQL programming, database
application programming, indexing, system software and storage
structures for databases, concurrency control, crash recovery,
database administration, parallel and distributed databases,
object-oriented databases. Prerequisite: C-S 364. This course
cannot be taken for credit both at the undergraduate level and
at the graduate level. Offered Sem. II, odd numbered years.
C-S 470/570 Cr. 3
Parallel and Distributed Computing
A study of architectures, control software, and applications for
parallel and distributed systems. A survey of parallel and
distributed architectures including data flow machines, vector
processors, shared memory multiprocessors, and message based
multiprocessors. Software topics include process communication
and synchronization, global state maintenance, negotiation,
scheduling, data parallelism, control parallelism, and languages
for parallel and distributed computing. Prerequisite:
C-S 370. Offered occasionally.
C-S 471/571 Cr. 3
Data Communications
An introduction to data
communications, including the electrical properties and software
protocols. In addition to presentations of the concepts and
techniques used for data communications, several currently used
standards and communications networks will be examined.
Prerequisite: C-S 270 and 340. Offered Sem. II, even numbered
years.
C-S 480/680 Cr. 3
Survey of Computer Assisted Instructional Systems
A survey of current trends in
Computer Assisted Instruction (CAI). Development of
instructional and curriculum materials suitable for computer
applications. Use of a current authoring software package.
Prerequisite: C-S 224. Offered occasionally.
C-S 741 Cr. 3
Software Engineering Principles
An advanced course in Software
Engineering that provides a broader outlook of software
development activities, introduces software qualities,
introduces various life cycle models and software development
processes introduces principles of
testing and maintenance activities, and guides the selection of
appropriate life cycle model and software development processes
for any given application. Prerequisite: C-S 341. Offered Sem.
I.
C-S 742 Cr. 3
Formal Methods in Software Development
Introduces various formal notations
that are used in software development, the mathematical
preliminaries that are required to understand and to use the
formal notations, provides hands-on experience with one or two
formal notations along with some case studies. Prerequisite: C-S
340. Offered Sem. II.
C-S 743 Cr. 3
Software Verification and Validation
This course explains the need for
verification and validation, discusses the methods (formal,
informal and diagrammatic) and techniques (prototyping and
theoretical proof techniques) that implement verification and
validation, and provides hands-on experience to apply these
methods and techniques to some simple case studies. Automation
of verification and validation methods will also be briefly
discussed. Prerequisite: C-S 741. Offered Sem. I.
C-S 744 Cr. 3
Management Issues in Software Engineering
This course addresses management
issues that are involved in software projects. Some of these
issues are group working, allocation of teams and division of
labor, feasibility analysis, marketing strategies and project
deadlines. Other topics include in-house software development
versus outsourcing, customer interaction, standards and
organizational impacts on software development. Offered Sem. II.
C-S 750 Cr. 1-3
Topics in Software Engineering
This is a topics course in Software
Engineering. New topics will be introduced based on the
evolution of Software Engineering research. Some such topics are
real-time systems, embedded systems, software for
safety-critical applications, software architectures,
component-oriented programming, CORBA, COM/DCOM, and CASE
(Computer-Aided Software Engineering). Topics may vary each
semester. Prerequisite: C-S 741 and consent of instructor.
Repeatable for credit — maximum 6. Offered occasionally.
C-S 751 Cr. 1-3
Seminar in Software Engineering
This course is meant for those who
want to specialize in one or more areas in Software Engineering
such as software reuse, software architectures, software
testing, software verification, etc. The workload for the course
will include a number of presentations in the class and one or
more written reports. Topics of specialization may vary for each
semester. Prerequisite: C-S 741 and consent of instructor.
Repeatable for credit — maximum 6. Offered occasionally.
C-S 752 Cr. 1-3
Independent Study
This course is meant for those who
want to acquire an in-depth knowledge on any Software
Engineering topic. Typically, the student may be required to
focus on one particular topic and conduct some research on this
topic, or to do some software development activities such as
analysis, design, implementation or testing. If registered for
more than once, a different topic must be chosen each time.
Prerequisite: C-S 741 and consent of instructor. Each student is
required to submit a report at the end of the term. Repeatable
for credit — maximum 6.
C-S 795 Cr. 1
Software Development Internship
An
academically relevant field experience in government, industry,
business, or community agencies. Students must have their
internships approved and be advised by the computer science
department. Determination of relevancy shall be made by the
Career Services Office with the advice and consent of the
computer science department. The experience will be supervised
closely by the intern’s on-site supervisor, by the Career
Services Staff, and by the student’s faculty internship adviser.
Students must be on their internship worksite during the
semester for which they are registered for academic credit.
Prerequisite: Master of Software Engineering graduate student
status. Students should contact the Career Services Office.
Repeatable for credit – Maximum 2 credits. Pass/Fail grading.
C-S 798 Cr. 1-6
Software Development Project
A major project that requires a
detailed analysis of the problem domain, detailed design,
implementation and demonstration. The project will be guided by
a graduate C-S faculty member. Submission of a written project
report is required, followed by an oral examination by the
Project Evaluation Committee in the C-S department.
Prerequisite: Project proposal must be approved by the Project
Evaluation Committee in the C-S department. Repeatable for
credit — maximum 12. Maximum of 6 credits per semester.
Pass/Fail grading.