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.

TOP