1998-1999 Course Descriptions
CPSC - Computer Science
CPSC 1111. Structured Programming with COBOL 1 (3-0-3) CPSC 1111. Structured Programming with COBOL 1 (3-0-3) Introduction to programming in COBOL. Emphasis on structured design techniques. Computer assignments required.
CPSC 1112. Structured Programming with COBOL 2 (3-0-3) Continuation of CPSC 1111.
CPSC 1205. Technological Solutions (2-2-3) A problems solving course using the newest technologies to develop an understanding of and skills in electronic communications, information retrieval, word processing and desktop publishing, spreadsheet and data analysis, and electronic presentation techniques. Elementary programming using a modern computer language will be introduced. Emphasis will be placed on using technology to solve practical problems. Students with credit for ITDS 2745 Computers and the World Wide Web seminar may not receive credit for this course.
CPSC 1301. Computer Science 1 (3-0-3) This course includes an overview of computers and programming; problem solving and algorithm development; simple data types; arithmetic and logic operators; selection structures; repetition structures; text files; arrays (one-and-two-dimensional); procedural abstraction and software design; modular programming (including sub-programs or the equivalent).
CPSC 1302. Computer Science 2 (3-0-3) Prerequisite: CPSC 1301. This course includes an overview of abstract data types (ADTs); arrays (multi-dimensional) and records; sets and strings; binary files; searching and sorting; introductory algorithm analysis (including Big-O); recursion, pointers and linked lists; software engineering concepts; dynamic data structures (stacks, queues, trees).
CPSC 2105. Introduction to Computer Organization and Assembly Language Programming (2-0-2) Prerequisite: CPSC 1302. An introduction to assembly language for mainframes or PC's. Topics include machine architecture (registers, memory, instruction formats), character data processing, decimal arithmetic, binary arithmetic, subroutine and program linkage.
CPSC 2108. Data Structures and File Management (3-0-3) Prerequisite: CPSC 1302. This course extends the concepts of primitive data types by teaching the student a classical set of data structures that pervades both the theoretical and practical domains of computer science. Topics discussed include lists, queues, stacks, trees, data storage, file system organization, and access methods.
CPSC 2155. Computer Electronics (3-0-3) Fundamental principles of electrical engineering with emphasis on those of particular interest to students of computer science. Electrical physics, electric circuits; analysis of passive DC circuits; transient response of passive circuits; sinusoidal steady state response of passive circuits; operational amplifiers; diodes; bipolar transistors; field-effect transistors; DTL, TTL, and CMOS logic circuits.
CPSC 2156. Introduction to Transaction Processing (3-0-3) Prerequisite: CPSC 1112. An introduction to interactive processing in a transaction-based computer system. Topics include multitasking, multi threading, maps, pseudo-conversational programming and large system design. A language for writing transaction-based systems will be introduced.
CPSC 2157. Introduction to Computer Engineering (3-0-3) Prerequisites: CPSC 1302 and CPSC 2155. Basic computer organization at the machine language and assembly language level. Digital logic and circuits. Basic components of computer hardware and their implementation. Interaction with the operating system. Alternative computer organizations and implementations. Introduces students to the operation of a computer, stressing the relationships and compromises between software and hardware.
CPSC 2158. Advanced Assembler Concepts (3-0-3) Prerequisite: CPSC 2157. Topics include Macro writing, Dsects, Multi-dsect programs, Standard Linkage Conventions, VSAM processing, Assembler and Linkage Editor design.
CPSC 2175. Object-Oriented Design (3-0-3) Prerequisite: CPSC 2108. Introduces
the principles of
CPSC 2555. Selected Topics in Computer Science (1-3 hours) Study of topics of special interest, independent study, or directed experience in the field of computing. Course may be taken three times.
CPSC 3115. Discrete Structures in Computer Science (3-0-3) Prerequisite: MATH 1131. An introduction to the mathematical foundations of computer science. Topics include set theory, functions, relations, Boolean algebra, counting, graph theory and algorithm analysis.
CPSC 3125. Introduction to Operating Systems (3-0-3) Prerequisites: CPSC 2108 and CPSC 2157. The concepts of a process, a processor, and asynchronous concurrently executing processes synchronized via shared data using semaphore or monitors. Deadlock and the Banker's algorithm. Storage allocation and management including virtual memory. Processor allocation and management including multi processing. Secondary storage management. System security; data privacy; performance evaluation.
CPSC 3165. Professionalism in Computing (3-0-3) Prerequisite: CPSC 3125. The social impact, implications and effects of computers on society, and the responsibilities of computer professionals in directing the emerging technology. Includes the examinations of reliable, risk-free technologies, and systems which provide user friendly processes. Specific topics include an overview of the history of computing, computer applications and their impact, the computing profession, and the legal and ethical responsibilities of professionals.
CPSC 4115. Algorithm Analysis and Design (3-0-3) Prerequisite: CPSC 3115. This course emphasizes the understanding of data structures and algorithms from an analytical perspective rather than from an implementation standpoint. The concepts developed allow discussion of the efficiency of an algorithm and the comparison of two or more algorithms with respect to space and run-time requirements. Analytical methods are used to describe theoretical bounds as well as practical ones. In general, this course addresses the constraints that affect problem solvability.
CPSC 4116. Formal Language and Automata Theory (3-0-3) Prerequisite: CPSC 3115. This course presents a study of formal languages and the correspondence between language classes and the automata that recognize them. Formal definitions of grammars and acceptors, deterministic and nondeterministic systems, grammar ambiguity, finite state and pushdown automata, and normal forms will be discussed.
CPSC 4117. Introduction to Theory of Computation (3-0-3) Prerequisite: CPSC 3115. Theoretical analysis of the computational process; fundamental concepts such as abstract programs, classes of computational machines and their equivalence, recursive function theory, unsolvable problems, Church's thesis, Kleene's theorem, program equivalence, and generability, acceptability, decidability will be covered.
CPSC 4165. Introduction to Database Management Systems (3-0-3) Prerequisite: CPSC 2108. Emphasis on the introduction of the basic data models, corresponding logical and physical data structures, comparisons of models, logical data design, and database usage. Terminology, historical evolution, relationships, implementation, database personnel, future trends, applications, performance considerations, data integrity.
CPSC 4175. Introduction to Software Engineering (3-0-3) Prerequisite
or Co-requisite: CPSC 3125. Introduction to the basic principles of software
engineering. Issues in the software life cycle. Emphasis on methods for software design
and testing. Project management and quality assurance.
CPSC 4698. Internship (1-3 hours) Prerequisite: Junior Standing. Work experience on an approved project supervised by an approved faculty member. (S/U grading.)
CPSC 5125. Computer Graphics (3-0-3) Prerequisites: CPSC 2108 and CPSC 3115. Introduction to the input, construction, storage, retrieval, manipulation, alternations, and analysis of computer graphics objects. Graphics computer hardware, graphics primitives, two-dimensional and three-dimensional viewing and transformations, basic modeling.
CPSC 5126. Simulation and Modeling (3-0-3) Prerequisites: CPSC 2108 and Senior Standing. Introduction to the concepts and problems of Simulation and Modeling. Principles of computer simulation and its mathematical foundations. Discrete-event models; random number generators, computer simulation tools. Simulation languages and simulation programming.
CPSC 5135. Programming Languages (3-0-3) Prerequisite: CPSC 3125. Emphasizes the run-time behavior of programs. Languages are studied from two points of view: (1) the fundamental elements of languages and their inclusion in commercially available systems; and, (2) the difference between implementations of common elements in languages.
CPSC 5136. Compiler Construction (3-0-3) Prerequisites: CPSC 3125 and CPSC 4116. Includes the theory, the design, and the implementation of a large language translator system. Lexical analysis, syntactic analysis, core generation, and optimization are emphasized
CPSC 5155. Computer Architecture (3-0-3) Prerequisite: CPSC 3125. Information representation and transfer; instructions and data access methods; the control unit and micro planning' memories; input/output and interrupts; secondary storage; the von Neumann SISD organization; high-level language machines; the RISC concept; special-purpose processors including operation system, file, text, floating-point, communication, etc. Multicomputers; multiprocessors; concurrent processing support; pipeline machines, processor arrays, database machines; the data flow/data directed approach.
CPSC 5156. Parallel and Distributed Computing (3-0-3) Prerequisite: CPSC 3125. Survey of parallel computer architectures, including interconnection networks and synchronization techniques. Algorithms and programming languages for parallel computers. Applications. Interprocess communications, communication protocols, communication network architectures, and distributed programming interfaces. Performance implications.
CPSC 5157. Computer Networks (3-0-3) Prerequisite: CPSC 3125. Local area networks, wide area networks, and internets. Protocols and the ISO Open Systems Interconnect reference model. Design, analysis, and performance evaluation. Emphasis on data link, network, and transport protocols.
CPSC 5158. Microprocessor Design (3-0-3) Prerequisite: CPSC 3125. Principles of operation of Intel's 80 x 86 family of microprocessors, including assembly language programming, internal architecture of 80x86 processors, timing analysis, and interfacing techniques. Special emphasis will be placed on hardware-software interactions. Design of memory systems for microprocessors and on utilization of programmable peripheral devices.
CPSC 5159. Introduction to VLSI Design (3-0-3) Prerequisites: CPSC 2157 and CPSC 3125. Structured top-down design of complex digital systems, including behavioral synthesis and minimization, silicon compilation, automatic floor planning, and layout and performance simulation.
CPSC 5165. Multimedia, Hypertext, and Information Access (3-0-3) Prerequisite:
CPSC 1111 or CPSC 1301 or CPSC 2105. Introduces the architectures, concepts, data,
hardware, methods, models, software, standards, structures, technologies, and issues
involved with: multimedia information and systems; hypertext and hyper media; networked
information; electronic publishing; virtual reality; and information access. Students will
learn how to capture, represent, store, compress, manipu
CPSC 5175. Introduction to Human-Computer Interaction (3-0-3) Prerequisite: CPSC 1111 or CPSC 1301 or CPSC 2105. Survey of human-computer interaction concepts, theory, and practice. Basic components of human-computer interaction. Informed and critical evaluation of computer-based technology. User-oriented perspective, rather than system-oriented, with two thrusts: human(cognitive, social) and technological (input/output, interaction styles, devices). Design guidelines, evaluation methods, participatory design, communication between users and system developers.
CPSC 5185. Introduction to Artificial Intelligence (3-0-3) Prerequisites: CPSC 2108 and Senior Standing. Heuristic Techniques in Artificial Intelligence. Foundations of heuristic methods, problem representation and search methods, knowledge representation, learning and inference, natural language processing. Appropriate programming language and software tools for Artificial Intelligence.
CPSC 5555. Selected Topics in Computer Science (1-3 hours) Study of topics of special interest, independent study, or directed experience in the field of computing. Course may be taken three times for credit.
CPSC 6115. Models and Analysis (3-0-3)Tools and models for the nondeterminism inherent in computer systems. Sets, combinatorics and probability. Stochastic models of queuing behavior in computer systems modeling. Probabilitic techniques used in reliability characterization of hardware and software systems.
CPSC 6116. Models of Computation (3-0-3) Prerequisite: CPSC 6115. Formal models for computational processes and their meaning. Formal languages, Automata, and computability. Semantics of programming languages. Properties of programs. Techniques of abstraction and specification.
CPSC 6117. Theory of Algorithms (3-0-3) Prerequisite: CPSC 6115. Methods of constructing and analyzing algorithms. Measures of computational complexity, determination of efficient algorithms for a variety of problems such as searching, sorting and pattern matching. Geometric algorithms, mathematical algorithms, and the theory of NP-completeness.
CPSC 6125. Advanced Operating Systems (3-0-3) Prerequisite: CPSC 6115. Issues in the design and functioning of operating systems. Emphasis on synchronization of concurrent activity in both centralized and distributed systems. Deadlock, scheduling, performance analysis, operation system design, and memory systems including distributed file systems.
CPSC 6126. Computer Security (3-0-3) Covers network security technology, the latest standards for security in an Internet working environment, and the practical issues involved in developing security applications. The main contents are conventional encryption, confidentiality using conventional encryption, public-key cryptography, authentication and digital signatures, intruders, viruses, and worms, cryptographic algorithms, authentication and key exchange, electronic mail security, and network management security
CPSC 6155. Advanced Computer Architecture (3-0-3) Covers theory of parallelism, advanced hardware technology and software for parallel programming. The main contents are parallel computer models; program and network properties; principles of scalable performance; processor and memory hierarchy, bus, cache, and shared memory; pipelining and superscalar techniques; multiprocessors and multicomputers; multivector and SIMD computers; scalable, multithreaded, and dataflow architectures; parallel models, languages, and compilers; and parallel program development and environments.
CPSC 6165. Advanced Database Systems (3-0-3) Emphasized concepts, data
models, mechanisms, and manipulation of data at a logical level. Concentrated on the
relational model, plus some semantic,
CPSC 6170. Systems Engineering (3-0-3) The engineering of complex real-world systems, with both hardware and software components requires a broad-based view of how the trade-offs between hardware and software permeate the product life cycle. The systems engineering course presents an interactive model of how high-level analysis and design must be viewed in the context of lower-level implementation and maintenance considerations in order to satisfy the full range of systems level requirements. Topics include systems level process modeling, requirements acquisition, and management, systems level design representation and verification, risk analysis, maintenance, and change management.
CPSC 6175. Object-Oriented Analysis and Design Methodology (3-0-3) Examines object-oriented design methodologies and their role in the software development process. Data modeling and design principles such as data abstraction, information hiding, modularity, and coupling are viewed in the context of the object-oriented paradigm. Examines concepts such as abstract classes, inheritance, and polymorphism in the context of object-oriented languages. Contrasts and compares strengths and weaknesses of different design methodologies using case studies. Examines issues relating to making the transition from design to implementation.
CPSC 6176. Graphical User Interface Software Development (3-0-3) Examines the software development techniques used in the design of graphical user interfaces. Particular emphasis is placed on available software development tools for such interfaces.
CPSC 6177. Software Requirements and Design Engineering (3-0-3) Prerequisite: CPSC 6170. Examines software requirements and design methodologies. Studies defining software requirements: interacting with end-users to determine system requirements and identifying functional, performance, and other requirements. Examines techniques to support requirements including prototyping, modeling, and simulation; the relation of requirements to design; design in the system life cycle; and hardware versus software trade-offs. Discusses subsystem definition and design and covers principles of design, including abstraction, information hiding, modularity, and reuse. Uses examples of design paradigms.
CPSC 6178. Software Testing and Quality Assurance (3-0-3) Prerequisite: CPSC 6170. Examines the relationship between software testing and quality with an emphasis on the role of testing in the validation of system requirements. Topics include module and unit testing, integration, code inspection, peer review, verification and validation, statistical testing methods, preventing and detecting errors, selecting and implementing project metrics, and defining test plans and strategies that map to system requirements. Examines testing principle formal models of testing, performance monitoring, and measurement.
CPSC 6179. Software Project Planning and Management (3-0-3) Prerequisite: CPSC 6170. Centers on the concept of a software engineering process and includes discussion of life-cycle models for software development. Addresses issues associated with the successful management of software development including planning, scheduling, tracking, cost and size, estimating, risk management, configuration, management quality, and engineering and process improvement. Includes the SEI software process Capability Maturity Model (CMM) and other process standards.
CPSC 6475. Design Studio (3-0-3) Prerequisites: CPSC 6177 and CPSC 6179. Students get to be part of a software development team. They will learn to apply what they have learned in the prerequisite courses to a real world project. The course involves both physical and logical design of software systems.
CPSC 6555. Selected Topics in Computer Science (3-0-3) Study of topics of special interest, independent study, or directed experience in the field of computing.
CPSC 6985. Research and Thesis (3-0-3) A research project designed in consultation with the faculty to apply the student's course work to a current problem in either client-server, mainframe, or communications applications. The course includes a formal paper detailing the student's research and conclusions. (S/U grading.)
Send questions or
comments about this page to our e-mail.
This page was last updated on08/29/06 10:22 AM