| fsu torches | | florida state university |
FSU > Registrar > Bulletins > Undergraduate > TOC > Computer Science

Department of COMPUTER SCIENCE

College of Arts and Sciences

Chair: Ted Baker; Professors: Baker, Hawkes, Kohout, Lacher, Levitz, Riccardi, Whalley; Associate Professors: Banks, Gallivan, Mascagni, Schwartz, Turner; Assistant Professors: Douglas, Liu, McDuffie, VanEngelen, Yuan; Visiting Professor: Burmester; Visiting Assistant Professor: Srinivasan; Courtesy Professors: Conrad, Erlebacher, Simons, Gaede, Harmon, Hussaini; Computing Resources Manager: Sprague; Associates in Computer Science: Baldauf, Gaitros; Assistants in Computer Science: Myers, Scott, Sprague; Assistant Scholar/Scientist: Leach

The mission of the Department of Computer Science is to provide students with the fundamental knowledge and interdisciplinary problem-solving skills required for a fulfilling career, and to create and disseminate knowledge to improve computer science education and practice.

A student in the department can look forward professionally to employment in an industrial or financial firm, a governmental agency, or secondary, college, or university teaching.

In computer science education, whether graduate or undergraduate, keeping up with progress in the field is essential. Computer science is an exceptionally fast-moving field where knowledge is subject to rapid obsolescence and ideas progress swiftly from research to practice. The department therefore seeks to offer technical instruction on the frontier of new developments while simultaneously providing each student with a core of intellectual tools that will never become obsolete. The department views skills in communication, mathematics, and algorithmic reasoning as central and the understanding of underlying principles as more important than familiarity with specific technical products. Still, direct hands-on experience is essential to mastering these skills and principles. If students are to be adequately prepared for careers in computer science, they should have extensive experience with modern machines and software.

The department also has a number of active research programs in the following areas: computer security; cryptography; programming languages; compilers; real-time systems; databases; fault tolerance; networks; neural networks; expert networks; fuzzy sets and systems; scientific visualization; human computer interaction; computational science and engineering. These research programs enjoy external support from agencies ranging from the National Science Foundation to the private sector.

In support of the research mission, as well as in support of the instructional and public service missions, numerous research institutes and research centers have been established at the University. Three of these institutes and centers particularly affect the operation of the computer science programs.

The Institute for Cognitive Sciences was established to conduct interdisciplinary research in the field of human cognition. The Department of Computer Science is one of five participating academic departments.

The School of Computational Science and Information Technology (CSIT) supports graduate education, provides a leading-edge high-performance computational facility, and performs basic research in core areas of applied computer science, applied numerical mathematics and the overlap of these areas with traditional disciplines. The scope of CSIT includes the science and technology of performing, analyzing, and archiving large-scale computations over wide-area networks, and its goal is to employ large-scale computer and network resources in pursuit of scientific and technological research goals. CSIT supports multidisciplinary faculty, postdoctoral research fellows, and graduate students.

The Office of Technology Integration offers computing services for the entire campus through three areas. One, Academic Computing and Network Services (ACNS http://www.acns.fsu.edu) manages the campus backbone network and FSU-wide servers for popular services such as email, web servers, etc. ACNS also maintains a number of computer-equipped laboratories and classrooms. User Services (US http://www.us.fsu.edu) provides dial-up help desk support, training and software licensing. Finally, the third area, Administrative Information Systems (AIS http://www.ais.fsu.edu), in conjunction with the Northwest Regional Data Center (http://www. nwrdc.fsu.edu), provide support for mainframe-based and client-server administrative computing services.

The Department of Computer Science has a full range of computing facilities available for a variety of instructional and research needs. Faculty and graduate students share a group of high-performance workstations, file servers, and compute servers over the departmental LAN. A majors laboratory supports undergraduate and graduate instructional needs through networked workstations and file servers. Dial-up access is supported through multiport modem servers. All departmental machines are connected to the local campus network and the Internet. Students and faculty whose research requires higher computational power may apply for access to a variety of state-of-the-art machines, including supercomputers and compute clusters, across the University.

Degrees Offered

The Department of Computer Science offers programs leading to the bachelor of science (BS) and bachelor of arts (BA) degrees, the master of science (MS) and master of arts (MA) degrees, and the doctor of philosophy (PhD) degree in computer and information sciences (CIS). At the bachelor and master levels, programs of study are available for those who plan to work toward higher degrees, as well as for students planning on careers as computing professionals.

Accreditation

The undergraduate program in computer science is accredited by the Computer Accreditation Commission of ABET, 111 Market Place, Suite 1050, Baltimore, MD, 21202-4012; (410) 347-7700.

Distance Learning

Both of the undergraduate majors (CS and SE) are available via Internet-supported distance learning. Certain limitations regarding students seeking admission to upper-division studies in the computer science department apply. For more information contact The Florida State University's Office for Distributed and Distance Learning at http://www.oddl.fsu.edu.

Honors in the Major

The Department of Computer Science offers a program in honors in the major to encourage talented juniors and seniors to undertake independent and original research as part of the undergraduate experience. For requirements and other information, see the "University Honors Program and Honor Societies" section of this General Bulletin.

State of Florida Common Course Prerequisites

The State of Florida has identified common course prerequisites for this University degree program. Specific prerequisites are required for admission into the upper-division program and must be completed by the student at either a community college or a state university prior to being admitted to this program. Students may be admitted into the University without completing the prerequisites, but may not be admitted into the program.

The following lists the common prerequisites or their substitutions necessary for admission into this upper-division degree program:

  1. MAC X311;

Note: the following courses, though not required for admission into the upper division major, are required for completion of the degree:

    1. COP XXXX (introductory programming in Ada, C, C++, or PASCAL or equivalent language);
    2. MAC X312;
    3. PHYX048/X048L
    4. PHYX049/X049L or PHYX049C;
    5. Two science courses (six [6] semester hours) for science majors.

College Requirements

Please review all college-wide degree requirements summarized in the "College of Arts and Sciences" section of this General Bulletin.

Requirements for Majors in Computer Science

The undergraduate program in computer science is limited access. For each admission cycle (academic year) a minimum GPA is established by the Department of Computer Science that limits enrollment to a number of students consistent with the available faculty and space. In addition, students must have completed the State of Florida Common Course Prerequisite (MAC X311 and COP XXXX-Introductory Programming in C/C++ or Java) with the grade of "C–" or better in order to be considered for entrance. Upon entrance into the program, the student must maintain a 2.5 GPA to remain in good standing in the major.

A student who has accumulated more than five grades below "C–" (including grades of "U") in mathematics, statistics, natural science, or computer science courses taken for college credit at The Florida State University or elsewhere, whether repeated or not, will not be permitted to continue as a major in the department.

There are currently two majors for the CIS bachelors degree: computer science (CS), and software engineering (SE). In the following listing of requirements, courses that are required for only one major are marked with the major abbreviation in parentheses.

A grade of "C–" or better must be earned in each of the following courses: CDA 3101; CEN 4010 (SE); COP 3330, 3331, 3502, 4020 (CS); 4530, 4531, 4610, 4710; COT 4420(CS), 4425(SE); MAC 2311, 2312; MAD 2104 and MAD 3105, or MAD 3107; SPC 2600; STA 4442; another advanced mathematics, statistics, or theoretical computer science course approved by the department, with a prerequisite of calculus or discrete mathematics.

In addition, the student must complete at least twelve (12) semester hours of computer science electives, at least nine (9) semester hours of which must be at the 4000 level. One of the electives must cover an additional programming language not presented in the other required course offerings. The student must complete PHY 2048c, 2049c and six (6) additional semester hours of science in a discipline(s) other than physics. All courses used to satisfy the science requirement must be identified as "For Science Majors" within the Liberal Studies Program (or have such a course as a prerequisite). Approval is to be requested prior to registration for the elective courses. All students are required to complete an exit survey for both the Department of Computer Science and the College of Arts and Sciences during their term of graduation. These forms may be obtained from the Academic Coordinator's Office (Room 203C Love Building). Students following this degree will complete a total of at least one hundred twenty (120) semester hours in order to satisfy all University and major requirements.

Minor

The required collateral courses in mathematics, physics, and statistics constitute an acceptable interdisciplinary minor. Students may contact the undergraduate advisor for information concerning other acceptable minors.

Requirements for a Minor in Computer Science

A minor in computer science consists of twelve (12) semester hours in a specific combination of computer science courses at or above the 3000 level for which the student has obtained written approval in advance from the department. Students must also satisfy stated prerequisites before enrolling in any computer science course. A grade of "C–" or better must be earned in each course counted toward the minor.

Definition of Prefixes

CAP - Computer Applications
CDA - Computer Design/Architecture
CEN - Computer Engineering Software
CGS - Computer General Studies
CIS - Computer and Information Systems (special topics)
COP - Computer Programming (languages, data structures, software systems, operating systems, compiling)
COT - Computer Theory

Note: before taking any computer science course, the student must complete with a grade of "C–" or better each course prerequisite to that course. Moreover, a student who earns a "C–" or better in a course with one or more stated or implied prerequisites may not subsequently earn credit in the prerequisite course(s). For example, a student who has earned a "C–" or better in COP 4530 may not subsequently enroll in COP 3330; MAD 2104, nor MAD 3107.

Undergraduate Courses

Note: certain courses are sometimes offered in a distributed format and as such are available to distance learning students in addition to residential students. Contact the computer science department for details or go to http://www.cs.fsu.edu.

CGS 2060. Computer Literacy (3). May not be applied towards computer science major or minor. Not open to students with credit in CGS 2100. An introduction to information processing and computer applications. Hands-on experience with microcomputer applications such as word processors, spreadsheets, and database managers.

CGS 2062. Computers and Society (3). Not open to a student following the major option in computer science or to a student with credit in CGS 3063. Impact of computers on society: discussion of the nature of digital computers and the role of information processing in human affairs. This course does not teach how to use or program the computer but gives an understanding of the implications of the computer and computer science.

CGS 2100. Microcomputer Applications for Business/Economics (3). Prerequisite: MAC 1105. May not be applied towards computer science major or minor. Not open to students with credit in CGS 2060. Course enables students in business and economics to become proficient with microcomputer hardware and software applications that are typically used in the workplace. The following topics are covered: hardware concepts, operating systems, word-processing, spreadsheets, databases, networks, Internet, world wide web, multi-media presentations and information systems.

COP 2400. Assembly Language Programming (2). Prerequisite: COP 3531. Basic machine organization; number systems and data representation; assembly language programming, including calling conventions for procedures; floating point arithmetic; interrupts and exception handling; advanced architectural features and alternative architectures.

CDA 3101. Computer Organization (3). Prerequisite: COP 3330, MAD 2104 or 3107. Basic design and organization of modern computers including CPU design, memory, I/O devices, and assembly language programming.

CDA 3120. Digital Networks (3). Prerequisite: MAD 2104. Boolean algebra and switching functions; gates and IC modules; combinational systems, their simplification and decomposition; symmetric functions; threshold logic; sequential machines; analysis and synthesis; design of digital networks and logic systems.

CGS 3066. Introduction to Internet Technology (3). Prerequisite: A previous course in computer science. Basic Unix; World Wide Web, Netscape, Mosaic, Lynx, Gopher, UseNet News, Wais, Mime, Netfind, Traceroute, X.500 directory services, Xv, HTML programming. Projects include developing Internet tours via the World Wide Web and developing WWW pages for government agencies, community organizations, and businesses; topology of FSU campus network and Tallahassee Metropolitan Network.

CGS 3403. Introduction to COBOL Programming for Business (3). Prerequisite: COP 2000 or CGS 3408. May not be applied toward a computer science major. Study of the use and management of COBOL in business and government organizations. Specific programs are developed to solve typical management and data-processing problems. Structured approaches to problems and design solutions are discussed in detail. Also taught by the College of Business.

CGS 3408. Introduction to Programming with the C Language (3). Prerequisite: MAC 1140. This course is an introduction to C programming. Topics include types, operators, and expressions; control flow; IO; functions and program structure; and software design techniques. Eight to ten programming projects are required.

CGS 3410. Scientific Programming with FORTRAN (2). Prerequisites: CGS 3408 or COP 2000; MAC 2312. The use of the programming language FORTRAN in the solution of scientific programming problems. Basic syntax of the language, data types, data manipulation statements, I/O, and subprograms. The advanced features of FORTRAN related to scientific applications. Case studies involving problems such as differential equations, numerical integration, and linear/nonlinear equations.

CGS 3460. FORTRAN for Nonspecialists (3). Prerequisite: MAC 1105. May not be applied toward a computer science major. Introduction to programming; rudiments of FORTRAN, problem solving by computer, basic data types, basic control structures, arrays and subscripts, further control structures, subprograms, formatted input/output.

CGS 3468. IBM Assembly for Nonspecialists (3). Prerequisite: CGS 3408 or COP 2000. Basic machine organization. Programming in assembly language, including subroutines, macros, and I/O. Specifics of IBM mainframe families and assemblers. Job control language.

CIS 3931r. Intermediate Topics in Computer Science (2–3). Prerequisite: COP 3502. Topic and prerequisites will vary from term to term and section to section. Analyzes intermediate topics in the area of computer science. May be used as a self-contained study of a programming language in the context of applications for which the language is particularly suited. May be repeated to a maximum of nine (9) semester hours.

CIS 3943r. Internship in Computer Science (3–6). (S/U grade only.) Prerequisites: COP 4530; successful completion of 60 hours of coursework with a minimum overall GPA of 3.0, including 15 hours in computer science courses (prefixes of CAP, CDA, CEN, CGS, CIS, COP, COT) with a minimum GPA of 3.2; approval of internship coordinator required. Field placement in approved industry or government entity having significant information technology or computer science component by approval only. May be taken for variable credit and repeated (with departmental approval) but only three (3) semester hours may count towards graduation. Successful completion requires satisfactory job evaluation and demonstration of educational value of placement, usually via a paper and/or presentation. May be repeated to a maximum of twelve (12) semester hours.

CIS 3949r. Cooperative Education Work Experience (0). (S/U grade only.) Work experience with a firm or agency to be determined on an individual basis. May be repeated to a maximum of six (6) times.

COP 3252. Internet Applications Programming with Java (3). Prerequisites: CGS 4406; COP 3330; or other C++ programming course. This course covers the applications of the Java language to education, electronic commerce, scientific research, and distributed systems in general. Topics include the following: the architecture of the Web, including software protocols for passing information in typical Web applications; introduction to the Java programming language; developing Graphical User Interfaces using Swing; an introduction to distributed objects using Java Remote Method Invocation (RMI); and server-side programming using Servlets and JDBC. Emphasis is placed on practical programming using these technologies.

COP 3330. Object Oriented Programming (3). Prerequisite: CGS 3408 or a comparable course in C or C++ programming. Pre- or Corequisite: COP 3502. Object-oriented programming in a modern programming language; classes, objects, inheritance, and polymorphism; introduction to data structures and container classes.

COP 3331. Object Oriented Analysis and Design (3). Prerequisite: COP 3330. An introduction to software engineering with emphasis on practical techniques for object-oriented analysis and design. The course covers the use of the Unified Modeling Language (UML) and an associated computer-aided software engineering (CASE) tool.

COP 3502. Introduction to Computer Science (3). Prerequisites: MAC 1105 and previous computer experience. Course covers basic computer organization, computer languages and software, language translation and interpretation, object oriented design, object oriented programming, classes, objects, and inheritance, file systems and I/O.

CAP 4730. Computer Graphics (3). Prerequisite: COP 4530. Topics include: the fundamental hardware and software elements of computer graphics systems, including intelligent terminals, communication, and graphic languages; cost effective use of interactive graphics; CAD/CAM; office automation; and computer animation.

CDA 4150. Computer Architecture (3). Prerequisites: CDA 3101; MAD 3105 or 3107. High performance architecture design and analysis, including memory-system design, pipelining, vector computers, and multiprocessors.

CDA 4300. Microcomputer Data Communications (3). Prerequisites: COP 2400; CDA 3120. An introduction to microcomputer data communications geared toward the technical hardware components, the Intel 8250 UART and INTEL 8259 PIC, and interfacing user programs with these devices. Programs controlling these devices will be written in 8086 assembly language using various structured techniques.

CEN 4010. Software Engineering Principles and Practice (3). Prerequisites: see department. Topics in this course include classical and modern principles and practice of software engineering, including classical and object-oriented approaches to architecture, design, life cycle, and project management; software metrics; change management; teams and teaming tools; reusability, portability, and interoperability; requirements and specification.

CEN 4012r. Mentored Software Project (1–6). Prerequisite: CEN 4010. Experience creating or changing a large software system; putting principles of software engineering to practice. May be repeated to a maximum of six (6) semester hours.

CEN 4516. Distributed Systems and Networks (3). Prerequisites: CDA 3101; COP 3330. Computer networks and internetworks; distributed object technology; distributed system architecture; enterprise software systems; distributed process scheduling, file systems, shared memory, computer security, and fault tolerance.

CEN 4542. Network Security and Cryptography (3). Prerequisites: COP 4530; MAD 2104 or 3107, or permission of the instructor. This course examines threats to computer networks, network vulnerabilities, techniques for strengthening passive defenses, tools for establishing an active network defense, and policies for enhancing forensic analysis of crimes and attacks on computer networks. Topics include private and public key cryptography, digital signatures, secret sharing, security protocols, formal methods for analyzing network security, electronic mail security, firewalls, intrusion detection, Internet privacy and public key infrastructures.

CEN 4681. Expert Systems (3). Prerequisites: COP 4530. Topics include: definitions and historical development, methodology tools for analysis and design, survey of existing systems, inference engines, and theory and applications of fuzzy relational products to new developments in inference engines.

CGS 4406. Object Oriented Programming in C++ (3). Prerequisite: CGS 3408. May not be applied toward a computer science major. Basics of the C++ language. Objects and classes. Programming with classes. Constructors and destructors. Function and operator overloading. Master classes. The class iostream. Base and derived classes. Templates.

CIS 4360. Introduction to Computer Security (3). Prerequisite: CGS 3408 or equivalent programming course. Course covers computer security threats and attacks, covert channels, trusted operation systems, access control, entity authenticatioin, security policies, models of security, database security, administering security, physical security and TEMPEST, and brief introductions to network security and legal and ethical aspects of security.

CIS 4900r. Directed Individual Study (1-4). May be repeated to a maximum of twelve (12) semester hours.

CIS 4930r. Special Topics in Computer Science (3). Prerequisite: at least six (6) semester hours in computer science or software engineering at or above the 4000 level. May be repeated to a maximum of twelve (12) semester hours.

CIS 4933r. Honors Work (3). May be repeated to a maximum of nine (9) semester hours.

COP 4020. Programming Languages (3). Prerequisite: COP 3331, 4530. A survey of programming languages and language features and an introduction to compilers. Languages to be discussed include Fortran, Pascal, Ada, PL/1, APL, and Lisp. Oral presentation required.

COP 4342. Unix Tools (3). Prerequisites: COP 3330, 3502. This course is an introduction to selected Unix tools and utilities that are useful for advanced users, programmers, and system administrators, such as shell scripts, the perl language, revision control systems, debuggers, editors, and the make, awk, sed, and expect utilities.

COP 4530. Data Structures, Algorithms and Generic Programming (3). Prerequisites: COP 3330; MAD 2104 or 3107. Pre- or corequisite: CDA 3101. Definition, use and implementation of generic data structures using a modern programming language; reusable program components.

COP 4531. Complexity and Analysis of Data Structures and Algorithms (3). Prerequisite: COP 4530; MAD 3105 or 3107; STA 4442. Analysis of the complexity of algorithms, including sorting, searching, and graph algorithms; use and implementation of graphs.

COP 4610. Operating Systems and Concurrent Programming (3). Prerequisite: COP 4530. Pre- or Corequisite: CDA 3101. Design principles of batch, multiprogramming, and time-sharing operating systems; linking, loading, input-output systems, interacting processes, storage management, process and resource control, file systems.

COP 4613. Real-Time Systems (3). Prerequisite: COP 4610. Survey of issues in the design and implementation of real-time computer systems. Topics include: the use of computers for controlling real-time processes, the use of Ada in embedded computer systems, and implementation of a real-time computer system.

COP 4710. Theory and Structure of Databases (3). Prerequisites: COP 3330 or CGS 4406; MAD 2104 or 3107. Theory of relational and object-oriented databases; relational database management systems and SQL; design, development, and implementation issues in database systems.

COT 4420. Theory of Computation (3). Prerequisite: COP 3331; MAD 3105 or 3107. Introduction to the theory of computation, including models of computation such as Turing machines; theory of programming languages, including grammars, parsing, syntax and semantics.

COT 4425. Formal Methods in Software Engineering (3). Prerequisites: COP 3331; MAD 3105 or 3107. Formal methods in software analysis and design, including formal specification and verification.

Graduate Courses

  • CAP 5605. Artificial Intelligence (3).
  • CAP 5615. Artificial Neural Networks (3).
  • CAP 5625. Relational Methods in Knowledge and Software Engineering (3).
  • CAP 5638. Pattern Recognition (3).
  • CDA 5140. Fault Tolerance and Reliability (3).
  • CDA 5155. Computer Architecture (3).
  • CEN 5000. Knowledge Management and Data Engineering (3).
  • CEN 5026. Applicative Foundations of Software Engineering (3).
  • CEN 5035. Software Engineering (3).
  • CEN 5066. Software Engineering in Graphics (3).
  • CEN 5515. Data and Computer Communications (3).
  • CEN 5521. Networking Personal Computers (3).
  • CEN 5720. Computer-Human Interaction (3).
  • CGS 5067. Advanced Navigating the Internet (3).
  • CGS 5266. Digital Design (3).
  • CGS 5267. Principles of Computer Organization (3).
  • CGS 5275. Assembly and Machine Language (2).
  • CGS 5425. Object-Oriented Programming with Data Structure (3).
  • CGS 5426. Programming Language Concepts (3).
  • CGS 5427. Algorithm Design and Analysis (3).
  • CGS 5428. Relational Database Theory (3).
  • CGS 5429. Introduction to Computer Theory (3).
  • CGS 5469. FORTRAN for Graduate Nonspecialists (3).
  • CGS 5765. Principles Operating Systems (3).
  • CIS 5357. Network Security, Active and Passive Defenses (3).
  • CIS 5358. Computer Security (3).
  • CIS 5406. Computer and Network Administration (3).
  • CIS 5900r. Directed Individual Study (1–4).
  • CIS 5910r. Supervised Research (1–9). (S/U grade only.)
  • CIS 5915r. Graduate Software Project (1–6). (S/U grade only.)
  • CIS 5920r. Colloquium (1). (S/U grade only.)
  • CIS 5930r. Selected Topics in Computer Science (1–3).
  • CIS 5935. Introductory Seminar on Research (1). (S/U grade only.)
  • CIS 5940r. Supervised Teaching (1–9). (S/U grade only.)
  • COP 5025. Programming Language Foundations (3).
  • COP 5570. Advanced UNIX Programming (3).
  • COP 5611. Operating Systems (3).
  • COP 5621. Compiler Construction (3).
  • COP 5622. Advanced Topics in Compilation (3).
  • COP 5725. Database Systems (3).
  • COT 5310. Theory of Automata and Formal Languages (3).
  • COT 5410. Complexity of Algorithms (3).
  • COT 5421. Theory of Computability (3).
  • COT 5540. Logic for Computer Science (3).
  • CAP 6616. Autonomous Behavior in Artificial Neural Systems (3). (S/U grade only.)
  • CIS 6900r. Directed Individual Study (1–12). (S/U grade only.)
  • CIS 6930r. Advanced Topics in Computer Science (1–3).
  • CIS 6935r. Advanced Seminar in Computer Science (1).

For listings relating to graduate course work for thesis, dissertation, and master's and doctoral examinations and defense, consult the Graduate Bulletin.

CONSUMER AFFAIRS:
see Textiles and Consumer Sciences

COUNSELING PSYCHOLOGY AND HUMAN SYSTEMS:
see Educational Psychology and Learning Systems




Florida State University 2002 - 2003 General Bulletin
| florida state university |