|
Computer
Science |
||
|
*Christian Education & Communications Course listings available upon request. |
||
| COMPUTER SCIENCE (CSc) Undergraduate | COMPUTER SCIENCE (CSc) Graduate | |
|
CSc
103 Introduction To Computer Programming (3)
Introduction to computer programming, no prior experience is assumed.
Broad introduction to the engineering of computer applications,
emphasizing software engineering principles: design, decomposition,
information hiding, procedural abstraction, testing, and reusable
software components. Using a high-level programming language, this
course concentrates on the development of good programming style and on
the understanding of the basic facilities provided by high level
languages. CSc 105 Programming Data Structures and Algorithms (3) Fundamental dynamic data structures, storage management, elementary principles of software engineering. Algorithms for searching and sorting. Introduction to the C programming language. CSc
107 Programming Languages and Compilers (3)
A survey of programming languages. The design of modern programming
languages. Principles and techniques of scanning, parsing, semantic
analysis, and code generation. Implementation of compilers,
interpreters, and assemblers. An overview of current programming
languages and applications. CSc
110 Machine Structures (3) The internal organization and operation of
digital computers. Machine architecture support for high-level
languages, logic, arithmetic, instruction sequencing, and operating
systems (I/O, interrupts, memory management, process management).
Elements of computer logic design, tradeoffs involved in fundamental
architectural design decisions. CSc
112 Operating Systems (3) Basic concepts of multi-user operating
systems (UNIX, Windows NT). Processes, inter process communication, and
synchronization. Memory allocation, segmentation, paging. Resource
allocation, scheduling, performance evaluation. File systems, storage
devices, I/O systems. Protection, security, and privacy. CSc
114 Productive Use Of The UNIX Environment (3) File and directory
organization and access. Built in tools used singly and in combinations;
the shell command language (sh, csh, tcsh); environment customization;
process management; maintenance of directories on networked computers. CSc
121 Introduction To System Administration (3) An introduction to
system administration including managing user accounts, backing up file
systems, system integrity, and system security. CSc
123
Introduction To System Performance And Analysis (3)
Performance indices and evaluation techniques. Measurement:
instrumentation, design of experiments, interpretation of results.
Workload characterization. Tuning, procurement, and a capacity planning.
File and I/O system optimization. CPU scheduling and architecture
performance analysis. CSc
230
Introduction To Database Systems (3) Object-oriented, entity
relationship, and relational data models, relational and object-oriented
database query languages are compared in the design and implementation
of a database system. Database services including transactions,
protection, integrity control, and security are considered. CSc
232 Implementation Of Database Systems (3)
Implementation of database systems on current hardware systems and
hardware requirements. Considerations for operating system design
including buffering, page size, fetching, etc. Query processing
algorithms, design of crash recovery and concurrent control systems.
Implementation of distributed databases and database machines. CSc
241 Introduction To Distributed Systems (3) Basic concepts of
distributed systems. Network architecture and Internet routing. Message
passing layers and remote procedure calls. Process migration.
distributed file systems. Server design for reliability, availability,
and scalability. CSc
243
Computer Networks (3) Distributed systems, applications,
organization and the network component. Network architectures including
local networks, wide-area networks, inter networks. Network
technologies, and topologies. Network and transportation protocols
including TCP/IP. Routing and congestion control. CSc
250 Social And Economic Implications Of Computer Technology (3) An
overview of the history of computing from Babbage today. Current issues
such as competition, price setting, job displacement, security and
privacy, computer crime, exporting of technology. Management of large
system development projects, projection for future development of
computer technology. Philosophical and ethical issues concerning expert
systems and artificial intelligence. CSc
252 Introduction To Human-Computer Interaction Design (3)
An introduction to the concepts underlying the design of human-computer
interaction: usability and affordances, systemic design methods, user
conceptual models and interface metaphors, human cognitive and physical
ergonomics, information and inter activity structures, design tools and
environments. Case studies analyzed as illustrations of underlying
principles. CSc
254 Internet Technologies (3) A survey of contemporary
Internet technologies. A programmer-oriented study of authoring,
distributing, and browse technologies. The role, use, and implementation
of current Internet tools. Topics to include TCP/IP: namespace,
connections, and protocols, client/server structures, World Wide
Web/HTTP/HTML techniques for text, images links, and forms. Programming
projects may include UNIX scripts, C, Perl, Java. Emphasis is on
understanding, exploiting, and extending Internet technologies. CSc 256 Introduction To Data Communications (3) The basic concepts of data communications, network design, and distributed information systems, equipment, protocols, architectures, and transmission alternatives. |
CSc
501 Advanced UNIX Utilities and Shell Programming (4)
Designed for experienced users, system administrators, and
programmers who want to increase their programming abilities. It
provides an in-depth look at awk, grep, and sed, while covering many
other Unix tools. Both the Bourne shell and the C shell will be covered
as programming languages including the shell process, programming
constructs, and debugging. CSc
503 Programming in Java (4) Object oriented programming (classes,
objects, messaging, inheritance), Java language features (interfaces,
exceptions, packages, concurrency, garbage collection, use of the built-in
packages (lang, util, io, networking, awt), understanding applications
and applets, security and verification. CSc
505 Principles of Software Engineering Using C (4)
C programming language and UNIX/C programming environment. C programming
language issues: data types, control structures, pointers, dynamic
memory allocations, libraries, performance, bit operations, and the
interface to the Unix shell. Unix systems programming issues: file
system processes, signals, inter-process communication, and C interfaces
to these capabilities.
Includes significant programming. CSc
511 Introduction To Artificial Intelligence (4)
Broad technical introduction to core concepts and techniques in
artificial intelligence. Topics: search, planning, knowledge
representation managing uncertainty, machine learning, neural networks,
vision, robotics, natural language understanding, and intelligent
architectures. CSc
513 Computer Applications In Medicine (4) A survey of the use of
computers in the medical field, including a variety of research and
applied environments and the factors that influence the acceptance of
these applications. Topics: integration of computer systems in the
medical center, hospital information systems, electronic medical records
and networking, bibliographic search, applications to molecular biology,
aids for disabled patients, image processing, computer-aided
instruction, and decision support systems. CSc
515 Parallel Computer Architectures (4)
Principles and tradeoffs in design of parallel architectures. Emphasis
on naming, latency, bandwidth, and synchronization in parallel machines.
Architectural studies on techniques for programming parallel computers. CSc
517 Client/Server Architectures (4)
The design and application of client/server hardware architectures.
Software application design considerations to take advantage of
client/server architectures. CSc
525 UNIX Security For System Administrators (4)
Implementing file and directory permissions, setting default permission
system wide, implementing password aging, enhancing the security level
of set user id (suid) programs, setting up a restricted environment for
users understanding the relationship between physical security and
system security, and auditing system security. CSc
527 Principles, Protocols, And Architectures Of TCP/IP (4)
Architectural components of the Internet and how the protocols
interrelate to create a complete network architecture. The OSI seven
layer model, IP network layer protocols, TCP/IP packet types, TCP and
UDP transport protocols, unit tools that use the TCP/IP network: Telnet,
FTP, tftp, rlogin, rsh, and rcp. CSc
529 The Network File System & Network Information Service (4)
An introduction to NFS, remote procedure calls, the operational mounting
of NFS file systems. Setting up NIS servers, using NIS databases,
creating and using NIS maps, installing and using the automounter, how
UNIX system administration is changed with NFS and NIS, and debugging
NFS and NIS problems. CSc
535 Distributed Database Systems (4)
The distribution of data and the difficulties encountered including the
design of distributed database systems, the communication between them,
execution of transactions, the distribution of data, the structure of
distributed databases, distributed query processes, and commit protocols
are compared to traditional database architectures. CSc
537 Database Tuning & Performance (4)
Tuning database management systems, operating systems and hardware.
Evaluating performance criteria for choosing a database management
system. Building performance into a user designed database management
system. CSc
543 Network Technologies And Architectures (4)
A technical survey of local area networks, wide-area networks, their
technologies, and protocols. The OSI Model, the physical and data link
infrastructure of a LAN (wiring backbones, data link protocols). Details
on Ethernet, Token Ring and FDDI. CSc
545 High-Speed Networks (4)
A technical introduction to the most important high-speed networking
technologies: FDDI, ISDN, Broadband ISDN/ATM, SONET, Frame Relay.
Important technical details and business considerations for adopting
each technology will be discussed. CSc
547 Network Management Concepts (4)
Principles of network management, network management techniques,
standards, and applications including architectures, functions
protocols, knowledge-based network management, configuration management,
fault management, accounting management, performance management,
security management. CSc
549 Network Security (4)
Vulnerabilities, threats, and countermeasures inherent to computer
networks. Security planning and administration, risk analysis, planning
for disaster recovery. Communications security including network
sniffing and Kerberos. System and file administration that control
network access and security. |
|