Computer Science Courses

312-10500 Introduction to Web Development NS LA

Introduction to the Internet, Web browsers, and using the Internet as a research resource. Students study Web page design techniques and concepts and use these to develop Web pages with basic HTML and more advanced features such as tables, frames, forms, and style sheets. The basics of storing and displaying graphics including file formats for graphics files, creating images for the Web, and optimizing colors and size for display on browsers. The use of scripting languages such as JavaScript is introduced. Prior experience using Microsoft Windows or the Mac OS is expected. Students who have completed or are taking either 312-20500 may not receive credit for this course. Students may not receive credit for this course and for 882-26000. 3 credits. (F-S,Y)

312-10600 Introduction to Multimedia Programming NS LA

Introduces applications that produce text, sound, graphics, animation, and movies on the computer. A multimedia scripting language and a development environment necessary to combine the media into an interactive application are studied. Programming concepts (abstractions, control mechanisms, data structures), problem decomposition, and design concepts (user interface design and the integration of media) are discussed and utilized. Previous computer experience is assumed. This course meets for three hours of lecture and two hours of laboratory every week. Prerequisites: Math placement in Group 3, 2, or 1. 4 credits. (S,Y)

312-11000 Computers and Information Technologies NS LA 2b

Develops student expertise in the use of a computer and the major software tools used for personal and professional productivity, with an emphasis placed on spreadsheets and database management systems. Includes an introduction to the components of a computer system and to social and ethical issues surrounding the use of a computer. Students may receive credit for only one of the following courses: 312-11000, 660-13900, 661-13900, 662-13900, 663-13900. Students who have already taken 312-20100 cannot receive credit for this course. Prerequisites: 3 credits. (F-S,Y)

312-11500 Discrete Structures for Computer Science NS LA

An introduction to discrete structures for computer science. The major topics of study include statements and sets, proof techniques, predicate logic, relations and functions, counting and probability concepts, matrices, trees, and induction. Prerequisites: 313-11100 (or its equivalent) or math placement in Group 2 or 1. 4 credits. (F-S,Y)

312-17100 Principles of Computing Science I NS LA

A disciplined introduction to problem-solving methods and program development. In addition to standard control structures, data structures, algorithms, and abstraction mechanisms, topics include testing and an introduction to algorithm analysis and proofs of correctness. Prerequisites: Math placement in Group 2 or 1. 4 credits. (F-S,Y)

312-17400 Principles of Computing Science II NS LA

A continuation of 312-17100 with an emphasis placed on data structures. Topics include object-oriented programming, more advanced data structures, and formal techniques for program testing and algorithm analysis. Prerequisites: 312-17100; prior or concurrent enrollment in either 312-11500 or 313-11100. 4 credits. (F-S,Y)

312-17900 Topics: Computer Languages U LA

The syntax, data structures, and distinctive features of a specific programming language chosen from those not given detailed coverage in any regularly offered computer science course. Programming assignments develop students' skills in the language and illustrate typical applications. Possible languages include C++, LISP, and PROLOG. Prerequisites: 312-17100. Restricted to students who have not already taken a course treating in detail the language offered by this course. May be repeated for credit with different languages. 1 credit. (IRR)

Topics to be determined by the instructor and the Department of Mathematics and Computer Science. May be repeated for credit for selected topics on different subjects. Prerequisites: As appropriate to topics. 1-4 credits. (IRR)

Enrichment and extension of the regular curriculum to areas not covered in existing courses. Arranged individually between student and faculty sponsor according to guidelines available from the department. 1-4 credits. (IRR)

312-20100 Technology for the Middle/Secondary School Teacher NS LA

Introduction to the concepts and skills necessary for applying information technology in educational settings. Topics include basic computer/technology operations and concepts including terminology, access and manipulation of data, installation and use of software, basic troubleshooting, use of a variety of peripheral devices, and social and ethical issues. Pedagogical studies of technologies. Projects require integrating application software problem-solving skills, concepts, and technical skills and relating them to some aspect of the

teaching profession. Students who have completed 312-11000 should consult with the mathematics and computer science department and the coordinator of teacher education before enrolling in this course. Prerequisites: Prior or concurrent enrollment in one course with a field experience component from the humanities and sciences teaching option program. 2 credits. (F-S,Y)

312-20500 Advanced Web Programming NS LA

Introduction to the creation of interactive and dynamic Web pages. Students study the technologies and concepts necessary to add interactive scripts to Web pages (client-side programming), receive and supply information to Web pages (server-side programming using scripting), and to store information (database creation). Prerequisites: 312-10500 or 312-17100. 4 credits. (F-S,Y)

The seminar acquaints students with many of the ethical issues faced by professionals in the computing field. Students are required to formulate and support positions on these issues, both orally and in writing. Readings explore differing opinions and issues of controversy among computer professionals. Prerequisites: 312-17100; 377-10600 or 377-11000, or equivalent. 3 credits. (S,Y)

312-24500 Introduction to Software Engineering NS LA

Provides an introduction to life-cycle models, requirements, analysis, and system specification concepts and concerns. Emphasis is placed on the activities in the design, implementation, and testing phases of the system life cycle. Students work in groups and individually on a variety of projects. Prerequisites: 312-17400; 312-11500. 4 credits. (S,Y)

312-28400 Assembly Language Programming U NLA

Introduction to the syntax and distinctive features of an assembly language. Includes a discussion of addressing modes and methods of passing parameters to procedures. Programming assignments develop the student's skills in using an assembly language and illustrate the utility of lower-level programming. Prerequisites: 312-17400. 1 credit. (S,Y)

An introduction to the basic concepts of computer graphics. Two-dimensional algorithms, including output primitives, transformations, and others, are covered in detail. Three-dimensional algorithms are introduced. Prerequisites: 312-17400; 312-11500 or 313-26000. 4 credits. (S,E)

312-32100 Programming Languages NS LA

An intermediate-level course in the theory of programming languages and corresponding abstract machine models. Theory of parsing and grammar construction. The specification of language syntax and semantics. A survey of actual programming languages, typical high-level language constructs, and the features unique to each. Both algorithmic and functional languages are considered. Prerequisites: 312-21000. 4 credits. (S,Y)

312-32500 HCI: User Interface Design and Development NS LA

This course presents the fundamental concepts of design, prototyping, evaluation, and implementation of user interfaces (UIs), which is part of the field of HCI (human-computer interaction). Topics of study include user-centered design, task analysis, prototyping, interface design principles, user testing, interface metaphors, windows and event-driven programming, and heuristic evaluation. Principles of human perception and cognition are applied to user interface design. Web interface designs and 3-D user interfaces are also studied. Prerequisites: 312-17400; or 312-17100, 312-18000, and 312-20500. 4 credits. (S,Y)

Basic concepts of computer networks and data communications. The major topics include transmission media, error detection, routing, client-server models, remote execution, and encryption. Includes a discussion of characteristics of local and wide area networks, heterogeneous networks, and case studies of current networks. This course contains a laboratory component that includes topics such as network configuration, topologies and protocols, and installation of networks. Prerequisites: 312-21000. 4 credits. (S,Y)

312-37000/312-47000 Computer Project U NLA

After consultation with the computer science faculty, a project is undertaken to design and implement a substantial computer application under the guidance of one or more faculty members. Prerequisites for 312-37000: Junior standing; permission of the computer science faculty. Prerequisites for 312-47000: Senior standing; permission of the computer science faculty. 1-3 credits. (F-S,Y)

312-37500 Database Systems NS LA

Study of the basic concepts involved in database systems, including database architecture, data models, database design, and query techniques. The course includes practical experience in designing, implementing, and using an actual database. Prerequisites: 312-21000 or 312-28500. 4 credits. (F,Y)

This course introduces the fundamental concepts of virtual reality (VR) with an emphasis on the interdisciplinary nature of VR system development and applications. Topics will be explored both through lectures and through hands-on, in-class exercises. Students will be expected to write a paper on a relevant topic of their choice and to participate in a final programming project that further explores some aspect of VR development. Prerequisites: 312-31500. 3 credits. (F,E)

312-46100 Systems Analysis and Design NS LA

Study of the analysis and design of business-oriented systems. The major topics include data flow analysis, the systems development life-cycle approach, qualities of good system design, and design strategies. This course also introduces students to structured analysis and design techniques. Prerequisites: 312-37500. 4 credits. (S,Y)

312-47500 Senior Project NS LA

Offers students the opportunity to consolidate theory and apply concepts to a computer-based problem, thus enhancing their understanding of various facets of the computing discipline. Students are responsible for the analysis, design, development, documentation, implementation, and testing of the computer system. The project may be carried out singly or in small groups of up to four people. Prerequisites: Senior standing; permission of instructor. 3 credits. (F-S,Y)

A computer science project, carried out within an organization outside the department, that is not routine, entails significant work experience, and has substantial academic content. The student is primarily responsible for developing a project proposal and carrying it out in conjunction with a faculty sponsor from the department and a supervisor from the outside organization. At the end of the project, the student shall present a report based on the experience. With departmental approval, up to 4 credits may be counted as upper-level elective credit toward a major in computer science or mathematics-computer science. Prerequisites: Permission of a faculty sponsor; completion of three-fourths of the required coursework for the major in computer science, computer information systems, or mathematics-computer science. 1-12 credits. (IRR)