FSU Computer Science

FSU Computer Science - Undergraduate Courses

Undergraduate Course Descriptions

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)
CNT - Computer Networks
COP - Computer Programming (languages, data structures, software systems, operating systems, compiling)
COT - Computer Theory

General Information

This page presents all of the undergraduate courses available through the Computer Science Department at The Florida State University. Students pursuing a major within the Computer Science Department must review the degree requirements for their particular major or consult the Computer Science Undergraduate Academic Advisor to determine which courses will meet major requirements. Students in other majors seeking to satisfy the Computer Competency requirement of the University must consult their Academic Advisor, as each Department will specify the Computer Competency course their majors must take. Courses with the prefix "CGS" are intended for non-CS majors and will not meet the degree requirements for any major in the Computer Science Department.

Most courses in the Computer Science Department have prerequisites or corequisites which are indicated in italics next to the course titles below. Before taking any given course, the student must complete the prerequisite(s) to that course with a C- or above or consult the professor to receive permission to take the course. Department of Computer Science majors that skip prerequisite courses without departmental permission will still be required to take the prerequisite courses or substitute courses approved by the department before graduation.

"D" indicates a course that is sometimes offered as a distance learning course.

2000 LEVEL CS COURSES

CGS 2060. Computer Fluency (3). 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. See http://service.cs.fsu.edu for more information on this course. [Satisfies the FSU computer skills competency requirement.]

CGS 2064. Computer Literacy II (3). Prerequisites: CGS2060 or permission of instructor. This course builds on skills and concepts learned in CGS 2060 Computer Literacy to show students how digital technologies are used in professional environments to assist in productivity. Topics include information systems, databases, e-commerce, systems and software development, multimedia, and information security. While developing a deeper understanding of information systems and digital technologies, students also acquire valueable hands-on skills that include digital graphics and photo editing, animation, database development, and Web development. Computer Literacy or equivelent computer experience is required for admission.

CGS 2100. Microcomputer Applications for Business and Economics (3). May not be applied towards computer science major. 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. See http://service.cs.fsu.edu for more information on this course. [Satisfies the FSU computer skills competency requirement.]

CGS 2930r. Special Topics for Non-Majors (1-3). This is a special topics course for non-majors. Topics may vary. This course is repeatable in a single semester with instructor permission. May be repeated to a maximum of three (3) semester hours.

COP 2721. Introduction to Database Systems and Internet Services (3). This course is a hands-on introduction to the principles of computer hardware and software, database systems, and the Internet. It explores the concepts and techniques that support website development. Students learn to design and implement simple database systems and to create websites that interact with databases.

3000 LEVEL CS COURSES

CDA 3100 Computer Organization I (3)- (D). Corequisites: COP3330, MAD2104. This is a core course intended for computer science majors with previous C/C++ background. The course introduces fundamental concepts in computer organization and digital logic design, includeing numbering systems and number representation, logic gates and design, the Von-Neumann architecture principle, and the machine instruction cycle. Assembly language programming with C language interfacing is also presented, reinforcing basic computer structure and machine cycle operation principles.

CDA 3101 Computer Organization II (3)- (D). Prerequisite: CDA3100. Fundamental concepts in processor design, including datapath and control, pipelining, memory hierarchies, and I/O.

CGS 3066. Web Programming and Design (3). An overview of Internet communications and information services, as well as the technologies on which the Internet and Web are built. A strong emphasis on Web design, development, and scripting with participants learning the latest tools and techniques for building professional-grade, dynamic, and interactive Web pages and sites. No prerequisite, computer literacy assumed, CGS2064 helpful.

CGS 3403. Introduction to COBOL Programming for Business (3). Prerequisite: CGS 3406 or COP3014. 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 3406. Object-Oriented Programming in C++ (3). Prerequisite: MAC 1105. May not be appled towards a computer science major Topics include a brief introduction to computers, C++ basics, procedural abstraction and functions, an introduction to the object-oriented paradigm, namespaces, arrays, strings and vectors, pointers, and recursion. Emphasis is on program problem-solving. [Satisfies the FSU computer skills competency requirement.]

CGS 3223. 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 3416. Java Programming for Nonspecialists (3). Prerequisite: MAC 1105 Topics include Java basics, a review of structured and object-oriented programming concepts, classes, constuctors, interfaces, exceptions, I/O, graphics concepts, jar files, compilation, virtual machines, applications, applets, APIs, HTML, XML, and XHTML.

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.

CIS 3931r. Intermediate Topics in Computer Science (2-3). (D). 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). (D). (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). (D). (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 3014. Programming I (3). (D). Prerequisite: MAC 1140. Fundamental concepts and skills of programming in a high-level language. Flow of control: sequence, selection, iteration, subprograms. Data structures: arrays, strings, structs, ADT lists and tables. Algorithms using selection and iteration (decision making, finding maxima and minima, basic searching and sorting, simulation, etc.). Good program design using a procedural paradigm, structure and style are emphasized. Interactive and file IO. Testing and debugging techniques. Intended primarily for science or engineering majors, or anyone who is required to take COP 3330. [Satisfies the FSU computer skills competency requirement.]

COP 3252. Internet Applications Programming with Java (3). (D). Prerequisites: COP 3330 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). (D). Prerequisite: COP 3014 or a comparable course in C or C++ programming. Pre- or Corequisite: COP 3353. 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). This course is no longer offered. It has been replaced by CEN4020.

COP 3353 Introduction to UNIX (1). (D). This is an introductory course in the use of the UNIX operating system designed for both majors and non-majors. Topics include: UNIX history, requesting UNIX accounts, logging in to a UNIX system, basic operating system concepts and file structure, basic commands, text editor(s)(to include emacs, vi, and pico), printing, mail, and online help. The goals of this course are to enable students to log in to their UNIX accounts from any type of computer and have a basic understanding of the commands and utilities.

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.

4000 LEVEL CS COURSES

CAP 4601. Introduction to Artificial Intelligence (3). Corequisite: COP 4530. This first course in Artificial Intelligence (AI) is designed to expose the student to both the breadth and depth of the subject. Topics include problem solving, knowledge and reasoning, acting logically, uncertain knowledge and reasoning, learning, and communicating, perceiving and acting.

CAP 4730. Computer Graphics (3). Corequisite: 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). (D). Prerequisites: CDA 3101. High performance architecture design and analysis, including memory-system design, pipelining, vector computers, and multiprocessors.

CEN 4010. This course is no longer offered. It has been replaced by CEN 4021.

CEN 4020. Software Engineering I- Requirements Engineering (3). (D). Corequisite: COP4530. This course is the first semester of a two-semester software engineering sequence integrating theory and practice with project experience. Topics include theory, tools, requirements elicitation, software requirements specification, requirements review, software development, ethics,software development life cycle, teams and project management.

CEN 4021. Software Engineering II- Design and Implementation (3). (D). Prerequisites: CEN 4020 This course is the second semester of a two-semester software engineering sequence with focus on software project systems development. Topics include software design, software architectures, testing, deployment, software metrics, configuration management, reusability, portability and interoperability.

CEN 4681. Expert Systems (3). (D). Corequisite: 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). Prerequisites: CGS 3406 or COP 3014. 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 4250. Ethics in Computer Science (3). Pre- or Corequisite: COP3014 or a prior course in programming. Introduces fundamental concepts in Ethics along with ethical, legal and social issues and questions in computer science that call for ethical analysis. The course also presents basic theories and skills in oral argument presentation and extemporaneous debate, including argument structure and debate practice. These skills are then used to support the explanation and argument of various ethical analyses of modern computer science problems. This course satisfies FSU's Oral Communication Competency requirement. [Satisfies the FSU oral communication competency requirement.]

CIS 4360. Introduction to Computer Security (3). Prerequisite: CGS 3406 or COP 3014. Course covers computer security threats and attacks, covert channels, trusted operation systems, access control, entity authentication, 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 4361 Applied Computer Security (3). Prerequisite: CDA 3100. This course addresses threats and vulnerabilities to information systems and provides a hands-on opportunity for students to work with current technology used to counter such threats. Fundamental theories in computer security are also introduced.

CIS 4385. Cybercrime Detection and Forensics (3). Prerequisites: CJE 3110, CDA 3100. Cybercrime activities leave a trail of incriminating evidence. In this course, students will focus on learning tools, techniques, and procedures for detecting cybercrime and analyzing collected data related to past and ongoing cyber offenses. The focus will be on forensic approaches that preserve the legal value of the collected evidence.

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

CIS 4930r. Special Topics in Computer Science (3). (D). 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 4930. Algorithms in Computational Biology (3). Prerequisites: COP4530, PCB4674, STA2171. Introduction to algorithm design; dynamic programming; sequence alignment; divide and conquer techniques; greedy algorithms. Introduction to computational complexity(NP, NP-complete problems). Introduction to convex/nonconvex optimization; non-convex optimization methos; local search methods; genetic algorithms; ant colony optimizations; stochastic optimization; energy based optimization; simulated annealing.

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

CNT 4406. Network Security and Cryptography (3). Corequisite: COP 4530 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.

CNT 4504 Introduction to Computer Networks (3). Corequisite: COP 4530. Circuit switched and packet switched networks, protocols, protocol layering; application layer, socket programming; transport layer, multiplexing and demultiplexing, UDP, TCP, reliability, flow control, congestion control; network layer, routing protocols, switching technologies, multicast, mobility; link layer, local area networks, error detection and correction; wireless networks; multimedia networking; network security; network management.

CNT 4603. Computer and Network System Administration (3). Prerequisites: CGS 3406 or COP 3014. This course offers a hands-on introduction to Unix and Microsoft Windows systems and network administration. Topics include the following: installation, maintenance, and extension of a multi-user computer system; development of administrative policies and procedures; user assistance and education; specifics of the Unix and Windows operating systems; and practical troubleshooting and problem solving.

COP 4020. Programming Languages (3). (D). Corequisite: COP 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. 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 4380. Reactive Systems Programming (3). (D). Corequisites: COP 4530 and COP 4610 or instructor permission. This course covers the theory of Hierarchical State Machines [HSM] and the use of HSM to model and implement Reactive Systems [RS]. The course explores implementations of HSM in C, C++, and Java. HSM are applied for modeling and implementing RS including real-time, multi-threaded, and embedded systems.

COP 4530. Data Structures, Algorithms and Generic Programming (3). (D). Prerequisites: COP 3330; MAD 2104. Pre- or corequisite: CDA 3100. 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). (D). Prerequisite: COP 4530; MAD 3105 or 3107; Corequisite: STA 4442, STA 4321, or STA 3032. 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). (D). 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). Prerequisites: COP 4610. Survey of the 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). (D). Prerequisites: COP 3330, MAD 2104. Theory of relational and object-oriented databases; relational database management systems and SQL; design, developmental, and implementation issues in database systems; analysis of query languages and schema design in the relational model based on discrete math theories; development of a web-based database application using an OO programming language (i.e., Java and JSP).

COP 4813 Web Applications Programming (3). Prerequisite: COP 3252. This course teaches programming of distributed web applications using Java Database connectivity, Servlets, Java Server Pages, Remove Method Invocation, and Enterprise Java Beans (both session and entry beans). Use of the Sun Microsystems Java 2 Enterprise Edition development platform either directly or indirectly through an IDE such as IBM's WebSphere is also covered.

COT 4420. Theory of Computation (3). (D). Prerequisites: MAD 3105. 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). (D). Prerequisites: COP 3331 and MAD 3105. Formal methods in software analysis and design, including formal specification and verification.

RELATED COURSES OFFERED BY OTHER DEPARTMENTS

Department of Biological Science

  • FSU Department of Biological Science Website
  • Undergraduate Bulletin Listing with Undergraduate Course Descriptions
  • BSC 4933. Introduction to Bioinformatics (3). Prerequisites: COP 4530, PCB 3063. Much of modern biology is devoted to understanding how information at the level of the gene codes for physical traits. Recent advances in gene sequencing technologies have made it possible to determine the DNA sequences for entire genomes. Bioinformatics is an emerging discipline that seeks to provide a quantitative framework for understanding how genomic sequence and its variation affects the phenotype. This course is targeted at two kinds of students: (1) biologists and biochemists seeking to improve quantitative skills that will facilitate interpretation of their data and (2) students from mathematics, computer science, and other quantitative disciplines interested in learning to apply their skills in computational biology. A laboratory component complementing the lecture material is designed to provide practical and marketable skills. Evaluation is based on exams, homework assignments, and a project.


Department of Chemistry and Biochemistry


College of Criminology and Criminal Justice


Department of Mathematics


Department of Physics


Department of Statistics