Previous Pagehttp://www.ithaca.eduIndexNext Page

Computer Science Courses

312-11000     Introduction to Computers and Information Systems     NS LA 2b

Introduction to the hardware and software components of a computer system. The appropriate use of an operating system and productivity software (spreadsheets, database management systems, word processors, communication packages) for business applications. Students may not receive credit for this course and 312-15700. Prerequisites: Math placement in Group 3, 2, or 1. 3 credits. (F-S,Y)

312-11500     Discrete Structures for Computer Science I     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; and induction. Prerequisites: Math placement in Group 1. A student may not receive credit for both 312-11500 and 313-20100. 3 credits. (F-S,Y)

312-13600     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-15000     An Introduction to Programming     NS LA

Introduction to computer-based problem solving through the use of a structured imperative language. Additionally, the course discusses the role of the computer in society and the ethical issues facing users of computing technology. Students are required to implement solutions to a number of nontrivial problems chosen from a variety of areas. Prerequisites: Math placement in Group 3, 2, or 1. Students who have earned credit for 312-17100 may not take 312-15000. 4 credits. (S,Y)

312-15700     Ex Machina: The Computer and You     NS LA 2b

A broad, relatively nontechnical survey of the modern digital computer - its structure, methods of use, applications, capabilities, limitations, history, and social and philosophical import. Though inculcation of programming skills is not a major goal of the course, students write and run on the computer several simple programs in various languages to gain direct experience of the concepts under consideration. Those desiring a more rigorous introduction to programming should consider 312-17100. Should not be taken by students contemplating a major in the School of Business. A student cannot receive credit for this course and 312-11000. Prerequisites: Math placement in Group 3, 2, or 1. 3 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 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 and 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)

312-18100     FORTRAN Programming     U LA

The syntax, data structures, and distinctive features of the FORTRAN programming language. Programming assignments develop students' skills in FORTRAN and illustrate typical FORTRAN applications. Prerequisites: 312-17100. 1 credit. (IRR)

312-18200     COBOL Programming     U LA

The 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 LA

The 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-18400     Ada Programming     U LA

The syntax, data structures, and distinctive features of the Ada programming language. Programming assignments develop students' skills in Ada and illustrate typical Ada applications. Prerequisites: 312-17100. 1 credit. (IRR)

312-18500     Advanced Spreadsheets and Modeling     U NLA

An advanced application of the spreadsheet tool to the solution of realistic business problems, including the writing and documentation of macros. The major topics covered in this course include linear and curvilinear regression, database management functions, graphics, file importation, and the manipulation of strings and functions. Students also learn structured programming methods using a spreadsheet command language (LCL). Prerequisites: 312-11000 or 312-17100. 1 credit. (F-S,Y)

312-19000, 312-29000, 312-39000, 312-49000
Topics in Computer Science
    NS LA

Topics to be determined by the instructor and the Department of Mathematics and Computer Science. It 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 A

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-21000     Computer Organization and Assembly Language Programming     NS LA

Computer structure and organization. Machine and assembly language programming. Hardware features and capabilities. Prerequisites: 312-17400. 4 credits. (F,Y)

312-21100     Data Structures and Algorithms     NS LA

Presentation and analysis of major algorithms and data structures for both primary and secondary memory. Topics include: balanced trees, graphs, priority queues, algorithm design techniques, file structure concepts, indexing, B-trees, hashing, and extendible hashing. Prerequisites: 312-11500, 312-17400, and 313-24400. 4 credits. (S,Y)

312-21500     Discrete Structures for Computer Science II     NS LA

Continuation of 312-11500 Discrete Structures for Computer Science I. Topics include basic counting techniques; countability; trees and graphs; Boolean algebra; and proofs of correctness. Prerequisites: 312-17400 and either 312-11500 or 313-20100. 4 credits. (F,Y)

312-30100     Theory of Computation     NS LA

An introduction to theoretical computing science examining (with some mathematical rigor) the basic models of computation and exploring the capabilities and limitations of computers. Undecidability, NP-completeness, and other structural properties are examined. Methods for circumventing theoretical limitations, such as probabilistic algorithms, are also discussed. Prerequisites: both 312-21500 and 312-21100, or a level 3 mathematics course. 3 credits. (F,Y)

312-31000     Computer Operating Systems     NS LA

An introduction to the major concepts and implementation principles of computer operating systems. Both theoretical and practical aspects of operating systems are considered, and students undertake substantial programming projects to illustrate concepts. Topics include scheduling, resource, and storage allocation; interrupts; problems of resolving deadlock, exclusion, and synchronization; job control languages; batch/time sharing; networks/communications; editors, addressing techniques; file structures; concepts of processors in parallel. Prerequisites: 312-21000 and 312-21100. 4 credits. (F,Y)

312-31500     Computer Graphics     NS LA

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 and either 312-21000, 312-21100, or 313-30200. 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 features unique to each. Both algorithmic and functional languages are considered. Prerequisites: 312-21000 and 312-21500. 4 credits. (S,Y)

312-33400     Ethical Conflicts in the Computing Field     NS LA 1a

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-17400 and junior or senior standing. 3 credits. (S,E)

312-34500     Software Engineering with Project     NS LA

Study of the concepts involved in developing large-scale software systems. Topics covered include requirements analysis, functional specifications, prototyping, verification and validation, design methodologies, modularization, data abstraction, information hiding, programming environments, testing and debugging, life cycle models, project management, and configuration management. A major team-oriented software development project provides students an opportunity to apply the concepts learned. Prerequisites: 312-21100 and 312-21500. 4 credits. (S,O)

312-36000     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-36500     Computer Networks     NS LA

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-31000. 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 and permission of the computer science faculty. For 312-47000, senior standing and permission of the computer science faculty. 1-3 credits. (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-11500 and 312-17400. 4 credits. (F,Y)

312-42000     Compilers     NS LA

A study 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. 4 credits. (F,O)

312-44400     Computer Architecture     NLA

Design and organization of computer hardware at the gate level. The course begins with an introduction to digital logic and then examines computer design using logic. Various components such as arithmetic logic units, control units (including pipelined units and microprogrammed units), caches, memory (including ROM and RAM), and buses are examined in detail. A brief overview is given of advanced architectures such as parallel processors and data flow processors. Prerequisites: 312-31000. 4 credits. (F,E)

312-46000     Artificial Intelligence     NS LA

An introduction to artificial intelligence (AI), its foundations, history, failures, and successes. Topics include game playing, automated reasoning, knowledge representation and expert systems, natural language understanding, robotics and vision, neural networks, and learning. Special emphasis is on formal properties of search algorithms, expert system design, and connectionist models. Contributions from other disciplines such as cognitive psychology, philosophy, mathematics, and biology are discussed as appropriate. Additional topics include study of the impact of AI technology on military, industry, financial institutions, medicine, and education, as well as its influence on the creative process in music and film and in the visual and performing arts. Prerequisites: 312-30100. 4 credits. (S,O)

312-47500     Information Systems Project     NS LA

An opportunity to consolidate theory, apply concepts to a practical problem, and enhance understanding of the various facets of the information systems discipline. Students are responsible for the analysis, design, development, documentation, implementation, and testing of an information system. The project may be carried out singly or in small groups of up to four people. Prerequisites: 312-36000 and 312-37500. 3 credits. (F-S,Y)

312-48000     Senior Seminar     NS LA

A seminar in which seniors present a topic of their choice in computer science (under the direction of the faculty); both a paper and oral presentation are required. Prerequisites: Senior standing. 1 credit. (S,Y)

312-49300-312-49400 Honors Course     NS LA

Preparation 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     NLA

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 and completion of three-fourths of the required course work for the major in computer science, computer information science, or mathematics-computer science. 1-12 credits. (IRR)

Previous PageTop Of Pagehttp://www.ithaca.eduIndexNext Page