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. Prerequisites: Math placement in Group 3, 2, or 1. 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-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-13800 - - - 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 MacOS is expected. 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/NLA
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-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, 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. 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 LA
Computer structure and organization. Investigation of operating systems including processes, memory management, and file systems. Overview of network structures. Prerequisites: 312-17400; and 312-11500 prior or concurrent. 4 credits. (F,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 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 and 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)
312-28500 - - - Information Technology: Concepts and Principles - - - NS LA
Presents 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-11000 or equivalent knowledge and 312-17100. 4 credits. (S,Y)
312-30100 - - - Theory of Computation - - - NS LA
Introduction 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 LA
In-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 LA
Analysis 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 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 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 features unique to each. Both algorithmic and functional languages are considered. Prerequisites: 312-21000. 4 credits. (S,Y)
312-34400 - - - Computer Architecture - - - NLA
Investigates 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-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-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 and permission of the computer science faculty. For 312-47000, senior standing and 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)
312-42000 - - - Compiler Theory - - - NS LA
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 or 312-30100. 4 credits. (F,O)
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 and permission of the instructor. 3 credits. (F-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 coursework for the major in computer science, computer information systems, or mathematics-computer science. 1-12 credits. (IRR)

The Web version of the Ithaca College Undergraduate Catalog 2001-2002 is produced by the Ithaca College publications office. Send all comments, corrections, questions to