[Back]

Undergraduate Course Descriptions 2010-2011
Last updated 10/8/2010


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.

What Computer Programming course should I take first?

If you might major or minor in CS (Computer Science) or IST (Information Science and Technology) and you have no programming experience, take CIS 1073 (Intro to Programming in Java). Then if you select IST, you have one course completed, if you select CS, you will be ready for CIS 1068.

If you are an engineering major, you will take CIS 1057 (Intro to Programming in C). After this, you may take CIS 1073 (if you select the IST minor) or CIS 1068 (if you select the CS minor).

If you might major in math, science, or engineering, you can take CIS 1053 (Intro to Computing using Matlab, which is good for research calculations). After this, you may take CIS 1073 (if you select the IST minor) or CIS 1068 (if you select the CS minor).

If you have programming experience (e.g., Java, VB, Pascal, C) and you want to major in CS, you can take CIS 1068 (Program Abstraction and Design) straight away, or you can take CIS 1053 or CIS 1057 prior to taking CIS 1068.

 

General Education

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

Prerequisite: A grade of C or higher in Math 0701 (0045) or 0702 or higher, or placement into Math 1021 (C073) or higher.

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: (1)This course fulfills the Quantitative Literacy (GQ) requirement for students under GenEd and a Quantitative Reasoning (QA or QB) requirement for students under Core. (2) Duplicate Course: 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.)

Prerequisite: A grade of C or higher in Math 0701 (0045) or 0702 or higher, or placement into Math 1021 (C073) or higher.

This course provides students with an understanding of the underlying principles of technology that have an impact on their lives and how those principles are related to real-world activities. The course promotes information fluency by giving students an understanding of the foundational concepts on which the technology is derived and helping them to develop higher-level intellectual capabilities for applying the technology. The class is broken into three equal sections – technology, ethics and virtual labs. It is the combination of these three sections that will enable students to understand the foundation and the implementation of technology in their daily lives. Class lectures, readings, virtual labs and student discussions will be utilized to integrate the application of technology with social and ethical issues facing society. As examples, discussions might include: What is the impact of the Internet on intellectual property? How far can government surveillance go to detect criminal behavior without reducing our civil liberties? How can vulnerable groups be protected from predators, scam artists, and identity theft? Is it ethical to download free music and video from the Internet?

Note: (1) Duplicate Course: No credit for students who have taken C+IN SC 1055 (C055), 1955 (H095) or 0935. (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.

Prerequisite: A grade of C or higher in Math 0701 (0045) or 0702 or higher, or placement into Math 1021 (C073) or higher.

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: (1) This is an Honors course. (2) This course fulfills the Quantitative Literacy (GQ) requirement for students under GenEd and a Quantitative Reasoning (QA or QB) requirement for students under Core. (3) Duplicate Course: 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.)

Prerequisite: A grade of C or higher in Math 0701 (0045) or 0702 or higher, or placement into Math 1021 (C073) or higher.

This course provides students with an understanding of the underlying principles of technology that have an impact on their lives and how those principles are related to real-world activities. The course promotes information fluency by giving students an understanding of the foundational concepts on which the technology is derived and helping them to develop higher-level intellectual capabilities for applying the technology. The class is broken into three equal sections – technology, ethics and virtual labs. It is the combination of these three sections that will enable students to understand the foundation and the implementation of technology in their daily lives. Class lectures, readings, virtual labs and student discussions will be utilized to integrate the application of technology with social and ethical issues facing society. As examples, discussions might include: What is the impact of the Internet on intellectual property? How far can government surveillance go to detect criminal behavior without reducing our civil liberties? How can vulnerable groups be protected from predators, scam artists, and identity theft? Is it ethical to download free music and video from the Internet?

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

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. It is also recommended for undecided students looking for a major.

Mode: 1 hour lecture.

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

Prerequisite: A grade of C or higher in Math 0701 (0045) or 0702 or higher, or placement into Math 1021 (C073) or higher.

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.

Prerequisite: A grade of C or higher in Math 0701 (0045) or 0702 or higher, or placement into Math 1021 (C073) or higher.

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

Prerequisite: A grade of C or higher in Math 0701 (0045) or 0702 or higher, or placement into Math 1021 (C073) or higher.

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). Also, you cannot get credit if you take two of the courses at the same time.

Mode: 3 hour lecture, 2 hour lab.

1052. Introduction to Web Technology and Programming (4 s.h.)

Prerequisite: A grade of C or higher in Math 0701 (0045) or 0702 or higher, or placement into Math 1021 (C073) or higher.

This course is designed to introduce students with no programming experience to the programming languages and techniques associated with the World Wide Web. The course will introduce web-based media-rich programming tools for creating interactive web pages. Basic animation programming is also introduced with an emphasis on media-rich content creation, distribution and tracking capabilities.

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: (l) 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 want to take another programming course first, in which case they should take C+IN SC 1053 (C061) (Programming in Matlab) or C+IN SC 1057 (C071) (Programming in C) or C+IN SC 1073 (C081) (Programming in Java)--before taking C+IN SC 1068. (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.

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

(Formerly: C+IN SC C055.)

Prerequisite: Prerequisite: A grade of C or higher in Math 0701 (0045) or 0702 or higher, or placement into Math 1021 (C073) or higher.

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, 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) or 935 (GE-SCI H060). (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 learn basic 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 that Web 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) 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 want to take another programming course first, in which case they should take C+IN SC 1053 (C061) (Programming in Matlab) or C+IN SC 1057 (C071) (Programming in C) or C+IN SC 1073 (C081) (Programming in Java)--before taking C+IN SC 1068. (2) Duplicate Course: No credit for students who have previously taken C+IN SC 1053 (0061), 1068 (0067) or 1073 (C081). Also, you cannot get credit if you take two of the courses at the same time. (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.

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

Prerequisite: Grade of C or better in Mathematics 1021 (C073) or higher, or placement into Mathematics 1022 (C074) or higher. 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.

Note: (1) 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). (2) For Computer Science Majors.

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) or higher.

Introduction to programming methods, software engineering, and object-oriented programming. Topics covered include the Java programming language, top-down design and object-oriented programming, the software development process, module documentation including preconditions and post-conditions, debugging, and testing programs. Data types covered include primitive data types, arrays, strings, and objects. Programming techniques include classes and methods, searching and sorting an array, and an introduction to file processing.

Note: (1) Majors in Information Science & Technology should begin with C+IN SC 1073 (C081) regardless of programming background. (2) Duplicate Course: No credit for students who have previously taken C+IN SC 1068 (0067). Also, you cannot get credit if you take these two courses at the same time. (3) For Information Science and Technology Majors. (4) 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 higher, or placement into Mathematics 1041 (C085) or higher.

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: (1) Duplicate Course: No credit for students who have completed Mathematics 2196 (W141). (2) Students planning to take advanced courses in mathematics should take Mathematics 2196 (W141). (3) For Computer Science Majors.

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

Prerequisite: Prerequisite: A grade of C or higher in Math 0701 (0045) or 0702 or higher, or placement into Math 1021 (C073) or higher.

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) or 0935 (GE-SCI H060) or 1055 (C055). (2) This is an Honors course. (3) 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) or MATH 2196 (W141).

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

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 1048 and (C+IN SC 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: (1) Duplicate Course: No credit for students who have completed C+IN SC 4331 (0331). (2) For Information Science and Technology Majors.

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 MATH 1041 (C085), and C+IN SC 1166 (0066) or MATH 2196 (W141).

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: (1) Duplicate Course: No credit for students who have completed Math 3098 (W205). (2) May not be taken for mathematics credit. (3) For Computer Science Majors.

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

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 1066 and 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.

Note: (1) Duplicate Course: No credit for students who have taken C+IN SC 2168 (0068). (2) For Information Science and Technology Majors.

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

2308. Web Application Programming (4 s.h.)

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

This course introduces the techniques used in the design and implementation of web applications. Using development environments such as Dreamweaver, Visual Studio, Eclipse, Netbeans, and SQL Management Studio, students write code for the browser (HTML, Cascading Style Sheets, javascript, ajax), web application server (JSP, PHP, or C# .NET), and database server (SQL, stored procedures, triggers). Students learn about internet protocols and how to work with web application objects (e.g., request, response, session). Students learn how design patterns such as MVC (Model-View-Controller) can and should be applied to the multi-tiered, distributed software that make up today’s web applications. XML (a format commonly used to transfer data over the internet) and web services (a method call to a remote computer over the internet) are discussed and demonstrated. Each student will program their own web application, expanding on its functionality each week in the lab.

3033. Computational Probability and Statistics (4 s.h.)

Prerequisite: C+IN SC 1068 (0067) or 1073 (C081) with a grade of C or better, and MATH 1042 (0086) with a grade of C or better.

The goal is to introduce students to modern and extremely useful topics in computational statistics. It focuses on computational aspects and provides a hands-on introduction to fundamental concepts of data analysis. The course is composed of 3 hours lecture and 2 hours lab with programming assignments in Matlab. Consequently, the students will be able to immediately see their results with programming assignments in Matlab. No prior Matlab knowledge is required. The course offers a solid foundation for further courses in data mining, machine learning, artificial intelligence, robotics, computer vision, and in general in computational statistics and scientific computing.

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) or MATH 2196 (W141)] and C+IN SC 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.

Note: For Computer Science Majors.

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) or MATH 2196 (W141), C+IN SC 2107 (0072), and C+IN SC 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 Majors.

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) or MATH 2196 (W141), C+IN SC 2107 (0072), and C+IN SC 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.

Note: For Computer Science Majors.

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

(Formerly: C+IN SC 0220.)

Prerequisite: Grade of C or better in C+IN SC 1166 (0066) or MATH 2196 (W141), C+IN SC 2107 (0072), and C+IN SC 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.

Note: For Computer Science Majors.

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 Majors (For BA CS Majors see your advisor).

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 1048 and 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 Majors.

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) or MATH 2196 (W141), C+IN SC 2107 (0072), C+IN SC 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.

Note: For Computer Science Majors.

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: For Information Science and Technology Majors.

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

Prerequisite: Grade of C or better in C+IN SC 2168 (0068) and 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: For 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: Grade of C or better in C+IN SC 2173 (0083), 2109 (0109), 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: (1) Duplicate Course: Students may not get credit for both C+IN SC 4309 and 3309. (2) For Information Science and Technology Majors.

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

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.

Note: For Computer Science Majors.

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), 2173 (0083), and 3229 (0230). Co-Requisite: C+IN SC 3309.

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: (1) Duplicate Course: No credit for students who have completed C+IN SC 4298 (W338). (2) 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: (1) Duplicate Course: No credit for students who have completed C+IN SC 4296 (W281). (2) For Computer Science Majors.

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.

Note: For Computer Science Majors.

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

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.

Note: For Computer Science Majors.

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

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

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

Note: For Computer Science Majors.

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.

Note: For Computer Science Majors.

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

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

4331. Principles of Database Systems (4 s.h.) 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: (1) Duplicate Course: No credit for students who have completed C+IN SC 2109 (0109). (2) For Computer Science Majors.

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

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

(Formerly: C+IN SC 0345.)

Prerequisite: Junior standing and approval by the instructor.

Current problems in information science and technology.

Note: For Information Science and Technology Majors.

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

(Formerly: C+IN SC 0342.)

Prerequisite: Grade of C or better in C+IN SC 3309.

The objective of this course is to provide further depth, beyond CIS 3309, 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 software engineering design principles and distributed processing in client/server architectures and database systems. The second part is a deeper knowledge of the ASP.NET and VB.NET languages beyond CIS 3309. This would include such topics as web and windows applications, user interfaces, event handling, database design and ADO.NET, Web Services, Ajax, user controls, and report generation. The third part of the course is a project that the student will perform in the design and programming of a distributed client/server application.

Note: For Information Science and Technology Majors.

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

4344. Advanced Web Application Design and Scripting (4 s.h.)

(Formerly: C+IN SC 0344.)

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

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: For Information Science and Technology Majors. Prior to spring 2011, the course title was “Client/Server Scripting Languages for Web Development.”

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: For Computer Science Majors.

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: For Information Science and Technology Majors.

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 3229 (0230) and 3309.

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: For Information Science and Technology Majors.

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 3309 and 4342.

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: For Information Science and Technology Majors.

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: For Information Science and Technology Majors.

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 3309 (0309). Co-Requisite: C+IN SC 4342 (0342).

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: (1) Duplicate Course: No credit for students who have completed C+IN SC 4398 (4339, 0339). (2) For Information Science and Technology Majors.

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

4397. Independent Research in Computer Science (4 s.h.) F S. RCI: WI.

Prerequisite: Grade of C or better in C+IN SC 3287, senior standing, and overall GPA>=3.0, Computer Science GPA>=3.5 and a research sponsor in the Computer & Information Science department. Approval by CS UG Committee: 11/15 for Spring registration and 4/15 for Fall registration.

Students undertake directed research study in Computer Science, which integrates academic program and work experience. The research project must be approved by the chair of the Computer Science undergraduate program. The student must submit written progress reports throughout the semester to the project sponsor and a substantial written document at the completion of the research project.

Note: (1) This course can be used to fulfill the capstone requirement. (2) For Computer Science Majors (For Math/CS Majors see your advisor).

4398. Projects in Computer Science (4 s.h.) F S. RCI: WI. $.

(Formerly: C+IN SC 4339, 0339.)

Prerequisite: Grade of C or better in C+IN SC 3287 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: For Computer Science Majors (For Math/CS Majors see your advisor).

Mode: 2 hr. lecture, 4 hr. lab.
[Back] [Top]
Last updated 10/8/2010