01303/Computer and Information Sciences
Students must have at least a "C" in the major prerequisite
course, in order to continue on to the next major course.
C055. Computers and Applications (4 s.h./3 hr. lecture,
2 hr. lab) F S Core: SB
Prerequisite: Firstlevel Core Science Course.
With the explosion of computer technology, knowledge of computing
applications as tools for all disciplines has become a necessary asset.
This course will introduce the student to a hardware and software overview,
use of the computer as a tool to process information, and ethical and
social implications of computing. The laboratory portion of this class
will provide students with handson experience to supplement the lecture
material. Specific applications include word processing, spreadsheets,
the resources of the Internet, databases, and presentation software.
C061. Programming in Pascal (4 s.h./3 hr. lecture, 2 hr. lab) F S
SS Core: QB
Prerequisite: Firstlevel Core Mathematics course.
Introduces students to computers and computer programming.
Topics covered include the general characteristics of computers, techniques
of problem solving and algorithm specifications, and the debugging and
testing of computer programs in Pascal. (No credit given to students
who have completed CIS C059, 0067, C071, or C081.)
0066. Mathematical Concepts in Computing I (3 s.h.) F S SS
Corequisite: Mathematics C075 or C085. Prerequisite: strongly
recommended one semester of programming (CIS C071).
Introduction to the mathematical concepts fundamental to computer
science. Topics include number systems, natural numbers, integers, and
ratios; set and relations including equivalence, congruence, and order;
functions and mappings and Boolean Algebra. Students will also learn
formal methods for writing mathematical proofs, including direct and
indirect proofs, enumerability, and diagonal proofs, converse and contrapositive,
and induction. Additional topics include recursion and recursive algorithms.
Applications to computer science will be illustrated. (No credit for
students who have completed Mathematics 0141. Students planning to take
advanced courses in mathematics should take Mathematics 0141.)
0067. Program Design and Abstraction (4 s.h./3 hr. lecture, 2 hr.
lab) F S SS
Prerequisites: Math 74 with a "C" or better or two years
of high school algebra and one year of trigonometry. Prerequisite: strongly
recommended one semester of programming (CIS C071).
Introduction to programming methods, software engineering,
and procedural and data abstraction. Coverage will include topdown
design and modular programming, software development process, module
documentation including preconditions and postconditions, debugging,
and testing programs. Data types covered include simple data types,
arrays, struts, and strings. Programming techniques include at least
one technique for searching and sorting an array and an introduction
to file processing. Coverage will include an introduction to the use
and implementation of abstract data types as C++ classes. (No credit
for students who have completed CIS C081.)
0068. Data Structures (4 s.h./3 hr. lecture, 2 hr. lab) F S SS
Prerequisites: CIS 0066 and 0067.
A continuation of CIS 0067. Understanding and use of data abstraction through C++ classes. Understanding and use of the following Abstract Data Types: strings, stacks, queues, linked lists, binary trees, trees. Introduction to expression evaluation
and other applications. Introduction to recursion and objectoriented programming in C++ including inheritance.
C071. Computer Programming in C (4 s.h./3 hr. lecture, 2 hr. lab)
F S SS Core: QB
Prerequisite: FirstLevel Core Math Course.
Introduces students to computer and computer programming. Topics
covered include the general characteristics of computers, techniques
of problem solving, and algorithm specification, and the debugging and
testing of computer programs in the C language. (No credit for students
who have taken CIS C059, C061, 0067, or 0081.)
0072. Computer Systems and LowLevel Programming (4 s.h./3 hr.
lecture, 2 hr. lab.) F S SS
Prerequisites: CIS 0066 and CIS 0067.
This course introduces computer systems architecture at the
level required to understand lowlevel systems programming. It examines
issues of information representation, the form of machine instructions
and addressing, the implementation of programming language constructs
in terms of machine instructions, the interfaces to peripheral devices.
Programming is done in assembly language and in C.
H095. Computers and Applications Honors (4 s.h./3 hr. lecture,
2 hr. lab.) F S Core:SB
Prerequisite: Firstlevel Core Science course and membership
in the Honors Program.
Topics include a hardware and software overview, use of the
computer as a tool for information processing, and ethical and social
implications of computing. The laboratory portion of this class will
provide students with handson experience to supp lement the lecture
material. Specific applications include word processing spreadsheets,
the resources of the Internet, databases, and presentation software.
UPPER LEVEL
0153. External File Structures (4 s.h./3 hr. lecture, 2 hr. lab)
F S
Prerequisite: CIS 0068 or 0083.
Illustration of file processing techniques. Sequential access
for batch processing; direct access for online processing/relative
and indexed; sequential file structures. Secondary keys and other retrieval
schema for random access. Currently uses the programming language COBOL.
0166. Mathematical Concepts in Computing II (3 s.h.) F S
Prerequisites: CIS 0067 and 0066.
Concepts include combinations, permutations, binomial and multinomial
coefficients, recurrence relations, big 0 notation, finite probability,
introduction to predicate and propositional calculus and program verification,
and introduction to trees and graphs. Applications to computer science
will be illustrated. May not be taken for mathematics credit. (No credit
for students who have completed Math 0205.)
0203. Introduction to Artificial Intelligence (4 s.h./3
hr. lecture, 2 hr. lab) 00  01
Prerequisites: CIS 0068, 0066, and 0072 or permission of
the instructor.
Introduction to the issues and ideas of artificial intelligence
using LISP and PROLOG. Knowledge of representation, search, problem
solving, learning and mathematical reasoning.
0207. Introduction to Systems Programming and Operating Systems
(4 s.h./3 hr. lecture, 2 hr. lab) F S
Prerequisites: CIS 0068 and 0072.
This course is conceptoriented, not specialized to a particular
operating system, and not trying to teach how to code the kernel of
an operating system. After reviewing a number of system programming
issues, it examines the basic components of modern operating systems
in terms of their function, domain, design, principles and implementation
techniques, use and impact on systems programming. It describes and
uses in programming homework two modern operating systems (UNIX and
Windows NT). Design and implementation of a number of concurrent programs
is examined. Hardware support for operating system functions is discussed.
Performance issues are considered through the course.
0211. Automata, Computability, and Languages (3 s.h.) S
Prerequisites: CIS 0068, 0066, and 0072 or permission of
instructor.
Finite automata, their limitations and capabilities, and Kleen's
theorem or regular expressions. Other types of automata and their events.
Turing machine and computability, computable functions, and halting
problems. Introduction to contextfree languages. Syntactical analysis
of such languages with application to translation.
Note: Offered alternate Springs starting Spring 01.
0217. Computer Architecture (4 s.h./3 hr. lecture, 2 hr. lab) F S
Prerequisites: CIS 0068, 0066, and 0072.
Concepts include levels of analysis: structure level, program
level, register transfer level, logic design level, and circuit level;
switching circuit technologies; central processor unit, instruction
set architectures, control unit, and data paths ; main memory organizations;
arithmetic/logic unit, integer arithmetic, floatingpoint arithmetic,
bus structures including singlebus and multibus, bus control, and
direct memory access.
0220. Computer Graphics and Image Processing (4 s.h./3 hr. lecture,
2 hr. lab.)
Prerequisites: CIS 0068, 0066, and 0072.
An analysis of the techniques used in computer manipulation
of two and threedimensional images. Hardware and software for displaying
images, two and threedimensional transformations, the hidden line
problem, picture processing, character recognition, and twodimensional
filtering.
0223. Data Structures and Algorithms (4 s.h./3 hr. lecture, 2 hr.
lab) F S
Prerequisites: CIS 0068 and 0166. CIS 0166 may be taken
concurrently.
Program style organization and design with continued emphasis
on the use of abstract data types and the objectoriented design paradigm.
Comparative analysis of searching and sorting algorithms and data structures.
Data structures include strings, heaps, priority queues, binary and
general trees, AVL trees, Btrees, and graphs. Sorting algorithms include
insertion sort, heapsort, mergesort, and quicksort. Searching algorithms
include binary search, hashing, breadthfirst search and depthfirst
sear ch. Program structures include polymorphism, virtual functions,
class derivatives and class libraries. Students will gain experience
working in a group on at least one moderatesize project.
0240. User Interface Design (4 s.h./3 hr. lect., 2 hr. lab)
Prerequisites: CIS 0130 or 0330; or CIS 0207 and 0223, or
permission of the instructor.
Understand and apply the basic principles of human computer
interaction and usercentered design to computer interface design. Analyze
and solve interface design and system integration problems. Create prototype
interfaces in a visual programming language, compare different graphical
user interfaces (GUI) and standards, apply guidelines for window, menu
and other dialogue techniques including single user and collaborative
applications, evaluate usability, and compare interface design methodologies.
0242. Discrete Structures (3 s.h.)
Prerequisites: CIS 0068, 0066, and 0072.
Introduction to algebraic structures fundamental to various
areas of computer science. Graphs, planar graphs, algorithms on graphs
and their analysis, sequential machines and their minimization, semigroups,
and groups and their application to comp uter science.
0307. Introduction to Distributed Systems and Networks (4 s.h./3
hr. lecture, 2 hr. lab) F S
Prerequisites: CIS 0207 and 0223.
Introduction to the concepts that are fundamental for understanding
distributed systems and the technical infrastructure that makes them
possible. Lectures will mostly be expository and conceptual. Directed
closed laboratories and home assignments will be applied and involve
the solution of distributed programming problems.
0320. Computer Networks and Communications (4 s.h./3 hr. lecture,
2 hr. lab) 00  01
Prerequisites: CIS 0207 and 0223.
Introduction to computer networks and communications. Local
and wide area networks. Network topology and routing. Internet and ISO
protocols. Applications including remote procedure calls, remote logon,
and file transfer. Network operating systems.
0331. Principles of Database Systems (4 s.h./3 hr. lecture, 2 hr.
lab) F S
Prerequisites: CIS 0207 and 0223.
This course will cover the fundamentals of database systems
essential for information management. It will provide an understanding
of data modeling, database design, and database implementation. The
laboratory component will utilize common database packages and the SQL
language.
W338. Software Engineering (4 s.h./3 hr. lecture, 2 hr. lab) F S
Prerequisites: CIS 0207 and CIS 0223 (one of which may be
taken concurrently with CIS 338).
This course presents the general principles that serve as the
foundation of software engineering. The student is introduced to the
broader context of system analysis, learns how total system requirements
are analyzed and how decisions are made to a llocate various functions
among hardware, software, and people. The software lifecycle is examined.
The course presents some professional issues, including accountability
of the software engineer in complex systems and legal issues and laws
that relate to software. Introduces database concepts and graphical
user interfaces.
0339. Projects in Computer Science (4 s.h./ 3 hr. lecture, 2 hr.
lab) F S
Prerequisites: CIS W338 and senior standing.
Teamoriented design and implementation of large programming
project. Topics will be proposed by students for review and acceptance
early in the semester. Students are encouraged to use the departments
list of project suggestions as case studies in CIS 0338 and to perform
initial specification and analysis of their projects in CIS 0338. Students
will provide written documentation of their completed projects and will
demonstrate the operation of their completed projects in an oral presentation.
Projects will be solicited from industry and other departments at Temple.
0350. Seminar on Topics in Computer Science (3  4 s.h.) 00  01
Prerequisite: Permission of instructor.
Current problems in computer science.
03970398. Independent Study (1  6 s.h.) F S
Prerequisite: Consultation with faculty member and approval
of department chairperson.
Readings and/or papers under supervision of a faculty member.
