Undergraduate Bulletin Print Version

> ## College of Computing and Information

> Dean
> Kim L. Boyer, Ph.D.
> Purdue University

> Associate Dean for Applied Learning and Cooperative Education
> James Moulic, Ph.D.
> Polytechnic Institute of New York University

> Assistant Dean
> Nan Carroll, M.P.A
> Harvard University

> Assistant Dean and Director of Finance and Administration
> Diana K. Edelson, B.S.
> University at Albany

> Assistant Dean for Communications, Student Services & Online Education
> Daphne Jorgensen, C.A.S., MLS
> University at Albany

> Engineering can be described as “Science in Service to Society.” The College of Engineering and Applied Sciences is built to educate the next generation of innovators who will address problems of importance to society and build the national wealth. Starting from an existing core of strength in computational and information sciences and engineering, and identifying particular societal needs and opportunities in conjunction with colleagues across the university, the College of Engineering and Applied Sciences will produce graduates prepared for successful careers in industry, government, academia, and research.

> Mission

> The mission of the College of Engineering and Applied Sciences is to educate the next generation of engineering and scientific innovators, to conduct leading-edge research of societal significance within and across traditional academic disciplines, and to prepare our students to assume leadership positions in the creation, application, and use of technology. All our programs are constructed on rigorous scientific and mathematical fundamentals to prepare students for the arc of a three decade, or longer, career.

> All College of Engineering and Applied Sciences courses are preceded by the prefix letter I.

> ## Department of Computer Science

> #### Faculty

> Distinguished Professor Emeritus
> Richard E. Stearns, Ph.D.
> Princeton University

> Distinguished Teaching Professor Emeritus
> Sekharipuram S. Ravi, Ph.D.
> University of Pittsburgh

> Professors Emeriti
> Dean N. Arden, Ph.D.
> Purdue University
> Daniel J. Rosenkrantz, Ph.D.
> Columbia University

> Professors
> Harry B. Hunt III, Ph.D.
> Cornell University
> Neil V. Murray, Ph.D.
> Syracuse University
> Paliath Narendran, Ph.D.
> Rensselaer Polytechnic Institute
> Tomasz Strzalkowski, Ph.D.
> Simon Fraser University
> Dan E. Willard, Ph.D.
> Harvard University

> Associate Professors Emeritus/Emerita
> Seth D. Chaiken, Ph.D.
> Massachusetts Institute of Technology
> Edwin D. Reilly, Ph.D.
> Rensselaer Polytechnic Institute
> Lenore M. Restifo Mullin, Ph.D.
> Syracuse University

> Associate Professors
> Pradeep Atrey, Ph.D.
> National University of Singapore
> George Berg, Ph.D.
> Northwestern University
> Peter A. Bloniarz, Ph.D. (Collins Fellow)
> Massachusetts Institute of Technology
> Mei-Hwa Chen, Ph.D.
> Purdue University
> Jeong-Hyon Hwang, Ph.D.
> Brown University
> Siwei Lyu, Ph.D.
> Dartmouth College
> Ozlem Uzuner, Ph.D.
> Massachusetts Institute of Technology

> Assistant Professors
> Petko Bogdanov, Ph.D.
> University of California at Santa Barbara
> Charalampos Chelmis, Ph.D.
> University of Southern California
> Feng Chen, Ph.D.
> Virginia Polytechnic Institute and State University
> Chinwe Ekenna, Ph.D.
> Texas A&M University
> Amirreza Masoumzadeh, Ph.D.
> University of Pittsburgh
> Shaghayegh Sahebi, Ph.D.
> University of Pittsburgh
> Mariya Zheleva, Ph.D.
> University of California at Santa Barbara

> Professor of Practice
> Vladimir Kuperman, Doctor of Science
> Ministry of Education of Russian Federation

> Lecturer
> Qi Wang, MS
> California State University, at Northridge

> Adjuncts (estimated): 9
> Teaching Assistants (estimated): 12

> Courses offered by the Department of Computer Science provide an introduction to the theory and practice of computing. The ability to use computer programming languages, data structures, multiple levels of system organizations, and principles of computer science is developed in major courses by the completion of programming assignments, problem solving exercises, and projects. Non-major students may elect courses covering aspects of information and the modern digital computer broadly, or on particular areas of computer science, or complete a Computer Science minor for a flexible combination of depth and breadth. For majors there is a Bachelor of Arts major program, and two Bachelor of Science combined major and minor programs, one in Computer Science and the other, interdisciplinary, in Computer Science and Applied Mathematics.

> #### Degree Requirements for the Majors in Computer Science

> Grade Expectations and Prerequisites
> A grade of C or S or better in courses I CSI/I CEN 210, I CSI/I CEN 213, and I CSI/I CEN 333 or their transfer equivalents is a prerequisite for certain succeeding courses that are required in one or more of the programs below. See the course descriptions for details. In unusual situations, such prerequisites might be waived by the department on recommendation of the succeeding course instructor. Students who do not achieve B or better grades in I CSI/I CEN 201, I CSI/I CEN 213, and I CSI/I CEN 333 are strongly advised to consider other majors besides Computer Science because such students often fail upper level Computer Science courses required for graduation.

> #### Bachelor of Arts in Computer Science (CSI)

> The Bachelor of Arts program can provide a liberal arts education with some specific studies in computer science or it can combine computer science with its applications into areas such as informatics, information science, business, scientific research or creative arts depending on the student's choice of minor, or of a second major. Some course choices are provided in advanced requirements so the student can choose between an emphasis on lower level systems or abstract programming principles, or an emphasis on design and implementation of familiar kinds or computing applications.

> General Program B.A.: a minimum of 41 credits as below plus the completion of an approved minor whose courses do not overlap with any of the courses used to complete this major. (See your advisor to find an addition or substitution in case your minor requires a course from those below.)

> - Computer Systems and Science Core (18 credits): I CSI/I CEN 201, I CSI/I CEN 210, I CSI/I CEN 213, I CSI/I CEN 333, and I CSI/I CEN 404
> - Programming Principles and Practice (3 credits): one of I CSI 311 or 405
> - Intensive Software Development (3 credits): one of I CSI 402 or 418 or other course with intensive software development as approved by the department
> - Mathematics (11 credits): A MAT 111 or 112 or 118; 113 or 119; and 367
> - Electives (6 credits): two I CSI courses numbered 400-470 or 500-550 or specially approved by the department

> #### Bachelor of Science in Computer Science (CSCOMB)

> ###

> The combined major and minor program in computer science integrates computer science with diverse sciences consisting of university physics, laboratory science, plus a flexible choice of two science courses at the undergraduate major level. Social aspects of computing, a mix of mathematics, theory and practice, and advanced electives complete the program.

> The program provides excellent career-long preparation for new, unexpected trends in computing, information, their technologies, and related developments and applications in science. It also prepares the graduate for admission to high quality graduate programs in computer science at the Masters or Ph.D. level, and for the advanced Graduate Records Examination in computer science. Strong students in this program are encouraged to apply for the B.S./M.S. program in Computer Science.

> General Program B.S. (combined major and minor sequence): a minimum of 73 credits as follows:

> ####

> - Computer Systems and Science Core (24 credits): I CSI/I CEN 201, I CSI/I CEN 210, I CSI/I CEN 213, I CSI/I CEN 333, I CSI 403, I CSI/I CEN 404, and I CSI 409
> - Programming Language Principles (3 credits): I CSI 311
> - Intensive System Software Development (3 credits): I CSI 402
> - Mathematics (17 credits): A MAT 111 or 112 or 118; 113 or 119; 220; 367; A MAT 214 or 3 credits from any A MAT courses numbered 300 or above
> - Physics and Laboratory Science (8 credits): A PHY 140 or 141; 145; 150 or 151; and 155. Students who took Physics I or II without a laboratory can substitute 1 credit of other laboratory work for each of the A PHY 145 and A PHY 155 requirements
> - Science Sequence (6 credits): one pair of related major biological, physical, or engineering science courses (not in mathematics or computer science) as approved by the department. Approved pairs include A BIO 120 and 121, A PHY 240 and 250, two courses from A PHY/I CEN 353, A PHY 415, and 454, or others as advised
> - Social Aspects of Computing (3 credits): I CSI 300Z
> - Computer Science Electives (9 credits): 6-9 credits must be from I CSI courses numbered 300-470 or 500-550 or specially approved. 3 credits may be in A PHY/I CEN 353 or A PHY 454 in digital hardware, or A PHI 432 in advanced logic

> #### Bachelor of Science in Computer Science and Applied Mathematics (CSMAT)

> The interdisciplinary combined major and minor program in computer science and applied mathematics is a program providing a strong background in the theory and practice of computer science combined with those courses in mathematics which are most likely to be needed for advanced work in computer science, either in graduate study or industrial research and development. It is a good choice for students with particular interests in mathematics as well as computer science.

> This program offers two concentrations: the General Concentration (CSMAT) and Data Analytics (CSMAT-DA)

> These programs provide excellent preparation for the advanced Graduate Record Examination in computer science and will provide an attractive background for admission to high quality graduate programs in computer science. The mathematics portion of the program, with the appropriate selection of one or two electives, can provide a good mathematical background for work in operations research which is an important area of computer application in business, or for numerical computation in a variety of areas related to the scientific and engineering use of computers. The Data Analytics concentration provides a good background for work in data mining and data analysis, using data to inform business decisions.

> General Program B.S. (Combined major and minor sequence): a minimum of 66 credits as follows:

> - Computer Systems and Science Core (18 credits): I CSI/I CEN 201, I CSI/I CEN 210, I CSI/I CEN 213, I CSI/I CEN 333, I CSI 403
> - Mathematics Core (15 credits) A MAT 111 or 112 or 118, A MAT 113 or 119, A MAT 214, 220
> - One Concentration (33 credits)

> General Concentration

> - Programming Language Principles (3 credits): I CSI 311
> - Intensive System Software Development (3 credits): I CSI 402
> - Mathematics and Computational Science (21 credits): A MAT 367, 9 additional credits in A MAT courses numbered 300 or above, I CSI 401, I CSI/I CEN 404, I CSI 409
> - Computer Science or Mathematics Electives (6 credits): two I CSI courses numbered 300-470 or 500-550 or specially approved, or A MAT courses numbered 300 or above, or A PHY/I CEN 353 or A PHY 454 in digital hardware, or A PHI 432

> Data Analytics Concentration

> - Intensive System Software Development (3 credits): I CSI 402 or I CSI 418
> - Data Mining (6 credits): I CSI 410, I CSI 431
> - Probability for Statistics (6 credits): A MAT 308 and A MAT 367 or A MAT 362 and A MAT 363
> - Advanced Level Statistics (9 credits): A MAT 464, 465, and I CSI 451
> - Internship (3 credits): I CSI 490
> - Electives (6 credits): I CSI courses numbered 300-470 or 500-550, A MAT courses numbered 300 or above or other science courses specifically approved by the Computer Science and the Mathematics Departments

> Advanced Placement Substitutions and Specially Approved Electives for all majors:
> The Department may grant advanced placement credit substitutions, and/or replacement of up to 3 credits in Computer Science or Mathematics electives by credits in I CSI 487 or I CSI 488 for Honors majors, or I CSI 490, 497, or 499. Such permission will be granted on the basis of AP exam level, scores and departmental evaluations, the depth and breadth of the resulting program, and a superior grade record of the individual student.

> Graduate Course Equivalents
> Students admitted into the B.S./M.S. program in Computer Science, and seniors with instructor and departmental approval may substitute the graduate courses, below, for the indicated undergraduate required subjects. Other graduate courses may be taken for electives by such students. However only admitted B.S./M.S. students can apply credits (up to 12) from such graduate courses to an Albany graduate degree. All qualified B.S. majors are encouraged to enter the B.S./M.S. and/or Honors programs in order to maximize their opportunities, even if they do not intend to complete the M.S. degree at Albany. Non-B.S./M.S. students eventually admitted to the graduate programs will have to make up the graduate credits but not retake the courses.

> I CSI 501 for 401
> I CSI 503 for 403
> I CSI 509 for 409
> I CSI 518 for 418
> I CSI 519 for 311
> I CSI 551 for 451
> A MAT 560 for A MAT 464
> A MAT 565 for A MAT 465
> Consult the Mathematics Department for information about the Combined B.S. in Computer Science and Applied Mathematics with an M.A. in Mathematics.

> #### Honors Program

> The Computer Science Departmental honors program is an opportunity for qualified students to undertake research or innovative development projects at the undergraduate level, under individualized guidance of computer science faculty, and gain recognition by presenting their accomplishments in a public forum and by a transcript designation. The honors seminars and projects are often conducted within research groups comprised of computer science and interdisciplinary faculty, graduate students, and other undergraduates.

> Students are encouraged to enroll in the Combined B.S./M.S. Program together with this honors program. Combined B.S./M.S. students can substitute some graduate courses for their undergraduate requirements. They might then earn an Albany Master of Science degree sooner by including up to 12 credits from those graduate courses. The honors and beginning graduate study together might also provide excellent preparation for admission to a national research internship program or a Computer Science Ph.D. program.

> Eligibility: To be eligible for admission to the honors program in Computer Science, a student must have a specific prospective faculty honors supervisor who conveys to the Department a statement of permission and agreement to engage in a specific research specialization area. Prior to admission the student must first have declared one of the Bachelor of Science major programs in Computer Science; must have completed the following courses with a GPA of at least 3.50: I CSI/I CEN 201 (or AP), I CSI/I CEN 210, I CSI/I CEN 213, (or a 5 in the CS-AP AB exam), I CSI/I CEN 333, and preferably A MAT 118 and 119 although A MAT 111 or 112, and 113 are acceptable; and have an overall GPA of at least 3.25. Prospective honors students must identify and consult a prospective supervisor prior to honors admission, and should request admission during the semester when they will complete the above courses so admission may be determined when all the required grades are in and the proposed area is evaluated.

> Requirements:

> - All the requirements for the chosen Bachelor of Science program must be completed with one or more elective courses chosen in consultation with the faculty to develop rigorous mastery in a disciplinary specialization. These courses may be either part of or in addition to the major, a minor, a second major, or graduate requirements. Admitted departmental honors students in the 73 credit Bachelor of Science Combined Major and Minor in Computer Science may use I CSI 487 for one of the three Computer Science electives in that program. Students in the 66 credit Computer Science and Applied Mathematics program must take its two electives in addition to I CSI 487.
> - Three credits of Honors Seminar (I CSI 487): as part of this course, students will do independent study in preparation for research or innovative development projects under the supervision of a faculty member, and to present a colloquium on the topic. See the catalog description.
> - At least three credits of honors or graduate project work (I CSI 488Z and/or I CSI 68x and/or I CSI 699): students will be required to pursue research or innovative development under the supervision of a faculty member and submit a final report describing their original work and its background. The courses necessarily have significant writing components. The student will be required to present a public seminar on project results. See the catalog descriptions.

> A GPA of at least 3.50 in the Computer Science courses that go towards the B.S. major must be maintained to continue in the honors program and graduate with an honors major. The faculty supervisor must also certify to the department that the student completed and presented the project results satisfactorily.

> #### Combined B.S./M.A. and B.S./M.S. Programs

> Two combined bachelor’s/master’s degree programs are available with the undergraduate major in computer science and applied mathematics. The combined B.S./M.S. program combines the undergraduate program in computer science and applied mathematics with the graduate program in computer science. The combined B.S./M.A. program combines the undergraduate program in computer science and applied mathematics with the graduate program in mathematics.

> Both programs provide an opportunity for students of recognized academic ability and educational maturity to fulfill integrated requirements of undergraduate and master’s degree programs from the beginning of the junior year. A carefully designed program can permit a student to earn the B.S. and M.S. or the B.S. and M.A. degrees within nine or ten semesters.

> The combined programs require a minimum of 140 credits, of which at least 32 must be graduate credits. In qualifying for the B.S., students must meet all University and college requirements, including the requirements of the undergraduate major described previously, the minimum 60 credit liberal arts and sciences requirement, general education requirements, and residency requirements.

> In qualifying for the M.S. or M.A., students must meet all University and college requirements as outlined in the Graduate Bulletin, including completion of a minimum of 32 graduate credits, and any other conditions such as a research seminar, thesis, comprehensive examination, or other professional experience and residency requirements. Up to 12 graduate credits may be applied simultaneously to both the B.S. and M.S. or the B.S. and M.A. programs.

> Students may apply for admission to either combined degree program at the beginning of their junior year or after the successful completion of 56 credits. A cumulative grade point average of 3.20 or higher and three supportive letters of recommendation from faculty are required for consideration, but admission of a student who meets the minimum requirements is not automatic.

> ## Courses in Computer Science

> I CSI 100 Computing and Disability (3)
> The relation between people with disabilities and computers. Lectures, tutorials, and laboratory will deal with topics such as how computers may be used by persons with disabilities, assistive devices, software, and applications such as word processing, database inquiries, spreadsheets, and telecommunications. For students with disabilities and for professionals who teach and assist people with disabilities.

> I CSI 101 Elements of Computing (3)
> Introduction to the principles and practice of problem solving with computer programming through flowcharting, pseudo-code and ultimately the use of a general purpose programming language such as Visual Basic.NET. Concepts introduced include algorithms, arrays, files, structured programming, top-down design, and objects. Course also includes brief introductions to computer and network technology, applications, and architecture from both a historical and modern perspectives.

> I CSI 102 Microcomputer Software (3)
> Theory and practice of general purpose microcomputer software systems such as spreadsheet and relational database packages. Query languages for database access. Word processing with emphasis on spelling and grammar checking.

> I CSI 103 Topics in Computer Literacy (3)
> Each offering of this course will address one or more topics that are germane to the use of computers in everyday life. The main emphasis of this course will be on the use of available software packages.

> I CSI 105 Computing and Information (3)
> A broad introduction to computer and information sciences and related disciplines. All of these fields study various aspects of information and the modern digital computer. Among the central topics of this course, students will learn basic computer programming because understanding how computers work is a key to understanding their use across all of the disciplines in Computing and Information. The topics include what we can and cannot known through computing, interactions between technology and humans, and a series of contemporary applications of the disciplines. The course includes critical readings, multiple perspectives, formulation and defense of opinions, common themes among diverse topics, and skills and practice of teamwork.

> I CSI 107 Web Programming (3)
> This course is designed to introduce students to the ever changing world of Web Programming. Students will develop the ability to write original code in HTML, XML, CSS, Javascript, etc. to create highly customized websites.

> I CSI 110 Programmed Computing, Worlds, and Problems (3)
> A general introduction to computer science by way of programming and algorithmic problem solving in contexts that provide attractive visualizations of results. Assumes no prior background in programming. The application contexts (animation, robotics, interactive graphics, virtual worlds, games, simulations, etc.) vary from semester to semester. Fundamentals of planning; objects and state; operations, expressions, control structures, logic and procedural decomposition; hierarchies and interactivity are introduced each semester. Provides a background for understanding information technology in terms of its organization, operation, and customization, as well as for further study in computer science and related disciplines. Lecture/workshop and lab meetings.

> I CSI 116 Honors Programmable Computing, Worlds, and Problems (3)
> Honors version of I CSI 110. Includes the same topics and approach as I CSI 110 but with greater depth and emphasis on surveying computer science as an intellectual discipline. It will quickly teach the fundamentals of programming so that students who have never done it before can encounter the challenges and rewards of algorithmic problem solving in the same manner as the professionals. The introduction with virtual world programming will be followed by study, discussion, problem solving, and practice with different embodiments of computing, including finite automata, neural networks, cellular automata, Turing machines, numerical simulations, and practical programming languages in different families such as Java, Scheme/Lisp and Prolog Processes. Team based creative and research projects will be carried out and presented. Prerequisite(s): excellent proficiency with secondary school mathematics.

> I CSI 120 Computational Principles and Issues (3)
> Principles and issues arising in a variety of computational situations. Discussion of topics from computation theory, artificial intelligence, and systems design. From computation theory, an emphasis on impediments to computation, such as undecidability and NP-hardness. From artificial intelligence, an emphasis on knowledge representation. From systems, an emphasis on computer design and on synchronization problems.

> I CSI 124X Computer Security Basics (3)
> An introduction to security in computers and networks for a general audience. The operation of computers and networks is explained to show how they are the basis for attacks. The course will confer a basic but comprehensive understanding of how computer and network attacks (e.g., viruses, worms, denial of service) work. Also, how general users of computers can defend themselves from current and future attacks.

> I CSI 131 Introduction to Data Analytics: Seeking Information in Data with Computation (3)
> This course will offer an introduction to the key terms, concepts and methods in data analysis, with an emphasis on developing critical analytical skills through hands-on exercises of actual data analysis tasks. In addition, students will learn and practice basic programming skills to use software tools in data analysis. Most importantly, this course aims to help students look at the data and their analysis from new points of view, and nurture a habit of finding relevant patterns in large data sets with appropriate analysis steps. This ability becomes particularly important when facing large amounts of data, be they from natural or social science, engineering or business.

> I CSI 201 (= I CEN 201) Introduction to Computer Science (4)
> Computer algorithms and their representation. The principle of information hiding and its relation to program block structure. File structure and access methods. The efficient use of computational resources. Program development and style. Only one of I CEN 200 and I CEN/I CSI 201 may be taken for credit.
> I CSI 203 Data Processing Principles (3)
> Introduction to systems analysis and structured programming techniques using COBOL (Common Business Oriented Language). Basic COBOL, table handling, sorting, file structures and maintenance, storage media, and basic functions of a multi-programming operating system. Prerequisite(s): I CSI 101 or I CSI 110 or I CSI/I CEN 201. Normally offered spring semester only.

> I CSI 204 Scientific Computing (3)
> An introduction to scientific computing using MATLAB. Contents include: basic MATLAB programming including MATLAB M-files and anonymous functions; graphics and visualization in MATLAB; elementary vector and matrix operations in MATLAB; elementary numerical analysis, e.g. Gaussian elimination with pivoting, the bisection and Newton's methods. Possible additional topics include brief introductions to vectorization and parallel numerical algorithms and numerical methods for ordinary differential equations. Prerequisite(s): two semesters of calculus; and I CSI 101, or I CSI 105, or I CSI/I CEN 201, or permission of instructor.

> I CSI 205 Object Oriented Programming for Data Processing Applications (3)
> Introduction to object oriented programming, abstraction and system analysis techniques using an object orientated language such as C++ or Java. Basic syntax and semantics, classes, objects, arrays, and pointers. Modular software design using header or class files and separate compilations and linking. Use of standard class and function libraries and packages. Introduction to memory management and performance issues. Prerequisite(s): I CSI 101 or I CSI 110 or I CSI/I CEN 201. Normally offered fall semester only.
> I CSI 210 (= I CEN 210) Discrete Structures (4)
> Proofs by induction; mathematical reasoning, propositions, predicates and quantifiers; sets; relations, graphs, and trees; functions; counting, permutations and combinations. Only one version may be taken for credit. Prerequisite(s): high school mathematics through precalculus. Prerequisite(s) or corequisite(s): A MAT 112.

> I CSI 213 (= I CEN 213) (formerly I CSI 310) Data Structures (3)
> Commonly used abstract data structures and their implementation. The use of pointers and recursive programming. Stacks, queues, lists and trees, and their application to such problems as sorting and searching. Analysis of algorithms for using these structures. May not be taken by students with credit for I CSI 310. Must be completed with a grade of C or better in order to take I CSI 333. Prerequisite(s): I CSI/I CEN 201 or permission of department chair.
> I CSI 300Z Social, Security, and Privacy Implications of Computing (3)
> The ethical and moral implications of using computers to affect the lives of individual and collective members of human society. Material drawn from a variety of topics, including security and privacy in computers, networks, security measures, and human users, data banks vs. rights to privacy, intellectual property, open vs. closed software, software piracy, unauthorized access, and other computer crimes. Prerequisite(s): I CSI 101, I CSI 110, I CSI/I CEN 201 or other hands-on course in programming and permission of the instructor.
> I CSI 311 Principles of Programming Languages (3)
> Fundamental concepts and general principles underlying programming languages and their use as illustrated by Prolog and Lisp. Analysis and implementation of run-time environment including scope rules, binding, and parameter passing mechanism. Introduction to interpreters and compilers. Prerequisite(s): Grade of C or better required in I CSI/I CEN 210 and I CSI/I CEN 213.

> I CSI 333 (= I CEN 333) Programming at the Hardware Software Interface (4)
> Instruction set architecture of contemporary computers; Boolean logic, memory, registers, instructions and interrupts. Assembly language programming; assembler passes, symbols, macros, function linkage and separate compilations. C language programming; syntax, control, types, abstractions, pointers and strings. Dynamic memory, standard and user written libraries. ANSI and C++ standards. Instruction set simulation. Only one version may be taken for credit. Prerequisite(s): a grade of C or better required in I CSI/I CEN 213.

> I CSI 400 (= I CEN 400) Operating Systems (3)
> Historical overview; operating system services; mass storage file organization; memory management in multiprogrammed systems; virtual memory; resource allocation; concurrent processes; deadlock detection and prevention; security; the design of contemporary operating systems such as UNIX. Only one version may be taken for credit. Prerequisite(s): I CSI/I CEN 333.
> I CSI 401 Numerical Methods for Digital Computers (3)
> Study of practical methods for the numerical solution of a variety of problems on a digital computer. Topics covered will include roots of equations, numerical interpolation, numerical integration and differentiation; the evaluation of mathematical functions, least squares curve fitting; the solution of simultaneous linear equations, matrix inversion and linear programming. Prerequisite(s): A MAT 220 and I CSI/I CEN 213. Normally offered fall semester only.
> I CSI 402 Systems Programming (3)
> Programming aspects of operating systems. Topics covered include implementation of storage management, resource allocation, multi-processing, scheduling, synchronization, inter-process communication, and terminal I/O. Emphasis on projects to enhance subject understanding, problem solving, and programming skills. Prerequisite(s): Grade of C or better required in I CSI/I CEN 333.

> I CSI 403 Algorithms and Data Structures (3)
> Description of common data structures such as lists, push-down stores, queues, trees, and graphs. Definition of algorithm efficiency and efficient algorithms for integer and polynomial arithmetic, sorting, set manipulation, shortest paths, pattern matching, and Fourier transforms. Prerequisite(s): I CSI/I CEN 210 and I CSI/I CEN 213.
> I CSI 404 (= I CEN 404) Computer Organization (3)
> An introduction to the logical organization of the hardware components of computing systems. Topics include logic design from a functional point of view, data representation and processing, description of major components such as the central processing unit and memory, and control and communication within the components and in the system. Only one version may be taken for credit. Prerequisite(s): I CSI/I CEN 333 and I CSI/I CEN 210. Normally offered spring semester only.

> I CSI 405 Object Oriented Programming Principles and Practice (3)
> Object oriented software design principles (abstraction, polymorphism and inheritance; design patterns) with emphases on how they are embodied in a contemporary programming language, the principles of the structure, features and operation of such languages and systems, and increasingly complex API examples, design and implementation problems and projects to build proficient design, problem solving, programming and technology skills. Class presentation and discussion of some team developed project designs. A brief review of Java basics is given but proficiency in Java is highly desirable for the current course. This is not a course for programming beginners. Prerequisite(s): C or better in I CSI/I CEN 213 or sufficient proficiency demonstrated to the instructor.

> I CSI 407 User Interfaces (3)
> The C programming language. Event-driven systems. Aspects of the UNIX operating system that support simulation of multi-tasking in a single processor environment. Window-oriented user interfaces. Pop-up/pull-down menus. Human factors in software engineering. Prerequisite(s): I CSI/I CEN 333.
> I CSI 409 Automata and Formal Languages (3)
> Introduction to the theory of computation. Models of computation including Turing machines and push-down automata will be examined along with their formal language counterparts such as context-free languages. Additional topics include unsolvability, computational complexity, and applications to computer science. Prerequisite(s): I CSI/I CEN 210.

> I CSI 410 Introduction to Databases (3)
> Introduction to using relational database software and database management systems. In-depth coverage of a practical Structured Query Language (SQL), physical and logical database design, rollback and recovery techniques, and access methods including interfaces to programming languages. Prerequisite(s): two semesters of course work in computer programming or equivalent experience. Familiarity with data structures and operating systems concepts is helpful but not required. Normally offered fall semester only.

> I CSI 411 Database Performance Principles and Transaction Management (3)
> Examination of database tuning principles and issues and how they apply to local and distributed transactional databases and data warehouses. Topics include locking and concurrency control, logging and recovery, query tuning, indexing schemes, file partitioning, hardware considerations, and how the database manager interacts with the transaction manager and the operating system. Prerequisite(s): I CSI 410 or a strong working knowledge of SQL.

> I CSI 416 (= I CEN 416) Computer Communication Networks (3)
> Introduction to computer communication networks. Equal emphasis on all layers of the ISO reference model and the TCP/IP protocol suite. Topics include physical networks, sliding window protocols, remote procedure call, routing, naming and addressing, security, authentication, performance, and applications. Only one version may be taken for credit. Prerequisite(s): I CSI/I CEN 400 or I CSI 402, and A MAT 367 or A MAT 370.

> I CSI 417 Compiler Construction (3)
> Compilation vs. interpretation; lexical analysis based on finite automata; parsing; syntax-directed translation; symbol tables; run-time storage allocation; error detection and recovery; code generation and optimization. Prerequisite(s): I CSI/I CEN 333 and I CSI 409.
> I CSI 418Y Software Engineering (3)
> Software engineering principles, the role of abstraction in programming, abstract data types, modularization and module interfaces, specifications, and teamwork. Project work in contemporary concurrent and object-oriented languages. Prerequisite(s): I CSI 405. Normally offered fall semester only.
> I CSI 421 Discrete Mathematics with Applications (3)
> A deeper coverage of the content of I CSI/I CEN 210. Proofs by induction, recursive definitions, and combinatorial analysis. Introduction to recurrence equations, graph theory, and abstract algebra. Applications to proofs of correctness and analysis of combinatorial and algebraic algorithms. Prerequisite(s): I CSI/I CEN 210.
> I CSI 422 (formerly I CSI 302) Introduction to Computer Graphics (3)
> Mathematics, data structures, algorithms, system architecture, and programming projects for implementing two and three dimensional computer graphics software. Rastorization, matrices, linear and projective transformations; clipping, removal of hidden lines and surfaces. Devices, event driven user interaction, and an introduction to window systems and visual programming tools. Prerequisite(s): A MAT 220 and I CSI/I CEN 213, or permission of the instructor.
> I CSI 424 Information Security (3)
> This course covers the broad spectrum of technical issues surrounding computer security and intrusion detection. Topics considered include: viruses, worms, host- and network-based vulnerabilities and countermeasures, database security, intrusion detection, and privacy and legal issues. Facilities for securing hosts and limiting vulnerability are also discussed. Unlike in a systems administration class, detailed operational issues are not discussed. Prerequisite(s): I CSI/I CEN 400 or I CSI 402.
> I CSI 426 Cryptography (3)
> The making of ciphers to encode information is the subject of cryptography. This course covers the field from its origins in early historic times through its most up-to-date implementations and uses in digital computers. Various ciphers will be shown and their security assessed. This latter is known as cryptanalysis – the attempt to break a cipher in order to read the underlying message. The course will emphasize how cryptography and cryptanalysis are intimately related, and how the arms race between the two has motivated progress throughout their history. Prerequisite(s): I CSI/I CEN 333. Corequisite(s): I CSI 403.
> I CSI 430 Introduction to Mathematical Logic (3)
> Topics include logical validity, logical consequence, computerized theorem proving, compactness, soundness, consistency, completeness and incompleteness in the context of propositional logic, first order logic, Frege-Hilbert deduction, and computerized Semantic Tableaux deduction. This course will survey Goedel’s Completeness and Incompleteness Theorems along with decidability, undecidability, and a classification of theoretically computable and uncomputable problems. Prerequisite(s): I CSI/I CEN 210 and permission of instructor.
> I CSI 431 Data Mining (3)
> A course on data mining (finding patterns in data) algorithms and their application to interesting data types and situations. We cover algorithms that address the five core data mining tasks: prediction, classification, estimation, clustering, and associations. Course projects will involve advanced topics such as algorithm developments for handling large data sets, sequential, spatial, and streaming data. Prerequisite(s): I CSI/I CEN 213.

> I CSI 432 Network Science (3)
> Social networks have become important tools for analyzing a wide array of human behaviors and interactions. This course will consider networks arising in many different contexts (e.g. worldwide web, viral marketing, sociology, epidemiology) and present techniques for analyzing such networks. The goal is to understand how the structure of a network influences its behavior. The course will cover the necessary background material in graph theory. Prerequisite(s): I CSI 403 or permission of instructor.

> I CSI 433 Theory and Practice of Multimedia Computing (3)
> This course lays the foundation for students to conduct research in the area of multimedia computing applications. Multimedia computing involves automated processing and analysis of multiple types of data such as text, images, and videos and audio, in a way that whole is greater than the sum of its parts. The course covers state-of-the-art computational techniques and algorithms for multimedia content processing, compression, networking, fusion, summarization, search and retrieval applicable to different areas such as social media, homeland surveillance and cyber security and privacy. The objective of this course is to prepare students to i) understand the theoretical foundation of multimedia computing, and ii) apply computational tools such as Matlab and Intel OpenCV to the processing and analysis of multimedia data. Prerequisite(s): I CSI/I CEN 213 or permission of instructor.

> I CSI 435 Introduction to Artificial Intelligence (3)
> An introduction to the broad spectrum of approaches and techniques of Artificial Intelligence. Emphasis on how to represent knowledge in a computer and how to process that knowledge to produce intelligent behavior. Topics include expert systems, heuristic search, natural language processing and logic-based approaches. Programming assignments using artificial intelligence languages. Prerequisite(s): I CSI 311.

> I CSI 436 Machine Learning (3)
> Machine learning is an important and rapid growing branch of artificial intelligence. The aim of machine learning is to design an algorithm that can extract information from the environment automatically and improve its ability to perform the intended task. Currently, machine learning has been applied in various fields including engineering, bioinformatics, data mining and neurosciences, to name a few. This course provides a broad introduction to machine learning. Specifically, topics that will be covered in the class may include: numerical optimization methods that are essential for machine learning algorithms dimension reduction methods; principal component analysis and ISOMAP classification methods; linear discriminant analysis, k-nearest neighbor classifier, and logistic regression methods; least squares regression, ridge regression, and l1 regularized least squares regression (LASSO) clustering methods; k-means clustering and EM algorithm neural networks support vector machines for classification and regression. Prerequisite(s): A MAT 214, A MAT 220, A MAT 367, and I CSI 401.
> I CSI 440 High Performance Scientific Computing I (3)
> Introduction to distributed, shared memory, and non-uniform memory advanced architectures, advanced networks, advanced parallel and distributed languages supporting scientific computing. Basic linear algebra algorithms and their relation to decomposition, memory, access patterns, and scalability. High-level prototyping languages, experimental methods, performance analysis, and polyalgorithm design. Prerequisite(s): I CSI/I CEN 213, I CSI 401, A MAT 220 and knowledge of numerical methods and Fortran; or permission of instructor.
> I CSI 441 High Performance Scientific Computing II (3)
> Numerical methods for ODE’s, PDE’s and transforms (FFT) suitable for advanced parallel and distributed computing. Explicit versus implicit message generation and processing in distributed computing environments. Advanced experimental methods. High Performance Fortran, F90 and MPI. Prerequisite(s): I CSI 440.
> I CSI 442 An Introduction to Quantum Computation, Information, and Simulation (3)
> The main ideas of Quantum Computation, Information, and Simulation are introduced. The course describes what quantum computation is and how it can be used to solve problems faster than classical computers. The challenges of building a quantum computer are addressed. Quantum simulators are explained and built illustrating the vast differences between quantum and classical gates. The course also covers quantum information, explaining how quantum states can be used to program communications. Prerequisite(s): I CSI 403 or I CSI 503, knowledge of the use of Boolean Algebra in circuit design, and programming experience.

> I CSI 445 Topics in Computer Science (3)
> The contents of this course will vary from semester to semester. Each offering will cover an advanced senior-level topic in Computer Science. May be repeated for credit when content varies. Prerequisite(s): I CSI/I CEN 333 or I CSI 205 and I CSI/I CEN 213 or permission of instructor.

> I CSI 451 (= A PHY 451 & I INF 451) Bayesian Data Analysis and Signal Processing (3)
> This course will introduce both the principles and practice of Bayesian and maximum entropy methods for data analysis, signal processing, and machine learning. This is a hands-on course that will introduce the use of the MATLAB computing language for software development. Students will learn to write their own Bayesian computer programs to solve problems relevant to physics, chemistry, biology, earth science, and signal processing, as well as hypothesis testing and error analysis. Optimization techniques to be covered include gradient ascent, fixed-point methods, and Markov chain Monte Carlo sampling techniques. Only one version may be taken for credit. Prerequisite(s): A MAT 214 (or equivalent) and I CSI 101 or I CSI/I CEN 201. Normally offered in the fall.

> I CSI 487/487Z Honors Seminar (3)
> Each student is required to carry out independent study under the supervision of a faculty member and present a departmental colloquium on the chosen topic. Students may also be required to complete a theoretical or an experimental project, write reports or make short presentations. Only one version of I CSI 487 may be taken for credit. Prerequisite(s): admission to the honors program.

> I CSI 488Z Honors Project (3-12)
> Students are required to pursue research supervised by a faculty member and submit final reports describing their research. Outcomes of this research may include software/hardware artifacts, data collected through experiments, bibliographies or research papers. Each student is evaluated by a faculty committee during the second semester of their senior year. May be repeated for credit. Prerequisite(s): admission to the honors program.

> I CSI 490 Internship in Computer Science (1-3)
> Research or development experience with University units or external agencies or companies requiring significant solutions of problems in areas such as software design, development, programming of tests or extensions, etc. in a practical environment. The relevance to computer science and the technical level of the proposed internship, and the intern's qualifications must be approved by the department. A written report must be accepted by the department before the end of the internship semester. May be repeated for credit. Prerequisite(s): I CSI/I CEN 213 and permission of the department. S/U graded.

> I CSI 496 Independent Teaching and Learning (1-3)
> Participants extend and apply their understanding of computer science by tutoring or assisting in laboratory, tutoring or discussion activities, under faculty supervision, for one or more associated courses. One credit for each weekly contact hour or each 2 to 4 hours of scheduled tutoring, staff meetings, lecture attendance or grading. May be repeated for credit. Total credits of I CSI 198, 199, 496, 497 prior to 2008, and their general education versions may not exceed 9. Prerequisite(s): permission of instructor. S/U graded.

> I CSI 496Y Independent Teaching and Learning (1-3)
> Oral discourse version of I CSI 496. In addition to the I CSI 496 requirements, at least two different lab or discussion exercises will be prepared and conducted, and will be evaluated by the faculty supervisor and section students. May be repeated for credit. Total credits of I CSI 198, 199, 496, 497 prior to 2008, and their general education versions may not exceed 9. Prerequisite(s): permission of instructor. S/U graded.

> I CSI 497 Independent Study in Computer Science (1–3)
> Independent study of advanced topics under the guidance of a computer science faculty member which are not covered in regularly scheduled courses. Three to four hours per week per semester credit should be spent on readings, technology research, problem solving, experimentation with student created and existing software, faculty discussion, etc., culminating in an acceptable and significant written report or paper. May be repeated for credit. Prerequisite(s): junior or senior standing or equivalent experience, at least I CSI/I CEN 213, and the permission of instructor with whom the student wishes to study.

> I CSI 499 Senior Project in Computer Science (3)
> Introduction to software engineering. Students will participate in the design and production of a large, modular program typical of those encountered in business and industry. Prerequisite(s): I CSI 311 or I CSI/I CEN 333, and permission of instructor.

> ## Department of Informatics

> #### Faculty

> Professor
> Philip B. Eppard, Ph.D.
> Brown University

> Associate Professors
> Hemalata Iyer, Ph.D.
> University of Mysore, India
> Abebe Rorissa, Ph.D.
> University of North Texas
> Donghee Sinn, Ph.D.
> University of Pittsburgh
> Joette Stefl-Mabry, Ph.D.
> Long Island University

> Assistant Professor
> Xiaojun (Jenny) Yuan Ph.D.
> Rutgers University

> Lecturers
> Lenore Horowitz, Ph.D.
> University at Albany
> Norman Gervais, M.A.
> University at Albany

> Adjuncts (estimated): 25
> Affiliated Faculty (estimated): 25
> Teaching Assistants (estimated): 6

> The Department of Information Science is a newly-formed department comprised of the former Departments of Informatics and Information Studies. The Department of Information Science offers a broad, interdisciplinary understanding of information and information technologies in society and in organizations. Students are exposed to working with information in a wide variety of formats in order to gain conceptual and practical knowledge of how information is created, organized, represented, stored, accessed, retrieved, managed, and protected in both traditional and non-traditional media. In addition, students investigate the uses and impacts of information and technology on individuals, organizations, and society, including formal and informal communities, libraries, government, and business. This Department offers degree programs at the undergraduate and graduate levels that prepare students to enter professional or academic careers.

> At the undergraduate level, the department offers a B.S. degree in Informatics with several possible concentrations, including a fully online Information Technology concentration. Continuing students who are declared in the B.A. in Interdisciplinary Studies with a faculty-initiated concentration in Information Science can refer to previous Undergraduate Bulletins for degree requirements as well as to their degree audits.

> The Department of Information Science also offers an Informatics minor. There are multiple options. One option combines the Informatics minor with any major. In other options, the minor is coupled with a specific major to enhance the Information Science perspective within that discipline. Currently, the options linked to a major are for Art, Communication, Computer Science, Criminal Justice, Economics, Geography, Journalism, Physics, Sociology, and Women's, Gender and Sexuality Studies majors. See the “Minors” section of this bulletin for details.

> At the graduate level, the department offers a Master of Science in Information Science (M.S.I.S.), accredited by the American Library Association (ALA), and a Doctor of Philosophy in Information Science. A combined B.A./M.S.I.S. or B.S./M.S.I.S. permits highly-qualified students to begin work on the master’s degree while still an undergraduate.

> #### The Bachelor of Science in Informatics

> The B.S in Informatics is a unique opportunity for students to study the application of technology across disciplines. The degree is a combined major and minor, requiring a total of 54 credits. This includes 42 credits of required core courses that focus on the relationship between technology and society, the use of various technologies across platforms, and programming fundamentals. Emphasis is also placed on providing students with various opportunities to gain real-world experience. As part of the 54 credits, students are required to complete 12 credits in a concentration.

> The concentrations are:

> - Interactive User Experience
> - Cybersecurity
> - Social Media
> - Data Analytics
> - Software Development
> - Information Technology (offered fully online)

> The B.S in Informatics prepares students for a wide array of careers. Some potential career options for each concentration are:

> - Interactive User Experience: Web Designer, User Experience Analyst, and Information Architect
> - Cybersecurity: Information Security Analyst, Data Security Administrator, Data Security Administrator, and Computer Security Specialist
> - Social Media: Social Media Community Manager, Social Media Strategist, and Public Information Officer
> - Data Analytics: Data Analyst, Data Mining Specialist, and Data Visualization Specialist
> - Software Development: Application Developer, Software Architect, Software Design Analyst, Systems Programmer
> - Information Technology: IT Project Manager, Computer Support Specialist, and Technical Support Specialist

> #### Degree Requirements for the B.S. in Informatics

> Informatics is a combined major and minor sequence, consisting of a minimum of 42 core credits and selection of a 12 credit concentration (54 credits total).

> Core courses (42 credits)

> Information and Society (9 credits)
> I INF 100X Information in the 21st Century
> I INF 301 Emerging Trends in Information and Technology
> I INF 499 Senior Seminar in Informatics

> Practical Applications (15 credits)
> I INF 108 Programming for Problem Solving or I CSI 105 Computing and Information (or substitute I CSI 201 Introduction to Computer Science)
> I INF 201 Introduction to Web Technologies
> I INF 202 Introduction to Data and Databases
> I INF 203 Introduction to Networks and Systems
> I INF 305 Digital Project Management

> Math (3 credits)
> Any A MAT course between 100 - 299 (except A MAT 108 Elementary Statistics)

> Research (6 credits)
> I INF 200 Research Methods for Informatics (or substitute A SOC 220 Introduction to Social Research)
> A MAT 108 Elementary Statistics (or substitute A SOC 221 Statistics for Sociologists)

> Experiential Learning (9 credits)
> Students will be advised into course-related experiences that complement their chosen concentration. Some classes may be repeated twice for a total of 6 credits but Online IT students only may complete I INF 469 (9 credits) to fulfill this requirement.

> I INF 463 Professional Innovations I
> I INF 464 Professional Innovations II
> I INF 465 Senior Capstone in Informatics (repeatable)
> I INF 466 Independent Research (repeatable)
> I INF 467 Technology-Based Community Support (repeatable)
> I INF 468 Undergraduate Internship (repeatable)
> I INF 469 Undergraduate Internship for Fully Online Students
> E APS 487 or E APS 456, E APS 457 Peer Education

> Concentrations (at least 12 credits)
> Select one concentration.

> Interactive User Experience
> I INF 302 Human-Computer Interactive Design
> I INF 362 Intermediate Interactive Design
> Select two courses from:
> I INF 308 Programming for Informatics
> I INF 363 Digital Design
> I INF 401 Case Studies in Digital Citizenship
> I INF 462 Current Technologies in Interactive Design
> I INF 496 Intermediate Special Topics in Informatics (as appropriate, repeatable)
> I CSI 107 Web Programming
> I CSI 124X Computer Security Basics
> A DOC/A JRL 324 Introduction to Documentary Photography
> A DOC/A HIS 330 Foundations of Documentary Web/Hypermedia Production
> A DOC/A HIS 406 Practicum in Historical Documentary Filmmaking
> A DOC/A HIS 407 Readings and Practicum in Digital History and Hypermedia

> Cybersecurity
> I INF 306 Information Security and Assurance
> I CSI 124X Computer Security Basics
> Select two courses from:
> I INF 401 Case Studies in Digital Citizenship
> I INF 452 Computer and Network Security
> I INF 453 Information Security and Privacy
> I INF 454 Human Aspects of Cybersecurity
> I INF 455 Prevention and Protection Strategies in Cybersecurity
> I INF 496 Intermediate Special Topics in Informatics (as appropriate, repeatable)
> I CSI 300Z Social, Security, and Privacy Implications of Computing
> I CSI 424 Information Security
> I CSI 426 Cryptography

> Social Media
> I INF 307 Current Topics in Social Media
> I CSI 131 Introduction to Data Analytics: Seeking Information in Data with Computation
> Select two courses from:
> I INF 308 Programming for Informatics
> I INF 363 Digital Design
> I INF 401 Case Studies in Digital Citizenship
> I INF 496 Intermediate Special Topics in Informatics (as appropriate, repeatable)
> I CSI 432 Network Science
> A DOC/A HIS 224 Nonfiction Media Storytelling
> A SOC 210 Sociology of Culture
> A SOC 255 Mass Media
> A SOC 270 Social and Demographic Change

> Data Analytics
> I INF 300 Probability and Statistics for Data Analytics
> I CSI 131 Introduction to Data Analytics: Seeking Information in Data with Computation
> Select two courses from:
> I INF 407 Modern Issues in Databases
> I INF 428 Analysis, Visualization, and Prediction in Analytics
> I INF 451 Bayesian Data Analysis and Signal Processing
> I IST 433 Information Storage and Retrieval
> I CSI 431 Data Mining
> I CSI 432 Network Science
> I CSI 436 Machine Learning

> Software Development
> I CSI 201 Introduction to Computer Science
> I CSI 310 Data Structures
> I CSI 418Y Software Engineering
> Select one course from:
> I INF 455 Prevention and Protection Strategies in Cybersecurity
> I CSI 405 Object Oriented Programming Principles and Practice

> Information Technology (online only)
> I INF 302 Human-Computer Interactive Design
> I INF 303 Intermediate Networking
> I INF 306 Information Security and Assurance
> I INF 308 Programming for Informatics

> Self-Designed (with Departmental Approval only)
> Student must provide a proposal of courses to take to support the proposed self-designed concentration that includes at least four courses. At least 9 credits of a self-designed concentration should be taken while enrolled in the INF B.S. program. A proposal must be approved by ISCI faculty before the student can declare it.

> #### Combined B.A./M.S.I.S. or B.S./M.S.I.S. Program

> The combined B.A./M.S.I.S. or B.S./M.S.I.S. program in Information Science provides a unique opportunity for capable, highly motivated students to pursue any undergraduate liberal arts major while at the same time beginning their professional preparation for a career in the rapidly expanding fields of information management and curation. A distinctive feature of the curriculum is the stress placed upon user and human as well as technological factors. Toward the end of their program of study, students will be expected to combine academic study with internship experience in locations such as corporations; New York State government agencies; archives; K-12 school libraries; or academic, public or special libraries.

> Graduates will be prepared for employment in a wide variety of public and private sector settings within business, industry, law, humanities, health and human services, and education where they will function as librarians, archivists, records managers, school library media specialists, information systems specialists, information analysts, or information officers and managers.

> The department is especially strong in five areas: (1) library and information services, (2) archives/records administration, (3) school media, (4) human computer interaction, and (5) information organization and retrieval.

> Students may be admitted to the combined program at the beginning of their junior year or after successful completion of 56 credits. A carefully designed program can enable the student to earn the B.A. or B.S. and M.S.I.S. within 10 semesters. A cumulative grade point average of 3.20 or higher and three supportive letters of recommendation are required. The Graduate Record Exam is not required for admission. In qualifying for the baccalaureate, students will meet all University and school requirements, including existing major and minor requirements, general education requirements, minimum liberal arts and sciences requirements, and residency requirements.

> Additionally, students will complete a minor in Library and Information Science including, as a minimum, the following courses: I CSI 105; I INF 201; I IST 601; I IST 602, and one additional I IST course at the 500 level or above.

> In qualifying for the master’s degree, students will meet all University and school requirements, including completing a minimum of 42 graduate credits, and any conditions such as a research seminar, thesis, comprehensive examination, or other professional experience, and residency requirements. The combined program allows students to complete 12 graduate credits as an undergraduate that are applied to both the undergraduate and graduate degrees.

> ## Courses in Informatics

> #### Informatics

> I INF 100X (formerly I IST 100X) Information in the 21st Century (3)
> Introduction to information and technology in the 21st Century. Different resources, including the Internet, libraries, news sources and other sources of information, hardware, and Web 2.0 technologies will be explored. The primary emphasis of the class is on discovering reliable information sources for any and all subjects so that a student's future research and other pursuits are supported by the methods developed in this course. Each student is called upon to fortify their own individual communication and reasoning skills and will demonstrate the use of those skills through course assignments, class presentations and group activities.

> I INF 108 Programming for Problem Solving (3)
> Ever thought about a problem and said, "There should be an app for that"? This course provides an introduction to computer programming using modern programming languages as a way to solve problems. It focuses on programming concepts and fundamentals within the context of solving real world problems.

> I INF 196 Beginning Special Topics in Informatics (3)
> The contents of this course will vary from semester to semester. Each offering will cover an introductory topic in Informatics. May be repeated for credit when content varies. May not be offered in 2017-2018.

> I INF 197 Beginning Mini Special Topics in Informatics (1)
> The contents of this course will vary from semester to semester. Each offering will cover an introductory topic in Informatics. May be repeated for credit when content varies. May not be offered in 2017-2018.

> I INF 200 Research Methods for Informatics (3)
> In this course students will gain an understanding of key methods and techniques in research and will prepare to critically evaluate and engage in research. Topics covered will include: identifying and articulating research problems, posing research questions, research design, data collection strategies, quantitative and qualitative analyses, interpreting results of analyses, and concerns in human subject research. Prerequisite(s): I INF 100.
> I INF 201 Introduction to Web Technologies (3)
> A technique-oriented introduction to client-based Web design and development technologies, including HTML/XHTML, CSS, JavaScript, digital imaging, file formats, etc.; also the elements of UNIX and networks necessary to understand and implement basic information management and transfer. Prerequisite(s): I INF 100X; not open to students who are taking or have completed I IST 361.

> I INF 202 Introduction to Data and Databases (3)
> This course introduces students to data and databases. It covers both long-standing relational (SQL) databases and newly emerging non-relational (NoSQL) data stores. The nature of data, Big Data, intellectual property, system lifecycle, and development collaboration are also explored. Team-based activities alternate with hands-on exercises. Prerequisite(s): I CSI 101, 105, 110, I CSI/I CEN 201, or B ITM 215; not open to students who are taking or have completed I CSI 410 or 411 or B ITM 331.

> I INF 203 Introduction to Networks and Systems (3)
> This course provides an introduction to computer networking and computer systems. The course covers the fundamentals of networked computing systems with an emphasis placed on the basics of network protocols and how they operate at all layers of the networking models. The course also introduces students to personal computer internal system components, storage systems, peripheral devices, and operating systems from an introductory computer architecture perspective. Prerequisite(s): I CSI 105 or I CSI/I CEN 201.

> I INF 300 Probability and Statistics for Data Analytics (3)
> Probability and statistical methods applied to the analysis of various kinds of data. Includes underlying theoretical justification and appropriateness for different models and analyses. Conceptual and implemented approaches to data analysis. Prerequisite(s): A MAT 108, I CSI 131.
> I INF 301 (formerly I IST 301X) Emerging Trends in Information and Technology (3)
> This course is designed to address challenges of the 21st century from the information science framework. We will explore emerging technologies and discuss how they alter and create new information environments. Examples of these technologies include Big Data, 3D Printing, Social Media, Wearable Computing, etc. Attention will be paid to real world uses of these technologies, emphasizing how they are changing business, government, education, and a number of other industries. This course also focuses on career paths for digital citizens in the 21st century. Prerequisite(s): I INF 100X or I IST 100X.

> I INF 302 Human-Computer Interactive Design (3)
> This course examines human factors, Human-Computer Interaction aspects of application domains, human-centered evaluation, developing effective interfaces, accessibility, emerging technologies, and human-centered computing. Students learn several techniques for rapid prototyping and evaluating multiple interface alternatives and principles of visual design. Information visualization, user-interface software architecture, and formal methods in HCI will be explored. Prerequisite(s): I INF 301.

> I INF 303 Intermediate Networking (3)
> This course is designed to convey the essentials of data communication networks. It will cover concepts, technologies and architectures. There will be practical lessons built into the semester's topics and assignments whenever possible. This course will build on the networking knowledge gained in I INF 203, covering the major conceptual areas balanced with practical discussions and exercises. It will also discuss important network management topics such as domain management and security. Prerequisite(s): I INF 203. Students who have taken I INF/IST 423 may not take I INF 303 for credit.

> I INF 304 Intermediate Hardware and Operating Systems (3)
> The primary objective of this course is to provide the student with a detailed understanding of computer systems from an architectural perspective. The material covered in this course, which builds on that learned in I INF 203, is intended to form a foundation of technical knowledge for systems analysis, design, configuration, selection, and management. The primary emphasis is expanding students' technical knowledge of hardware and system software, with topics including advanced digital circuits, integrated circuits, application development, operating systems, file systems, and systems security. Prerequisite(s): I INF 203. Students who have taken I INF/I IST 424 may not take I INF 304 for credit.

> I INF 305 Digital Project Management (3)
> This course provides an introduction to current practices in project management with a focus on the management of digital projects. It is intended to provide a broad overview of the concepts, issues, tools and techniques related to the management of digital projects from concept to completion. Topics covered include project manager role/responsibilities, project team structure, project documentation, project phases/SDLC, project management methodologies, troubled projects, digital analytics and more. Prerequisite(s): I INF 201 and I INF 202.

> I INF 306 Information Security and Assurance (3)
> Technical aspects of cybersecurity in computer and network systems. The nature of attacks and defense in digital systems; models of vulnerabilities, threats and security; cryptography; forensics; security policies and procedures; software and network security. Prerequisite(s): I INF 202.

> I INF 307 Current Topics in Social Media (3)
> In this course students will explore current topics and trends in social media. An emphasis will be placed on investigating and evaluating multiple social media outlets, writing across social media platforms, and current trends in managing social media programs. Prerequisite(s): I INF 301.

> I INF 308 Programming for Informatics (3)
> Computer programming in an Informatics environment. The fundamentals of programming, including introduction to algorithms, object-oriented design, and data structures. Additional topics include basic interface design, security, networking, use of data bases, and mobile and other non-traditional computing platforms. Prerequisite(s): I CSI 105 and I INF 100.

> I INF 362 Intermediate Interactive Design (3)
> A technique-oriented intermediate exploration of client-based and server-based Web design and development technologies, using current and emerging technologies. Design, planning, security and management of websites will also be examined. Prerequisite(s): I CSI 101, 105, 110, or I CSI/I CEN 201, I INF 201.

> I INF 363 Digital Design (3)
> Students apply design theory to the development and delivery of digital media with emphasis on digital imagery, video, and music. Topics may include consumption of digital media on a variety of devices, creation, acquisition, editing and processing of digital content. Students will develop an appreciation for the role that each media element may contribute to the final user experience. Students will cultivate an understanding of how public policy issues apply to technology, in particular copyright, privacy and freedom of expression. Prerequisite(s): I INF 201.

> I INF 395 Internet Practicum (3-6)
> The course provides students the opportunity to work as a teaching aide and lab assistant in information science. Students will hold weekly lab assistant hours, monitor and respond to student questions on the class listserv, and provide feedback to the course instructor. May be repeated for credit up to a total of 6 credits with permission of department. Prerequisite(s): a grade of B or higher in I INF 100X and permission of instructor. S/U graded.

> I INF 401 Case Studies in Digital Citizenship (3)
> The purpose of this course is for students to explore topics related to digital citizenship through the close examination of case studies. Students will be asked to look to current issues and cases involving digital citizenship and apply themes, such as the ethical use of information, in their examination and discussion of them. Prerequisite(s): I INF 301. May not be offered in 2017-2018.

> I INF 403 Advanced Networking and Security (3)
> This course is designed to provide an advanced coverage of networking with a specific focus on network security and cryptography. This course builds on the concepts and issues examined in I INF 404. Networking security is examined through a study of digital signatures and certificates, authentication protocols, and firewalls and key establishment and management. Also considered are security issues related to people's use of computer networks, communication channels, mobile devices, and the Internet. Also examined are new access control paradigms such as Java security and .NET security. Prerequisites: I INF 303, I INF 404, and some programming experience.

> I INF 404 Advanced Systems and Security (3)
> This course is designed to provide an advanced coverage of systems with a specific focus on cybersecurity. Engineered security is examined through the application and introduction to authentication protocols and intrusion detection for Unix, Windows, databases, and general software security. Also considered are security issues related to people's use of systems including policies and practices for password management and protecting privacy rights. Students also study options for maintaining business continuity in the event of a disruption of business operations. Security models such as Bell-LaPadula are introduced and studied. Specific case studies are used to highlight the choices that must be made to balance operational efficiency of business functions with protecting the business from the onslaught of security threats. Prerequisite(s): I INF 304 and some programming experience.

> I INF 407 Modern Issues in Databases (3)
> This is an advanced undergraduate course to introduce the students to emerging topics in database systems. This course is especially designed for junior/senior students with emphasis on advanced concepts and algorithms in database systems, topics that are state-of-the-art research, or recent seminal contributions in the broad field of database and information systems. Prerequisite(s): I INF 202 and I CSI 131.

> I INF 428 Analysis, Visualization, and Prediction in Analytics (3)
> Principles of data analysis, emphasizing modern statistical and machine-learning based approaches. Also, the important role of simple analyses and visualization to gain an overall understanding of data sets, regardless of size. The role of analytics in creating predictive models of phenomena. The importance of understanding the nature of the data and other methodological considerations. Prerequisite(s): I INF 300 and I INF 407.
> I INF 451 (= A PHY 451 & I CSI 451) Bayesian Data Analysis and Signal Processing (3)
> This course will introduce both the principles and practice of Bayesian and maximum entropy methods for data analysis, signal processing, and machine learning. This is a hands-on course that will introduce the use of the MATLAB computing language for software development. Students will learn to write their own Bayesian computer programs to solve problems relevant to physics, chemistry, biology, earth science, and signal processing, as well as hypothesis testing and error analysis. Optimization techniques to be covered include gradient ascent, fixed-point methods, and Markov chain Monte Carlo sampling techniques. Only one of A PHY 451, I CSI 451, or I INF 451 may be taken for credit. Prerequisite(s): I CSI 101 or I CSI 201, A MAT 214, or equivalents, or permission of instructor.

> I INF 452 Computer and Network Security (3)
> Theoretical, conceptual and practical aspects of computer and network security. The role of algorithms, systems, humans, software and hardware in computer and network vulnerabilities and defense. The two primary focuses of the course will be on the computer and networks, as centers of vulnerability and defense. The course will emphasize hands-on analysis of security issues. Prerequisite(s): I INF 306.

> I INF 453 Information Security and Privacy (3)
> Security and privacy issues in computer and networked systems. The role of systems, design, implementation, etc. on data security in digital systems. Case studies of these roles and how they affect both data security and vulnerability. The legal and ethical aspects of data security and privacy. Prerequisite(s): I INF 306.

> I INF 454 Human Aspects of Cybersecurity (3)
> The roles of individuals, groups, organizations and governments in computer and network security. How the interactions of these with the technical nature of digital systems in many cases forms the core of vulnerabilities. The trade-offs between security and various measures of utility. Conflicting definitions of security at different levels (e.g., governmental vs. individual). Societal measures and values of security. The course will feature case studies to explore many of these issues. Prerequisite(s): I INF 306.

> I INF 455 Prevention and Protection Strategies in Cybersecurity (3)
> The role of security policies and design strategies to minimize security vulnerabilities in computer and networked systems. The affected areas range from the overall design of systems, networking protocols, operating systems and applications software on individual computers to the role of coding standards and end user education in security. Prerequisite(s): I INF 306.

> I INF 462 Current Technologies in Interactive Design (3)
> Provides an advanced coverage of web design and development, with a focus on current technologies and processes. Students will develop skills on the use of software development practices such as agile development and test-driven development. Develop familiarity with current technologies in particular web-based and mobile applications. Prerequisite(s): I INF 362 and I INF 363.

> I INF 463 Professional Innovations I (3)
> Students from particular INF concentrations will represent their area of expertise on an individual or group project. The projects will either be real-life problems as presented by partnering external organizations or real-life problems as posed and solved by the group itself. A culminating paper, application, or presentation will be produced. The instructor will act as a mentor to the student teams and help to guide them through their projects. This is the first of a two-course series. Prerequisite(s): senior in Informatics major. May not be offered in 2017-2018.

> I INF 464 Professional Innovations II (3)
> Students from particular INF concentrations will represent their area of expertise on an individual or group project. The projects will either be real-life problems as presented by partnering external organizations or real-life problems as posed and solved by the group itself. A culminating paper, application, or presentation will be produced. The instructor will act as a mentor to the student teams and help to guide them through their projects. This is the second of a two-course series. Prerequisite(s): I INF 463, senior in Informatics major. May not be offered in 2017-2018.

> I INF 465 Senior Capstone in Informatics (3)
> Students create teams, each representing their specialization, to solve a current technology challenge. The purpose of this course is for students from all the different Informatics tracks to come together and work on a real world Informatics related problem. This course will require completion of 100 hours in a field placement. During their field placement students will work as part of a team comprised of their peers from other Informatics tracks to complete a capstone project. The project itself will be dictated by the individual needs of the placement and the strengths of the team. The Instructor of I INF 465 will act as a mentor to the student teams and help to guide them through their projects. May be repeated for credit up to a total of 6 credits with permission of department. Prerequisite(s): Informatics seniors only and instructor permission.

> I INF 466 Independent Research (3)
> Student-initiated research project under faculty guidance. Students will present their research as appropriate. May be repeated for credit up to a total of 6 credits with permission of department. Prerequisite(s): Informatics juniors and seniors only.

> I INF 467 Technology-Based Community Support (3)
> Students work on-site with a non-profit to provide technology support. Possible projects could include website creation and development, computer lab support, or networking. At least 100 hours/semester are required. Students will also meet with a faculty supervisor throughout the semester and complete a final presentation of their work. May be repeated for credit up to a total of 6 credits with permission of department. Prerequisite(s): Informatics juniors and seniors only.

> I INF 468 (formerly I IST 468) Undergraduate Internship (3)
> The internship has two components: (1) work experience in position related to students interests in computing and information. Interns are expected to spend 8 hours per week during the semester at their internship location; (2) academic seminar where students and faculty mentor meet together monthly to discuss their experiences and general career preparation topics. Assignments may include preparing a resume and cover letter, career development, assessing skills for and barriers to career development, and planning for graduate or professional school. Students are expected to research, identify and find their own possible internship opportunities. This activity will help students to identify their own career goals and manner in which they may best be achieved, and it will also help students to learn career preparation skills that will be useful after graduation. All internship opportunities must be reviewed and approved by appropriate faculty prior to course registration. May be repeated for up to 6 credits. Prerequisite(s): permission of instructor, junior or senior status and a minimum GPA of 2.50.

> I INF 469 Internship for Fully Online Students (9)
> The internship has two components: (1) work experience in position related to the Information technology track. Interns are expected to spend at least 24 hours per week during the semester at their internship location; (2) online academic seminar where students and faculty mentor discuss their experiences and general career preparation topics. Assignments may include preparing a resume and cover letter, career development, assessing skills for and barriers to career development, and planning for graduate or professional school. Students are expected to research, identify and find their own internship opportunities. This activity will help students to identify their own career goals and manner in which they may best be achieved, and it will also help students to learn career preparation skills that will be useful after graduation. All internship opportunities must be reviewed and approved by appropriate faculty prior to course registration. Prerequisite(s): permission of instructor, Informatics juniors and seniors only, IT online track only, fully online students.

> I INF 470 Physical Computing (3)
> This course introduces programmable microcontrollers, digital chips that are used to control electronics and robotics projects. In this course students will simultaneously develop the electronic circuits and associated software for controlling hardware components including sensors and mechanical parts. Topics include electronics fundamentals, analog/digital (A/D) devices, pulse-width modulation (PWM) and embedded programming. Course has hands-on lab setting with a final group project. Prerequisite(s): junior or senior status. May not be offered in 2017-2018.

> I INF 496 Intermediate Special Topics in Informatics (3)
> The contents of this course will vary from semester to semester. Each offering will cover an advanced topic in Informatics. May be repeated for credit when content varies. Prerequisite(s): permission of instructor, and junior or senior standing.

> I INF 497 Intermediate Mini Special Topics in Informatics (1)
> The contents of this course will vary from semester to semester. Each offering will cover an advanced topic in Informatics. May be repeated for credit when content varies. Prerequisite(s): permission of instructor, and junior or senior standing.

> I INF 499W Senior Seminar in Informatics (3)
> This course helps students develop integral professional skills, including presentation of ideas through written and verbal communication, within an Informatics framework. Students will focus on a particular technology company or issue as a mechanism for developing critical thinking and teamwork skills. Prerequisite(s): Informatics seniors only.

> #### Information Studies

> I IST 250/250U Social and Community Informatics (3)
> This course examines information technology from a social and community informatics perspective. Through appropriate readings in the field of information science, as well as in-class discussions, a field study observation, and community service project, students explore emerging technologies that have implications on individual identity, society, and policy development. Only one version of I IST 250 may be taken for credit. May not be offered in 2017-2018.

> I IST 402 History of Recorded Information (3)
> An introduction to the history of how human beings have created, maintained, and preserved information for personal, official, and cultural purposes. Topics include the development of writing, record keeping, and libraries; the emergence of printing and the history of the book; the evolution of record keeping by organizations, government, and individuals; and the impact of different technologies on the development of print and digital culture.

> I IST 433 Information Storage and Retrieval (3)
> An introduction to current practices in information retrieval. Topics covered include key concepts in information storage and retrieval, the document and query structure, matching mechanisms and formal retrieval models, output presentation, and the evaluation of system effectiveness. Includes an investigation of the inner workings of retrieval systems and search engines.

> I IST 457 Introduction to Legal Research (3)
> Examination and analysis of the basic and specialized information sources that provide a structure for legal research. Topics include court reports, digests, annotations, constitutions, Shepard’s citations, loose-leaf reporters, legal encyclopedias and periodicals. Assignments in WESTLAW and LEXIS-NEXIS online databases will provide hands-on familiarity with computer-assisted legal research (CALR). May not be offered in 2017-2018.

> I IST 469/469Z Independent Study (1-3)
> Student-initiated research project under faculty guidance. May be repeated for credit up to total of six credits with permission of department. Prerequisite(s): written approval of the independent study proposal by a supervising faculty member and the department chair is required prior to registration. S/U graded.

> I IST 473Z The History of Children's Literature (3)
> Selected literature for children in English from the beginnings to the early 20th century. Texts are selected to represent different historical periods and diversity of authorial perspectives; the key considerations are the quality of the literature and its historical significance. Attention is given to changing attitudes toward children as reflected in the books provided for them. Writing assignments will range from historical/critical analyses to reader-response essays. May not be offered in 2017-2018.