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: First-level 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 hands-on 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: First-level 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

Co-requisite: 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 top-down design and modular programming, software development process, module documentation including preconditions and post-conditions, 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 object-oriented 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: First-Level 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 Low-Level 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 low-level 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: First-level 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 hands-on 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 on-line 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 concept-oriented, 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 context-free 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, floating-point arithmetic, bus structures including single-bus and multi-bus, 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 three-dimensional images. Hardware and software for displaying images, two- and three-dimensional transformations, the hidden line problem, picture processing, character recognition, and two-dimensional 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 object-oriented 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, B-trees, and graphs. Sorting algorithms include insertion sort, heapsort, mergesort, and quicksort. Searching algorithms include binary search, hashing, breadth-first search and depth-first 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 moderate-size 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 user-centered 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, semi-groups, 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.

Team-oriented 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.

0397-0398. 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.