[Back]

01303/Computer & Information Sciences (C+IN SC)

Students must have at least a "C" in the major prerequisite course ("C-" is not a "C"), in order to continue on to the next major course. There are several courses in programming languages. Which programming course should a student take first? Majors in Information Science & Technology should begin with C+IN SC 1073 (C081) regardless of programming background. Computer Science majors and non-majors with prior experience in a programming language (for example, Pascal, C, C++, Fortran, Java, Matlab) should take C+IN SC 1068 (0067) unless they are specifically interested in learning the Matlab or C programming language first, in which case they should take C+IN SC 1053 (C061) (Programming in Matlab) or C+IN SC 1057 (C071) (Programming in C). Computer Science majors and non-majors with no prior experience in programming in a high-level language should take C+IN SC 1053 (C061) or 1057(C071).

General Education

0823. Math for a Digital World (4 s.h.) RCI: GQ.

Prerequisite: Mathematics placement, a grade of C- or higher in Math 0701 (0045), or transfer credit for Math 0701 (0045).

How can I tell if an e-mail message is really from my bank? If I do online banking, can other people see the information? Does playing the lottery make sense? Does it make sense to draw for an inside straight? How can polling results differ so much from the election --- or do they? Sometimes the winner of an election in the U.S. gets much less than 50% of the vote. Would it make sense to have a run-off in such cases? How long will the worldís oil last, assuming that we use more each year. How long will a million dollars last you, assuming it earns interest until you spend it? If you bought your text online, could someone tap into the Internet and get your credit card number when itís transmitted? Why does the VIN on your car have so many digits?

Note: This course fulfills the Quantitative Literacy (GQ) requirement for students under GenEd and a Quantitative Reasoning (QA or QB) requirement for students under Core.

Students cannot receive credit for C+IN SC 0823/0923 if they have successfully completed MATH 0823/0923.

0835. Cyberspace & Society (3 s.h.) RCI: GS.

(Formerly: GE-SCI 0060.)

Cyberspace technology empowers us to do more, but it also has a societal impact. It raises new questions regarding the use and misuse of information obtained from the Internet. For example, what is the impact of the Internet on intellectual property? How far can computer surveillance go to detect criminal behavior without reducing our civil liberties? How can vulnerable groups be protected from predators, scam artists, and identity theft? Does privacy even exist anymore? You will develop an understanding of the technologies behind the Internet, the web and your computer, and then use this knowledge to evaluate the social and ethical implications of this technology.

Note: (1) Duplicate Course: No credit for students who have taken C+IN SC 1055 (C055). (2) This course fulfills a Science & Technology (GS) requirement for students under GenEd and Science & Technology Second Level (SB) for students under Core.

0853. Gender Issues in Science & Technology (3 s.h.) RCI: GS.

In the business world some of the highest paying jobs go to those who are scientifically and/or technically trained. Yet, science and technology are notoriously low on the list of hiring percentages for women. Is this because the science and technology industries discourage women, or because women are not interested in the science and technology industries? The answers might surprise you! This class will help you to understand the glass ceiling issues that exist in the science and technology industries and how those issues affect all of us, female and male, and the impact of those issues on our day to day lives. Through discussion, reading and guest speakers you will gain insight into the gendered nature of science and technology and how that impacts our innate thoughts and feelings about gender.

Note: This course fulfills a Science & Technology (GS) requirement for students under GenEd and the Science & Technology Second Level (SB) requirement for students under Core.

General Education Honors

0923. Honors Math for a Digital World (4 s.h.) RCI: GQ.

How can I tell if an e-mail message is really from my bank? If I do online banking, can other people see the information? Does playing the lottery make sense? Does it make sense to draw for an inside straight? How can polling results differ so much from the election --- or do they? Sometimes the winner of an election in the U.S. gets much less than 50% of the vote. Would it make sense to have a run-off in such cases? How long will the worldís oil last, assuming that we use more each year. How long will a million dollars last you, assuming it earns interest until you spend it? If you bought your text online, could someone tap into the Internet and get your credit card number when itís transmitted? Why does the VIN on your car have so many digits? (This is an Honors course.)

Note: This course fulfills the Quantitative Literacy (GQ) requirement for students under GenEd and a Quantitative Reasoning (QA or QB) requirement for students under Core.

Students cannot receive credit for C+IN SC 0823/0923 if they have successfully completed MATH 0823/0923.

0935. Honors Cyberspace & Society (3 s.h.) RCI: GS.

(Formerly: GE-SCI H060.)

Cyberspace technology empowers us to do more, but it also has a societal impact. It raises new questions regarding the use and misuse of information obtained from the Internet. For example, what is the impact of the Internet on intellectual property? How far can computer surveillance go to detect criminal behavior without reducing our civil liberties? How can vulnerable groups be protected from predators, scam artists, and identity theft? Does privacy even exist anymore? You will develop an understanding of the technologies behind the Internet, the web and your computer, and then use this knowledge to evaluate the social and ethical implications of this technology. (This is an Honors course.)

Note: This course fulfills a Science & Technology (GS) requirement for students under GenEd and Science & Technology Second Level (SB) for students under Core.

Students cannot receive credit for C+IN SC 0935 if they have successfully completed C+IN SC 0835.

Lower Division Courses

1001. Introduction to Academics in Computer Science (1 s.h.) F S.

Prerequisite: No prerequisites are required. It is strongly recommended that all Computer Science majors take this course during their first semester at Temple University.

Students will be introduced to the field of computing, including potential career opportunities, the Computer & Information Sciences department and its resources, the departmental faculty, and the Computer Science degree programs, as well as the opportunities for internships and research. There will be guest lectures by Computer & Information Sciences faculty, students and alumni, demonstrations of computing technology, and discussions to illustrate the interdisciplinary nature of Computer Science.

Note: This is a required course for all Computer Science majors. Mode: 1 hour lecture.

1006. Informatics for Scientists (2 to 3 s.h.)

This course introduces students to the interdisciplinary nature of science and shows how the use of computational tools facilitates better understanding and improvements in research and technology. The applications will be at the intersection of biological and computer sciences, using basic probabilistic/machine learning techniques to address biological problems and mine data sets including topics such as genome sequencing, drug screening, and DNA micro-arrays.

1048. Introduction to IS&T (4 s.h.) F S.

This course introduces students to the field of Information Systems Technology and outlines the material covered throughout the entire IS&T Program at Temple. The course addresses the three core issues: 1) Information (the basic science of data encoding, transmission and storage); 2) People (the interactions among technologies, users, institutions, and regulations; and 3) Technology (the design and operation of basic information technology devices). The course will be conducted as lectures and case studies where the students will learn how information flows in organizations, how data is stored and processed and how we can use technology to help people and organizations to perform efficiently. Students will work in teams to analyze scenarios and propose solutions by applying analytic techniques and theories covered in the course. Examples and cases will be drawn from a range of domains including: high tech, medical, business and government. Emphasis will be placed on writing proper reports and presentations.

Note: For Information Science and Technology Majors. It is also recommended for undecided students looking for a major. Mode: 3 hr. lect., 2 hr. lab.

1051. Programming for Non-Programmers (4 s.h.) F S SS.

(Formerly: C+IN SC 0051.)

This course introduces students to the principles of computer programming by using a non-traditional approach that reduces or eliminates the barriers often encountered by students. Software tools will provide an easy-to-use environment for students to learn programming. After students have mastered these straightforward introductory tools, the course will make a transition to a traditional programming language.

Note: Duplicate Course: No credit for students who have completed C+IN SC 1057 (C071), 1068 (0067), or 1073 (C081). Mode: 3 hour lecture, 2 hour lab.

1053. Programming in Matlab (4 s.h.) F S SS. RCI: QB. $.

(Formerly: C+IN SC C061.)

Prerequisite: Grade of C or better in Mathematics 1021 (C073) or higher, or placement into Mathematics 1022 (C074).

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 Matlab.

Note: This course can be used to satisfy the university Core Quantitative Reasoning B (QB) requirement. Although it may be usable towards graduation as a major requirement or university elective, it cannot be used to satisfy any of the university GenEd requirements. See your advisor for further information. Mode: 3 hr. lecture, 2 hr. lab.

1055. Computers and Applications (4 s.h.) F S SS. RCI: SB.

(Formerly: C+IN SC C055.)

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 understanding the components of a computer system; the use of the computer to process information; the technology behind computers and networks and how this technology is likely to change; purchasing and maintaining a personal computer system; understanding the technology of the Internet; and social and ethical implications of computing.The laboratory portion of this class will provide students with hands-on experience to supplement the lecture material. Operating system concepts, a working knowledge of collaborative software and the following applications are covered: advanced features of word processing, spreadsheets, databases, presentation software and the resources of the Internet including developing a web site using sound design techniques to publish course documents and incorporating multi-media components.

Note: (1) Duplicate Course: No credit for students who have taken C+IN SC 0835 (GE-SCI 0060). (2) This course can be used to satisfy the university Core Science & Technology Second Level (SB) requirement. Mode: 3 hr. lecture, 2 hr. lab.

1056. Programming for the World Wide Web (4 s.h.) F S.

(Formerly: C+IN SC 0056.)

Prerequisite: Grade of C or better in C+IN SC 1055 (C055) or equivalent.

This course is designed to introduce students with little or no programming experience to the programming languages and techniques that are associated with the World Wide Web. XHTML, Javascript and Flash ActionScript will be used to create web pages and learnbasic programming techniques. Web Server languages and their role in expanding the functionality of the web site will be explored.Emphasis will be placed on the types of programs thatWeb designers and computer users need to create. Rather than writing programs from scratch, emphasis will be placed on modifying running programs to add functionality. The syntax and semantics of the programming languages will be introduced as needed.

Mode: 3 hr. lecture, 2 hr. lab.

1057. Computer Programming in C (3 to 4 s.h.) F S SS. RCI: QB. $.

(Formerly: C+IN SC C071.)

Prerequisite: Grade of C or better in Mathematics 1021 (C073) or higher, or placement into Mathematics 1022 (C074).

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.

Note: (1) Duplicate Course: No credit for students who have previously taken C+IN SC 1053 (0061), 1068 (0067) or 1073 (C081). (2) This course can be used to satisfy the university Core Quantitative Reasoning B (QB) requirement. Although it may be usable towards graduation as a major requirement or university elective, it cannot be used to satisfy any of the university GenEd requirements. See your advisor for further information. Mode: 3 hr. lecture, 2 hr. lab.

1066. Mathematics Concepts for Computers (4 s.h.) F S.

Prerequisite: Grade of C- or better in Mathematics 1021 (C073), or placement into Mathematics 1022 (C074).Co-Requisite: C+IN SC 1073, C+IN SC 1048.

Introduction to mathematical concepts fundamental to IS&T. Topics include: number systems, data representation in computers, data structures, logic, set theory, and algorithms.

Note: For Information Science and Technology Majors. Mode: 3 hr. lect., 2 hr. lab.

1068. Program Design and Abstraction (4 s.h.) F S. $.

(Formerly: C+IN SC 0067.)

Prerequisite: Grade of C or better in Mathematics 1021 (C073) or higher, or placement into Mathematics 1022 (C074). Grade of C or better in C+IN SC 1053 (0061) or 1057 (C071) or a passing score on a placement exam given during the first week of class.

Introduction to problem solving and programming in Java, software engineering, procedural and data abstraction, and object-oriented programming, including class hierarchies, inheritance and interfaces. Data types covered include primitive data types, strings, classes, arrays, vectors, and streams. Programming techniques include at least one technique for searching and sorting an array and an introduction to file processing. (No credit for students who have completed C+IN SC 1073 (C081).)

Note: For Computer Science Major. Mode: 3 hr. lecture, 2 hr. lab.

1073. Computer Programming and Higher Level Languages (4 s.h.) F S. RCI: QB. $.

(Formerly: C+IN SC C081.)

Prerequisite: Grade of C or better in Mathematics 1021 (C073) or higher, or placement into Mathematics 1022 (C074).

Introduction to Java programming methods, software engineering, and procedural and data abstraction. Coverage will include Java programming language, 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, structs, 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 of abstract data types and class.

Note: (1) Duplicate Course: No credit for students who have previously taken C+IN SC 1068 (0067). (2) For Information Science and Technology Major. (3) This course can be used to satisfy the university Core Quantitative Reasoning B (QB) requirement. Although it may be usable towards graduation as a major requirement or university elective, it cannot be used to satisfy any of the university GenEd requirements. See your advisor for further information. Mode: 3 hr. lecture, 2 hr. lab.

1166. Mathematical Concepts in Computing I (4 s.h.) F S.

(Formerly: C+IN SC 0066.)

Prerequisite: Grade of C or better in Mathematics 1022 (C074), or placement into Mathematics 1041 (C085).

Introduction to the mathematical concepts fundamental to computer science. Topics include an introduction to predicate and propositional calculus; sets and set operations; functions and mappings; big-O notation and the growth of functions; algorithms, integers, and matrices; mathematical induction and recursive definitions; combinations, permutations, and binomial coefficients; discrete probability, expected value and variance. Students will also learn formal methods for writing mathematical proofs. Applications to computer science will be illustrated.

Note: Duplicate Course: No credit for students who have completed Mathematics 2196 (W141). Students planning to take advanced courses in mathematics should take Mathematics 2196 (W141). For Computer Science Major. Mode: 3 hr. lecture, 2 hr. rec.

1955. Honors Computers and Applications (4 s.h.) F S SS. RCI: SB.

(Formerly: C+IN SC H095.)

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 understanding the components of a computer system; the use of the computer to process information; the technology behind computers and networks and how this technology is likely to change; purchasing and maintaining a personal computer system; understanding the technology of the Internet; and social and ethical implications of computing. The laboratory portion of this class will provide students with hands-on experience to supplement the lecture material. Operating system concepts, a working knowledge of collaborative software and the following applications are covered: advanced features of word processing, spreadsheets, databases, presentation software and the resources of the Internet including developing a web site using sound design techniques to publish course documents and incorporating multi-media components.

Note: This course can be used to satisfy the university Core Science & Technology Second Level (SB) requirement. Mode: 3 hr. lecture, 2 hr. lab.

Upper Division Courses

2107. Computer Systems and Low-Level Programming (4 s.h.) F S. $.

(Formerly: C+IN SC 0072.)

Prerequisite: Grade of C or better in C+IN SC 1068 (0067).Co-Requisite: C+IN SC 1166 (0066).

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.

Note: For Computer Science Major. Mode: 3 hr. lecture, 2 hr. lab.

2109. Database and File Management Systems (4 s.h.) F S. $.

(Formerly: C+IN SC 0109.)

Prerequisite: Grade of C or better in C+IN SC 1068 (0067) or 1073 (C081), or an equivalent first-semester programming course in C++, C#, Java or VB.Net.Co-Requisite: C+IN SC 2173 (0083).

This is an introductory course in database management systems (DBMS) and file management systems. The course covers data modeling concepts, various file management techniques, data definition and manipulation using SQL, issues in data management, development and implementation of database applications, and a perspective on emerging issues in database systems. Students work in the Lab on various assignments including prototyping and SQL, utilizing state of the art DBMS and CASE tools.

Note: Duplicate Course: No credit for students who have completed C+IN SC 4331 (0331). For Information Science and Technology Major. Mode: 3 hr. lecture, 2 hr. lab.

2166. Mathematical Concepts in Computing II (4 s.h.) F S.

(Formerly: C+IN SC 0166.)

Prerequisite: Grade of C or better in C+IN SC 1166 (0066).

A continuation of C+IN SC 1166 (0066). Concepts include recursion and recursive algorithms; relations including equivalence, congruence, and order; introduction to graphs and trees. Additional topics include Boolean algebra and finite automata. Applications to computer science will be illustrated.

Note: Duplicate Course: No credit for students who have completed Math 3098 (W205). May not be taken for mathematics credit. For Computer Science Major. Mode: 3 hr. lecture, 2 hr. rec.

2168. Data Structures (4 s.h.) F S. $.

(Formerly: C+IN SC 0068.)

Prerequisite: Grade of C or better in C+IN SC 1068 (0067).

A continuation of C+IN SC 1068 (0067). Program style organization and design with continued emphasis on the object-oriented design paradigm. Understanding and use of data abstraction through Java classes and class libraries. Understanding and use of the following Abstract Data Types: strings, stacks, queues, priority queues, lists, linked lists, binary trees, heaps, and hash tables. Introduction to expression evaluation and other applications. Introduction to recursion and comparative analysis of searching and sorting algorithms and data structures. Sorting algorithms include insertion sort, mergesort, heapsort,and quicksort. Searching algorithms include binary search, hashing, and Huffman coding.

Note: For Computer Science Major. Mode: 3 hr. lecture, 2 hr. lab.

2173. Object-Oriented Programming (4 s.h.) F S.

(Formerly: C+IN SC 0083.)

Prerequisite: Grade of C or better in C+IN SC 1073 (C081).

A continuation of C+IN SC 1073 (C081). Consolidation and extension of Java programming skills, focusing on the creation and use classes for data abstraction. (No credit for students who have taken C+IN SC 2168 (0068).)

Note: For Information Science and Technology Major. Mode: 3 hr. lecture, 2 hr. lab.

3203. Introduction to Artificial Intelligence (4 s.h.) $.

(Formerly: C+IN SC 0203.)

Prerequisite: Grade of C or better in C+IN SC 1166 (0066) and 2168 (0068); Grade of C or better in Mathematics 1042 (0086).

Introduction to the issues and ideas of artificial intelligence using LISP and PROLOG. Knowledge of representation, search, problem solving, learning and mathematical reasoning.

Mode: 3 hr. lecture, 2 hr. lab.

3207. Introduction to Systems Programming and Operating Systems (4 s.h.) F S. $.

(Formerly: C+IN SC 0207.)

Prerequisite: Grade of C or better in C+IN SC 1166 (0066), 2107 (0072), and 2168 (0068).

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.

Note: For Computer Science Major. Mode: 3 hr. lecture, 2 hr. lab.

3209. Component-Based Software Development (4 s.h.) F S.

(Formerly: C+IN SC 0209.)

Prerequisite: Grade of C or better in C+IN SC 2168 (0068), 2173 (0083), or an equivalent second-semester programming course in C++, C#, Java or VB.Net.Co-Requisite: C+IN SC 2109 (0109).

The objective of this course is to develop an understanding of how components work and how to program using components in an object oriented design and programming environment. A component is an executable unit of code that provides black-box encapsulation of related services. VB.NET (Visual Basic) will be used as the means to develop and understand both object oriented programming concepts and components.

Note: For Information Science and Technology Major. Mode: 3 hr. lecture, 2 hr. lab.

3211. Automata, Computability, and Languages (3 s.h.) S.

(Formerly: C+IN SC 0211.)

Prerequisite: Grade of C or better in C+IN SC 1166 (0066), 2107 (0072), and 2168 (0068); Grade of C or better in Mathematics 1042 (0086).

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.

3219. Computer Graphics and Image Processing (4 s.h.)

(Formerly: C+IN SC 0220.)

Prerequisite: Grade of C or better in C+IN SC 1166 (0066), 2107 (0072), and 2168 (0068); Grade of C or better in Mathematics 1042 (0086).

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.

Mode: 3 hr. lecture, 2 hr. lab.

3223. Data Structures and Algorithms (4 s.h.) F S. $.

(Formerly: C+IN SC 0223.)

Prerequisite: Grade of C or better in the CS theory course (C+IN SC 2166 (0166), 3211 (0211), or 3242 (0242)) and in C+IN SC 2168 (0068); Grade of C or better in Mathematics 1042 (0086).

Comparative analysis of algorithms and data structures. Data structures include heaps, priority queues, binary and general trees, binary search trees, AVL trees, Red-Black trees, B-trees, and graphs. Algorithms include heapsort, topological sort, breadth-first search, depth-first search, shortest path algorithms, and Greedy algorithms. Students will gain experience working in a group on at least one moderate-size project.

Note: For Computer Science Major. Mode: 3 hr. lecture, 2 hr. lab.

3229. Operating Systems and Networking (4 s.h.) F S. $.

(Formerly: C+IN SC 0230.)

Prerequisite: Grade of C or better in C+IN SC 1068 (0067), 1073 (C081) or an equivalent first-semester programming course in C++, C#, Java or VB.Net.Co-Requisite: C+IN SC 2173 (0083).

This course provides an introduction to computer system architecture, operating systems concepts, and network organization, structure, and management.

Note: For Information Science and Technology Major. Mode: 3 hr. lecture, 2 hr. lab.

3242. Discrete Structures (3 s.h.) F.

(Formerly: C+IN SC 0242.)

Prerequisite: Grade of C or better in C+IN SC 1166 (0066), 2107 (0072), 2168 (0068); Grade of C or better in Mathematics 1042 (0086).

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 computer science.

3281. Cooperative Education Experience in Information Science & Technology (4 s.h.) F S.

(Formerly: C+IN SC 0288.)

Prerequisite: Junior or Senior Standing and permission from the departmental Undergraduate Advisor.

In this course, students undertake directed study in Information Science and Technology, which integrates academic program and work experience. The course is coordinated by an Information Science & Technology faculty member, but supervised by the studentís work supervisor. At the end of the semester students will turn in a final report detailing the work done on the project.

Note: Elective for Information Science and Technology Major.

3287. Software Design/Practicum (4 s.h.) F S.

Prerequisite: C+IN SC 2168 (0068), C+IN SC 3207 (0207).

Provides direct experience in the design, development, documentation, testing and maintenance of medium size software projects, in the use of modern software problem solving abstractions and solution patterns, and in the use of software development environments. This course is the capstone of the programming course sequence.

Note: This is a required course for all Computer Science majors. Mode: 3 hour lecture, 2 hour lab.

3309. Component-Based Software Design (4 s.h.)

(Formerly: C+IN SC 4309 (0309).)

Prerequisite: C+IN SC 2173 (0083) and 2109 (0109).

This course emphasizes component-based software development using Visual Basic .NET. Students are introduced to software development techniques applicable in a component (class)-based, integrated software development environment (IDE). Students will learn (and practice using) the VB .NET language, object-oriented software design techniques, and the principles of good user interface design. Students will also learn how to navigate in, and take full advantage of, an IDE in building quality software, including user interfaces to databases, sequential files, and graphics tools. Object-oriented concepts such as inheritance, polymorphism, static and dynamic binding, and interface (abstract class) components will be covered. The primary focus is on windows-based software products, but the use of ASP.NET for client-server systems development is also introduced.

Note: Students may not get credit for both C+IN SC 4309 and 3309.

3374. Quality Assurance & Testing (4 s.h.) F S.

Prerequisite: Junior standing, programming experience equivalent to C+IN SC 2173, and approval by the instructor.

Learn the techniques for creating quality systems. This course discusses the crucial steps to be taken to assure that systems: do what they are intended to do; work reliably; satisfy the clientís requirements; are completed on time and within budget. Quality practices will be introduced and reviewed to give you a perspective as to why some systems succeed and others fail. Most importantly, students will learn techniques for building quality systems. A number of software tools will be introduced and discussed. Participants will be expected to complete one research paper on test automation, write test plans, and develop the skills to improve the software development process.

Note: For Information Science and Technology Majors. Mode: 3 hr. lect., 2 hr. lab.

3381. Cooperative Education Experience in Computer Science (4 s.h.) F S.

Prerequisite: Junior or Senior standing and permission from the Computer Science Undergraduate Program Director.

Students undertake directed study in Computer Science, which integrates academic program and work experience. The course is coordinated by a Computer Science faculty member, but supervised by the studentís work supervisor. Students will submit a weekly log and turn in a final report detailing the work completed at the end of the semester.

4282. Independent Study (1 to 6 s.h.) F S SS.

(Formerly: C+IN SC 0397.)

Prerequisite: Consultation with faculty member and approval of department chair.

Research under supervision of a faculty member.

4296. Information Systems Analysis and Design (4 s.h.) F S. RCI: WI. $.

(Formerly: C+IN SC W281.)

Prerequisite: Grade of C or better in C+IN SC 2109 (0109), 3209 (0209) and 3229 (0230).Co-Requisite: C+IN SC 4309 (0309).

The analysis and design phases of the System Development Life cycle are covered in detail. Methodologies for systems analysis, specifications, and design are covered. Both the Traditional Structured and Object Oriented methodologies are used by the students, working in teams, to develop real-life information systems. Emphasis is placed on well-written documentation as well as oral communication typically required during the software development life cycle. Project management tools are employed by students to monitor their progress and the costs associated with their projects. CASE tools are employed for data and information modeling and specification.

Note: Duplicate Course: No credit for students who have completed C+IN SC 4298 (W338). For Information Science and Technology Major. Mode: 3 hr. lecture, 2 hr. lab.

4298. Software Engineering (4 s.h.) F S. RCI: WI. $.

(Formerly: C+IN SC W338.)

Prerequisite: Grade of C or better in C+IN SC 3207 (0207) and 3223 (0223).

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 allocate 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.

Note: Duplicate Course: No credit for students who have completed C+IN SC 4296 (W281). For Computer Science Major. Mode: 3 hr. lecture, 2 hr. lab.

4305. Real Time Computer Systems (4 s.h.)

(Formerly: C+IN SC 0305.)

Prerequisite: Grade of C or better in C+IN SC 3207 (0207) and 3223 (0223).

Introduction to the problems and techniques of designing and developing real-time systems. Topics will include components of real-time and embedded systems, system and device architecture, synchronous and asynchronous event handling, multi-tasking in real-time systems, scheduling and synchronization, and real-time data acquisition and control. The laboratory component involves building systems and simulations in real-time environments, with real-time kernels.

Mode: 3 hr. lecture, 2 hr. lab.

4307. Introduction to Distributed Systems and Networks (4 s.h.) F S. $.

(Formerly: C+IN SC 0307.)

Prerequisite: Grade of C or better in C+IN SC 2166 (0166), 3207 (0207) and 3223 (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.

Note: For Computer Science Major. Mode: 3 hr. lecture, 2 hr. lab.

4308. Development of Multi-tier Client/Server Systems (4 s.h.)

(Formerly: C+IN SC 0308.)

Prerequisite: Grade of C or better in C+IN SC 3207 (0207) and 3223 (0223).

The objective of this course is to teach the principles and development of multi-tiered distributed systems. It is introduced with a basic review of internet communications and the architecture of client and server sites, including the functions of and relationships among the browser, web server, operating and file systems, middle-ware, database server, and application servers. Concepts involving various types of client/server side processing and remote connectivity methodologies are reviewed, including scripting languages, HTML, Dynamic HTML, XML, ASP, CGI, and DCOM. About 30% of the course is devoted to the above-described theory. The remainder of the course will be devoted to putting some of these principles and techniques into practice using the DCOM technology. A series of progressively sophisticated problems will be studied and programmed in the lab.

Mode: 3 hr. lecture, 2 hr. lab.

4309. Client/Server and Net-Centric Computing (4 s.h.) F S.

(Formerly: C+IN SC 0309.)

Prerequisite: Grade of C or better in C+IN SC 2173 (0083) and 3229 (0230).

This course emphasizes component-based software development using Visual Basic .NET. Students are introduced to software development techniques applicable in a component (class)-based, integrated software development environment (IDE). Students will learn (and practice using) the VB .NET language, object-oriented software design techniques, and the principles of good user interface design. Students will also learn how to navigate in, and take full advantage of, an IDE in building quality software, including user interfaces to databases, sequential files, and graphics tools. Object-oriented concepts such as inheritance, polymorphism, static and dynamic binding, and interface (abstract class) components will be covered. The primary focus is on windows-based software products, but the use of ASP.NET for client-server systems development is also introduced.

Note: For Information Science and Technology Major. Mode: 3 hr. lecture, 2 hr. lab.

4319. Computer Networks and Communications (4 s.h.) $.

(Formerly: C+IN SC 0320.)

Prerequisite: Grade of C or better in C+IN SC 3207 (0207) and 3223 (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.

Mode: 3 hr. lecture, 2 hr. lab.

4324. Compiler Design (4 s.h.)

(Formerly: C+IN SC 0324.)

Prerequisite: Grade of C or better in C+IN SC 3223 (0223).

The student will learn what a compiler is and how it works. Topics covered include: how to specify what a legal program is in a language (syntax); how to specify what a legal program does (semantics); how a computer uses these specifications to recognize a legal program and translate this program into the machineís language. Students will develop a working compiler for a simple object-oriented programming language using an Object-Oriented approach, using C++, and the compiler construction tools lex and yacc.

Mode: 3 hr. lecture, 2 hr. lab.

4329. Network Architectures (4 s.h.)

(Formerly: C+IN SC 0330.)

Prerequisite: Grade of C or better in C+IN SC 3229 (0230).

This course covers the operation of computer networks and internets. It provides the background to enable students to evaluate alternative approaches to client-server computing and n-tier software development. To accomplish this the course includes communications technology, computer network technology internetworking using the TCP/IP protocol suite, client-server protocols, client-server computing, network program component models as well as issues involving security, privacy, authentication, intellectual property rights, and social changes related to computer networking.

Note: For Information Science and Technology Major. Mode: 3 hr. lecture, 2 hr. lab.

4331. Principles of Database Systems (4 s.h.) F S. $.

(Formerly: C+IN SC 0331.)

Prerequisite: Grade of C or better in C+IN SC 3207 (0207) and 3223 (0223).

This course will cover the fundamental concepts of database systems, with an emphasis on relational database systems. It will cover both the theory and practice of relational databases, including Coddís original relational model, the relational algebra and calculus, and normalization. Students will learn how to do database design using the (extended) entity-relationship model. There will be a semester-long project in which students will design and implement an actual database, using an existing relational database management system, such as Access, MySQL, or Oracle.

Note: Duplicate Course: No credit for students who have completed C+IN SC 2109 (0109). Mode: 3 hr. lecture, 2 hr. lab.

4339. Projects in Computer Science (4 s.h.) F S. $.

(Formerly: C+IN SC 0339.)

Prerequisite: Grade of C or better in C+IN SC 4298 (W338) and senior standing.

Team-oriented design and implementation of large programming project. Students will propose topics for review and acceptance early in the semester. 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 the University. Students with a GPA of 3.0 or better can pursue an independent research project. The project must first be approved by a CS faculty member who is willing to supervise it and the Computer Science undergraduate program coordinator.

Note: Duplicate Course: No credit for students who have completed C+IN SC 4396 (W381). For Computer Science Major. Mode: 2 hr. lecture, 4 hr. lab.

4340. Seminar in Information Science & Technology (4 s.h.) F S.

(Formerly: C+IN SC 0345.)

Prerequisite: Grade of C or better in C+IN SC 3209 (0209) and 3229 (0230).

Current problems in information science and technology.

Note: Elective for Information Science and Technology Major.

4342. Networked Application Systems (4 s.h.)

(Formerly: C+IN SC 0342.)

Prerequisite: Grade of C or better in C+IN SC 4309 (0309).

The objective of this course is to provide further depth, beyond C+IN SC 4309 (0309), into the development of network deployed systems. Its emphasis is on distributed, multi-tier architectures. The course is divided into 3 parts. First is the theory associated with protocols, architectures, middleware, and database transactions. These include such topics as HTTP, SOAP, DNA, Multi-tiered architecture, Web Services, .NET Framework, .NET Remoting ADO.NET and COM+. The second part is a deeper knowledge of the ASP.NET and VB.NET languages beyond C+IN SC 4309 (0309). This would include (1) application system design, construction and packaging via .NET assemblies, server controls, and custom controls, (2) component and data distribution via COM+, XML, SOAP, Web Services and .NET Remoting, (3) database transactions via ADO.NET, and (4) report generation via Crystal Reports. The third part of the course is a project that the student will perform in the design and programming of a distributed application.

Note: For Information Science and Technology Major. Mode: 3 hr. lecture, 2 hr. lab.

4344. Client/Server Scripting Languages for Web Development (4 s.h.)

(Formerly: C+IN SC 0344.)

Prerequisite: Grade of C or better in C+IN SC 3209 (0209) and 3229 (0230).

The objective of this course is to provide the student with an in-depth analysis of the static Hypertext Markup Language (HTML) in addition to the major Internet Client Side and Server Side Dynamic Scripting Languages. An in depth overview of the Extensible Markup Language (XML) and its anticipated impact on future web development will also be covered. Client Side JavaScript topics include variables, functions, methods and events, controlling program flow through decision making, the JavaScript document object model (DOM), JavaScript language objects, developing interactive forms, creating cookies, JavaScript security, controlling frames and framesets using JavaScript, DHTML scriplets, creating custom JavaScript objects and object-based JavaScript. Server Side VBScript/ASP topics include ASP applications, virtual directories, application and session level ASP objects, using the global.asa file to handle application and session events, creating cookies, ASP intrinsic objects, ActiveX Data Objects and ASP error handling.

Note: Elective for Information Science and Technology Major. Mode: 3 hr. lect., 2 hr. lab.

4350. Seminar on Topics in Computer Science (4 s.h.) F S. $.

(Formerly: C+IN SC 0350.)

Prerequisite: As proposed by the instructor and approved by the Computer and Information Sciences undergraduate committee.

Current problems in computer science.

Note: Elective for Computer Science Major.

4362. Application System Development Using Relational Technology (4 s.h.)

(Formerly: C+IN SC 0362.)

Prerequisite: Grade of C or better in C+IN SC 2109 (0109) or 4331 (0331).

This course will assist in achieving a significant level of understanding and synergy of a variety of Oracle tools, environments and languages including SQL*Plus, PL/SQL, Oracle Forms and Reports. As a parallel line it will be supported by a course project done in a team environment where every team member will do independent work in addition to learning how to work in a team. The course project will include a functional requirements specification, database design, SQL queries, SQL-based listings and reports, reports developed using Oracle Reports, online interface using Oracle Forms, and PL/SQL code supporting the developed application system.

Note: Elective for Information Science and Technology Major. Mode: 3 hr. lect., 2 hr. lab.

4372. C++ Applications Programming (4 s.h.)

(Formerly: C+IN SC 0372.)

Prerequisite: Grade of C or better in C+IN SC 3209 (0209) and 3229 (0230).

The C++ programming language is used extensively for interest and applications programming. This course is aimed at providing students with the object-oriented programming experience needed in applying C++ to these problem areas. The objectives are two-fold. One aim is to enhance the studentís ability to organize large scale programming tasks using the object oriented approach. The second aim is to further the studentís ability to develop error-free maintainable code.

Note: Elective for Information Science and Technology Major. Mode: 3 hr. lect., 2 hr. lab.

4376. E-Commerce System Development (4 s.h.)

(Formerly: C+IN SC 0382.)

Prerequisite: Grade of C or better in C+IN SC 4309 (0309).

The objective of this course is to teach the technical aspects of developing a commercial web site. This process combines a number of technologies: (1) web page and style sheet design, (2) dynamic web pages that access data from relational and XML databases, (3) client and server side transaction processing, (4) principles of internet security, scalability, and database reliability, (5) distributed component integration using packages for major functions such as credit card validation, shopping cart management, order fulfillment and inventory management. Students will develop a site as a course project. They will use the Microsoft Visual Studio.NET as the principal software development tool. This includes the ASP.NET and VB.NET languages. Tools to perform the other tasks include Front Page for web design, an XML editor for XML pages, and the Microsoft Enterprise Manager for the management of SQL Server databases and VS.NET component deployment. The course will provide numerous online references to all of these languages and tools.

Note: Elective for Information Science and Technology Major. Mode: 3 hr. lecture, 2 hr. lab.

4378. Computer and Network Security (4 s.h.)

(Formerly: C+IN SC 0386.)

Prerequisite: Grade of C or better in C+IN SC 3229 (0230).Co-Requisite: C+IN SC 4329 (0330).

This course provides an introduction to the inherent insecurities in todayís computer systems and networks, and the commonly used tools and techniques used to secure them. Topics include cryptography basics, virtual private networks, secure sockets, e-mail security, firewalls, building secure software, kerberos, web server security, viruses, intrusion detection systems, and privacy issues.

Note: Elective for Information Science and Technology Major. Mode: 3 hr. lect., 2 hr. lab.

4382. Independent Study (1 to 6 s.h.) F S SS.

(Formerly: C+IN SC 0398.)

Prerequisite: Consultation with faculty member and approval of department chair.

Research under supervision of a faculty member.

4396. Information Systems Implementation (3 s.h.) F S. RCI: WI.

(Formerly: C+IN SC W381.)

Prerequisite: Grade of C or better in C+IN SC 4296 (W281) and 4309 (0309).

This is a capstone course where teams of students implement the information system for which they developed specifications in C+IN SC 4296 (W281). The teams create the database, programs, procedures and documentations necessary for their project. Techniques of modular design, program development, testing and integration are employed. Emphasis is placed on writing documentations, oral presentations and project management.

Note: Duplicate Course: No credit for students who have completed C+IN SC 4339 (0339). For Information Science and Technology Major. Mode: 3 hr. lecture, 2 hr. lab.
[Back] [Top]