CS 0015 Introduction to Computer Program (QR)
This course is primarily intended for business majors who wish to become familiar with microcomputer applications in business. Visual Basic programming is presented as a vehicle for the development of computer-based problem-solving skills. Prerequisite: MATH 0001; CREQ: CS 0016. 3 Credits
CS 0016 Introduction to Computer Science Programming Applications
An application course to accompany Introduction to Computer Programming. Corequisite: CS 0015. 1 Credit
CS 0045 Introduction to Information Structures Applications
An application course to accompany Introduction to Information Structures. Corequisite: CS 0455. 1 Credit
CS 0046 Computer Systems Architecture Applications
An application course to accompany Computer Systems Architecture. Corequisite: CS 0456. 1 Credit
CS 0047 Advanced Programming Concepts Laboratory
An application course to accompany Advanced Programming Concepts. Corequisite: CS 0457. 1 Credit
CS 0048 Data Structures and Files Applications
An application course to accompany Data Structures and Files. Corequisite: CS 0458. 1 Credit
CS 0081 Computer Literacy
A survey course designed for students not majoring in computer science. Provides an overview of the components of a computer system, including hardware, operating systems, and application software. Includes coverage of processing fundamentals; storage, input/output, and networking technologies; and Internet fundamentals. Lab sessions provide a hands-on introduction to office productivity software including word processing, spreadsheets, micro databases, and presentation graphics, as well as an introduction to Web Page creation using HTML and Frontpage. 3 Credits
CS 0082 Computer Science Assistantship - Nonmajors
This course is designed to accommodate students who are not computer science majors who wish to participate in laboratory consulting, teaching projects, and other meaningful CS activities on campus. 1-3 Credits
CS 0100 Perspectives in Computer Science
This is an entry-level course for computer science majors. It presents an overview of the field for the benefit of those who will be pursuing in-depth studies related to many of the topics presented. These topics will include, among others, considerations of computer hardware and software, problem-solving techniques, elementary data structures, binary data representation, data communications, as well as the history and social implications of computerization. 3 Credits
CS 0406 Discrete Math 2 and Statistics for Computer Science
This course is the sequel to Discrete Math 1. Half of the course will be devoted to probability and statistics and include topics in probability, combinatorics, elementary laws of means, variances and standard deviations, expected values, and descriptive statistics. The remainder of the course will be devoted to advanced topics in discrete math and will include proof techniques, induction, quantifiers, recurrence relations, algebraic structures, finite state machines, turning machines, and formal languages. Prerequisite: MATH 0401. 3 Credits
CS 0410 Introduction to Computer Science Programming Applications
An application course to accompany Introduction to Computer Science Programming lecture. Prerequisites: CS 0100, MATH 0401. Corequisite: CS 0411. 1 Credit
CS 0411 Introduction to Computer Science Programming
This course is an introduction to the concepts, techniques, and tools of computer science. It is designed for those students who are intending to major in that discipline. The course is to emphasize fundamental approaches to problem analysis, algorithm development, and top-down program design. The student is to gain a thorough working knowledge of an exemplary programming language and to become thoroughly familiar with the Pitt computing environment. Students must have completed two years of high school mathematics. Prerequisites: CS 0100, MATH 0401. Corequisite: CS 0410. 3 Credits
CS 0417 Intermediate Programming using JAVA
This intermediate programming course for non-CS majors will emphasize object-oriented design and programming. Object-oriented concepts such as data encapsulation, inheritance and polymorphism will be explored and implemented by students using predefined classes and by creating their own classes. Graphical user interfaces and event handling will also be covered. The programming language that will serve as the basis for this course will be Java. Prerequisites:CS 0410 and 0411, or CS 0015 and 0016, or ET 0031, or permission of instructor. 3 Credits
CS 0455 Introduction to Information Structures
This course will emphasize the study of the basic data structures of computer science—stacks, queues, trees, lists, and graphs and their implementation using a structured language. In addition, various mathematical structures introduced in Discrete Mathematical Structures will be applied to computer science problems. PREQ: CS 0410 and 0411 and (CS 0406 or MATH 1012); CREQ: CS 0045. 3 Credits
CS 0456 Computer Systems Architecture
Emphasis is on providing the student with a basic exposure to the UNIX operating system and computer architecture with Assembly language programming. Also, the nonobject-oriented features of the C++ programming language are presented. PREQ: CS 0410 and 0411 and (CS 0406 or MATH 1012); CREQ: CS 0046. 3 Credits
CS 0457 Advanced Programming Concepts
Emphasis will be placed on the advanced features of C++ including stream I/O, object-orientation with classes, generic programming units, and exception handling. The underlying principles of object-oriented design, namely inheritance and polymorphism, will be explored in depth. Prerequisites: CS 0455, CS 0045, CS 0456, CS 0046. Corequisite: CS 0047. 3 Credits
CS 0458 Data Structures and Files
A study of computer representations of structured data both in main memory and on secondary storage devices as well as operations on such data. Topics include list structures, various advanced data structures, hashing, file structures, and access methods. Interaction between main and secondary storage, sorting, and searching also will be covered. Prerequisites: CS 0455, CS 0045, CS 0456, CS 0046. Corequisite: CS 0048. 3 Credits
CS 1132 Classical Numerical Analysis
Numerical methods for solving mathematical problems on computers. Topics include computer arithmetic, error propagation, solutions to linear equation, interpolation and approximation, numerical differentiation, solutions to nonlinear equations, and solutions to ordinary and partial differential equations. PREQ: CS 0410 and 0411 and (CS 0406 or MATH 1012); CREQ: CS 0046. 3 Credits
CS 1162 Topics in Computer Applications
Current topics in computer applications are discussed, such as networks, robotics, new languages, personal computers, software systems, list processing, or any area of recent concern. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458. 3 Credits
CS 1163 Advanced Topics in Computer Science
Topics that are extensions of upper-level CS electives are discussed. The content of this course is in general more advanced, and the topics are more rigorous than for Topics in Computer Applications. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458. 3 Credits
CS 1164 Advanced Computer Science Topics and Applications
Topics that are extensions of upper-level CS electives are discussed. The content of this course is in general more advanced, and the topics are more rigorous than for Topics in Computer Applications. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458. 3 Credits
CS 1165 Directed Project
Participants in a group will implement a useful software system based on the design conceived in Software Engineering. Participants will produce a deliverable product including all written associated documentation describing the product and its results. Group presentations will be included in this course. Prerequisite: CS 1735. Corequisite: CS 1736. 3 Credits
CS 1171 Computer Science Assistantship
This course is designed to accommodate students who wish to participate in laboratory consulting, teaching projects, and software systems implementations not associated with any other meaningful computer science-related activities on campus.1-3 Credits
CS 1550 Systems Programming
An introduction to basic concepts of operating systems, common to most computer systems, that interface the machine with upper-level programs. This course will introduce processes such as processing unit, process management, concurrency, communication, memory management and protection, and file systems. 3 Credits
CS 1710 Formal Structures Computer Science
This course will provide a detailed exposition of abstract mathematical structures relevant to computer science. Abstraction is emphasized as a powerful tool for solving problems, and the student is exposed to a variety of proof techniques. Applications of abstraction to approach practical problems in computer science are emphasized. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458. 3 Credits
CS 1712 Boolean Algebra and Computer Logic
This course is intended to introduce the student to the basic ideas of computer elements and logical design techniques, and to the principles of computer hardware organization. The course presupposes no background in electronics or engineering, stresses logical rather than physical aspects. Topics covered include Boolean algebra and its application to logical design, logic circuits, computer arithmetic, functional units of digital computer, and basic computer organization. 3 Credits
CS 1713 Algorithm Design and Analysis
This course will introduce topics related to the design and analysis of algorithms. Topics include 0-notation, recurrence relations, divide-and-conquer, dynamic programming, graph algorithms, advanced data structures, and completeness algorithms. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458. 3 Credits
CS 1720 Programming Languages
Several programming languages will be studied from a programming (rather than an implementation) point of view. The study of diverse programming languages will exemplify differing approaches to concepts such as scope of declaration, storage allocation, data structure variety, binding times, and control structures. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458. 3 Credits
CS 1735 Software Design Methodology
Construction of large computerized systems proceeds through the stages of requirements analysis, specification, and implementation. This course deals with requirements analysis and specification. Emphasis is on methodologies for improving the reliability of specifications, i.e., on executable specifications and systems prototypes. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458. 3 Credits
CS 1736 Software Engineering
Software engineering is a team discipline. The purpose of this course is to introduce the principles of software engineering and to provide experience in teamwork. The course is structured around a major project, which is taken through the stages of cost estimation, requirements specification, design and implementation, and testing. Prerequisite: CS 1735. Corequisite: CS 1165. 3 Credits
CS 1742 Introduction to Simulation
This course is to introduce students to the concepts, definitions, and techniques which are applicable to the modeling and simulation of systems; both continuous and discrete system simulation methods are covered. Topics include: system characterization, classification and modeling, pertinence of concepts from probability and statistics, and introductory description of suitable programming languages. 3 Credits
CS 1750 Systems Programming
This course is an introduction to the design and implementation of system software. Topics include hardware-software interface (architecture), various types of input/output programming, interrupt and trap, buffers and concurrent input/output, assembler, linker/loader, editor, and introduction to operating systems. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458. 3 Credits
CS 1760 Advanced Object-oriented Programming and Design
This upper-level course consists of examining high-level aspects of the Object-Oriented Programming paradigm. This examination includes both the theoretical and the practical aspects as well as current programming practices. The course will also involve studying a particular object-oriented language or languages. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458 or permission of instructor. 3 Credits
CS 1762 Web Programming
This upper-level course consists of web application programming. Emphasis will be given to modern web programming languages in order to develop dynamic web-database applications. Topics will include client-side scripting, server-side programming, introduction to databases, and web application security. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458 or permission of instructor. 3 Credits
CS 1765 Database Management Systems
The objective of this course is to provide an in-depth knowledge of database systems designs. Thus, the emphasis is on how to model data and use available database management systems (DBMS) effectively. Toward this end, relational structure is discussed in great detail, and hierarchical and network data structures are also presented. Object-oriented database technology is also discussed. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458. 3 Credits
CS 1766 Introduction to Computer Graphics
The basic concepts, tools, and techniques of computer graphics are described, and the fundamental transformations of scaling, translation, rotation, windowing, and clipping are presented. Particular emphasis will be placed on new development in microcomputer graphics. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458. 3 Credits
CS 1783 Artificial Intelligence Programming
The course discusses the data structures, control structures, and paradigms of artificial intelligence programming. Topics include abstract data types, knowledge structuring recursive programming, discrimination nets, agenda control, deductive information retrieval, slotfiller databases, sophisticated data dependencies, closure-based programs, and expert systems. Several application areas are discussed. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458. 3 Credits
CS 1791 Compiler Design
This course will introduce the basic concepts of compiler design and implementation. Topics include lexical analysis, various types of parsers, intermediate and object code generation, and code optimization. The material will be presented from an implementation point of view rather than a formal approach. The impact of language design on compilers will also be examined. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458. 3 Credits
CS 1792 Computer Operating Systems
Examination of computer architecture and hardware system organization. Topics include central processing unit (CPU) organization, sequential and microprogrammed control, instruction set implementation, memory organization, input/output structure, peripherals and interfacing, and computer communications. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458. 3 Credits
CS 1793 Computer Architecture and Organization
Examination of computer architecture and hardware system organization. Topics include central processing unit (CPU) organization, sequential and microprogrammed control, instruction set implementation, memory organization, input/output structure, peripherals and interfacing, and computer communications. Prerequisites: CS 0047, CS 0048, CS 0457, CS 0458. 3 Credits
CS 1794 Introduction to Microcomputing
An examination of the basic principles of operating system design and implementation, topics will include: architecture of computer systems, concurrency, resource management, file systems, security, performance measurement, and evaluation. PREQ: CS 0047 and 0048 and 0457 and 0458. 3 Credits
CS 1903 Internship
This course places the student in an on-the-job setting in which he or she receives practical experience in a supervised training environment. 1-3 Credits
CS 1904 Directed Study
This course is designed to give students the opportunity to design a plan of study to be agreed upon by the student and a supervising faculty member. 1-3 Credits
CS 1905 Independent Study
Students participate in a computer-oriented project at an outside computer facility. The project should represent a significant intellectual or creative experience in computer science. Closely supervised activities consisting of consulting, program preparation and modification, design, etc., are required. 1-15 Credits