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.
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.
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.
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.
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.
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.
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.
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. II.
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
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.
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, odd
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. Offered once every two years. This course cannot
be taken both at the undergraduate level and at the graduate level.
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 occasionally.
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, even numbered years.
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 Sem. I, odd numbered years.
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. I, even numbered years.
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
or C-I 420/620. (Cross-listed with C-I; may only earn credit in C-S or C-I.)
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 that
achieve the qualities, 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.
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.
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. II.
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. I.
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 9. Offered Sem. I.
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 9. Offered Sem. II.
752 Cr. 1-3
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 9.
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. Pass/Fail grading.
Back to Course Descriptions Index Page
Office of Records and Registration
Homepage | How
to Contact Us | How
Modified:June 13, 2012