|
Computer Science Courses312-11000 Computers and Information Technologies NS LA 2bDevelops student expertise in the use of a computer and the major software tools used for personal and professional productivity with an emphasis 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. Prerequisites: Math placement in Group 3, 2, or 1. 3 credits. (F-S,Y) 312-11500 Discrete Structures for Computer Science NS LAAn 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-13600 Introduction to Multimedia Programming NS LAIntroduces 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-13800 Introduction to Web Development NS LAIntroduction 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. Prerequisites: Math placement in Group 3, 2, or 1. 3 credits. (F-S,Y) 312-17100 Principles of Computing Science I NS LAA 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 LAA continuation of 312-17100 with emphasis 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 LAThe 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) 312-18200 COBOL Programming U LAThe syntax, data structures, and distinctive features of the COBOL programming language. Programming assignments develop students' skills in COBOL and illustrate typical COBOL applications. Prerequisites: 312-17100. 1 credit. (IRR) 312-18300 C Language Programming U LAThe syntax, data structures, and distinctive features of the C programming language. Programming assignments develop students' skill in C and illustrate typical C applications. Prerequisites: 312-17400. 1 credit. (IRR) 312-19000, 312-29000, 312-39000, 312-49000 Topics in Computer Science NS LA/NLATopics 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) 312-19200, 312-29200, 312-39200, 312-49200 Independent Study in Computer Science U L AEnrichment 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 LAIntroduction 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, 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: One course with a field experience component from the humanities and sciences teaching option program. 2 credits. (F-S,Y) 312-21000 Introduction to Computer Organization and Systems NS LAComputer structure and organization. Investigation of operating systems including processes, memory management, and file systems. Overview of network structures. Prerequisites: 312-17400; prior or concurrent enrollment in 312-11500. 4 credits. (F,Y) 312-23400 Ethical Issues in the Computing Field NS LAThe 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; either 377-10600 or 377-10700 or equivalent. 3 credits. (S-Y) 312-24500 Introduction to Software Engineering NS LAProvides an introduction to life-cycle models, requirements, analysis, and system specification concepts and concerns. Emphasis 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 NLAIntroduction 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) 312-28500 Information Technology: Concepts and Principles NS LAPresents basic concepts and foundational theory of information technology and information systems. Develops expertise in the use of current programming tools and the application of spreadsheets, database, and event-driven object-based programming concepts within the overall structure of basic interface design concepts. Prerequisites: 312-17100. 4 credits. (S,Y) 312-30100 Theory of Computation NS LAIntroduction to theoretical computing science examining (with some mathematical rigor) the basic models of computation and exploring the capabilities and limitations of computers. Finite automata, regular languages, regular grammars, undecidability, NP-completeness, and other structural properties are examined. Methods for circumventing theoretical limitations, such as probabilistic algorithms, are discussed. Prerequisites: 312-21000 or a level-3 mathematics course. 4 credits. (F,Y) 312-31000 Implementation of Computer Operating Systems NS LAIn-depth investigation of the major concepts, algorithms, and implementation principles of computer operating systems. Both theoretical and practical aspects of operating systems are considered; students undertake substantial programming projects to illustrate concepts. Topics include scheduling; resource and storage allocation; problems of resolving deadlock, exclusion, and synchronization; memory allocation, secondary storage implementation, and distributed system structures. Prerequisites: 312-21000. 4 credits. (S,O) 312-31100 Algorithms and Data Structures NS LAAnalysis of major algorithms and data structures for primary memory. Data structures include graphs, dynamic hash tables, and balanced tree structures. Other major topics are algorithm design techniques (greedy method, divide/decrease and conquer, recursion and dynamic programming, branch and bound, and approximation algorithms) and an introduction to parallel algorithms. Prerequisites: 312-24500. 4 credits. (F,Y) 312-31500 Computer Graphics NS LAAn 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; either 312-21000 or 313-26000. 4 credits. (S,E) 312-32100 Programming Languages NS LAAn 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 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 LAThis course presents the fundamental concepts of design, prototyping, evaluation, and implementation of user interfaces 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-11500; 312-17400. 4 credits. (S,Y) 312-34400 Computer Architecture NLAInvestigates the design and organization of computer hardware. Reviews computer organization issues; provides an overview of data representation, addressing modes, subroutine calling mechanisms, and a thorough introduction to digital logic; examines in detail the major components of a computer (including arithmetic logic units, control units, and memory). Prerequisites: 312-21000. 4 credits. (S,E) 312-36500 Computer Networks NS LABasic 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 NLAAfter 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 LAStudy 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) 312-42000 Compiler Theory NS LAStudy of the principles and techniques of compiler construction. Topics include lexical analysis, parsing, semantic analysis and intermediate code generation, run-time environments, code generation, code optimization, and error recovery. Prerequisites: 312-32100 or 312-30100. 4 credits. (F,O) 312-43000 Virtual Reality NS LAThis 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 LAStudy 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 LAOffers 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) 312-49300-312-49400 Honors Course NS LAPreparation of honors thesis in partial fulfillment of requirement for graduation with honors in computer science. Prerequisites: Honors standing in computer science. 1-2 credits. (IRR) 312-49800 Computer Science Internship for Majors NLAA 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) |
|
|
|
A. Ozolins, Office of Publications, 21. October, 2002 |