Dr. Stephen Leach

Associate Dean

sleach@pc.fsu.edu

(850) 770-2243

Betty Stanton

stanton@cs.fsu.edu

(850) 645-0056

Learn more from the

Computer Science web site.

Distance students can earn the same bachelor's degrees as on-campus students, following the same curriculum. The curriculum is specifically designed for a student preparing for a fulfilling lifetime career as a computer professional.

This major provides a broad-based background sufficient for entry to a career in computing. It provides a systems view of computing, emphasizing the interdependence of design, object orientation, and distributed systems and networks, from basic software through systems design.

This major develops core competencies in programming, database structure, computer organization, and operating systems. It allows opportunities to study a range of other aspects of computer and information science, such as information security, data communication/ networks, computer and network systems administration, theoretical computer science, and software engineering. Every student can expect to become proficient at programming in C, C++, and Assembly Language. Additionally, students will be exposed to other languages such as Java, C#, Ada, Lisp, Scheme, Prolog, Perl, and HTML.

The coursework required for this major includes an embedded collateral minor in mathematics and physical sciences. It is ABET/CAC accredited and is intended to be sufficient for entry to a graduate program in computer science. Students that apply for the Fall or Spring semesters may have limited options in building a schedule, unless they have taken a course equivalent to COP3014 prior to admission to FSU.

Southern Association of Colleges and Schools, Computer Accreditation Commission of the Accreditation Board for Engineering and Technology

Internet

Assuming that the student has completed the equivalent of an AA degree and the required prerequisites, the degree can be completed in 2 years by full-time students (4 years by part-time students)

These courses may not be offered every semester.

**CDA3100 Computer Organization I**(3)

This core course is intended for computer science majors with previous C/C++ background. The course introduces fundamental concepts in computer organization and digital logic design, including 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.**CDA3101 Computer Organization II**(3)

This course explores the fundamental concepts in processor design, including data path and control, pipelining, memory hierarchies, and I/O.**CEN4020 Software Engineering I**(3)

This course is the first of a two-semester software-engineering sequence, and integrates theory and practice through a project. Topics include theory, tools, requirements elicitation, software-requirements specification, requirement review, software development, ethics, software-development life cycle, teams, and project management. Oral presentation required.**CEN4021 Software Engineering II**(3)

This course is the second of a two-semester sequence on project-system development and focuses on software design and implementation. Topics include software design, architectures, testing, deployment, metrics, configuration management, reusability, portability, and interoperability.**CGS4092 Ethical Issues in Computer Science**(2)

This theory and skills course is intended for students with a basic knowledge of computer science principles and programming languages. The course introduces fundamental concepts and analytical methods in ethics, along with ethical, legal, and social issues and questions in computer science that call for ethical analysis.**COP3014 Programming I**(3)

This course covers 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 I/O. Testing and debugging techniques. Intended primarily for computer science or computer engineering majors, or anyone who is required to take COP 3330.**COP3252 Internet Applications Programming with Java**(3)

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 and 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.**COP3330 Object Oriented Programming**(3)

This course focuses on definition, use, and implementation of generic data structures using a modern programming language; reusable program components.**COP3353 Introduction to UNIX**(1)

This course for majors and non-majors offers an introduction to the UNIX operating system. Topics include: UNIX history, requesting UNIX accounts, logging into 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 to have a basic understanding of the commands and utilities.**COP4020 Programming Languages**(3)

This course covers the principles of programming languages, including language constructs, syntactic and semantic specification methods, runtime structures, implementation techniques, and alternative programming paradigms. The course involves programming assignments in a variety of languages and individual investigations accompanied by a required written report and oral presentation.**COP4530 Data Structures, Algorithms and Generic Programming**(3)

This course focuses on definition, use, and implementation of generic data structures using a modern programming language; reusable program components.**COP4531 Complexity and Analysis of Data Structures and Algorithms**(3)

This course is an analysis of the complexity of algorithms, including sorting, searching, and graph algorithms; use and implementation of graphs.**COP4610 Introduction to Operating Systems**(3)

Design principles of batch, multiprogramming, and time-sharing operating systems.**COP4710 Theory and Structure of Databases**(3)

This course examines the theory of relational and object-oriented databases; relational database management systems and SQL; design, development, and implementation issues in database systems.**COT4420 Theory of Computation**(3)

This course is an introduction to the theory of computation, including models of computation such as Turing machines; theory of programming languages, including grammars, parsing, syntax and semantics.**MAD2104 Discrete Mathematics I**(3)

This course covers techniques of definition and logical argument, sets and functions, propositional logic, introduction to graphs and relations, and applications. Mathematics majors should take MGF 3301 instead of MAD 2104.**MAD3105 Discrete Mathematics II**(3)

This course covers techniques of definition and logical argument, graphs and diagraphs, relations, Boolean algebra, and applications.**STA3032 Applied Statistics for Engineers and Scientists**(3 to 5)

This course will cover calculus-based probability, discrete and continuous random variables, joint distributions, sampling distributions and the central limit theorem. Topics include descriptive statistics, interval estimates and hypothesis tests, ANOVA, correlation, simple and multiple regression, analysis of categorical data, and statistical quality control.

120

Pre-requisite coursework includes the following:

- COP XXXX (3 credit hours)

Introductory Programming in C, C++, JAVA or equivalent language (C++ preferred) - MAC X311 (4 credit hours) and MAC X312 (4 credit hours)

Calculus I and Calculus II - One of the following series:

a. PHY X048C (4-5 credit hours) General Physics A (or equivalent with lab) and PHY X049C (4-5 credit hours) General Physics B (or equivalent with lab)

b. BSC X010 (3 credit hours), BSC 2011 (3 credit hours) and CHM X045C (4 credit hours)* - One additional science course (2-4 credit hours) for science majors (contact department for a list of acceptable courses)

Students must meet the requirements of the College of Arts and Sciences, including the language requirement of proficiency beyond that required for University admission.

The coursework required for this major includes an embedded collateral minor in mathematics and physical sciences. At least 45 credit hours need to be at the 3000/4000 level. At least half the courses for the major have to be taken at FSU and the last 30 hours have to be taken at FSU, either on-campus or online.

**CDA4150 Computer Architecture**(3)*Prerequisite*: CDA3101.

This course explores high performance architecture design and analysis, including memory-system design, pipelining, vector computers, and multiprocessors.**CEN4020 Software Engineering I**(3)*Prerequisite or Corequisite*: COP4530.

This course is the first of a two-semester software-engineering sequence, and integrates theory and practice through a project. Topics include theory, tools, requirements elicitation, software-requirements specification, requirement review, software development, ethics, software-development life cycle, teams, and project management. Oral presentation required.**CGS4092 Ethical Issues in Computer Science**(2)

This theory and skills course is intended for students with a basic knowledge of computer science principles and programming languages. The course introduces fundamental concepts and analytical methods in ethics, along with ethical, legal, and social issues and questions in computer science that call for ethical analysis.**COP3014 Programming I**(3)*Prerequisite*: MAC1140.

This course covers 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 I/O. Testing and debugging techniques. Intended primarily for computer science or computer engineering majors, or anyone who is required to take COP 3330.**COP3330 Object Oriented Programming**(3)*Prerequisite*: COP3014 or a comparable course in C or C++ programming.*Prerequisite or Corequisite*: COP3353.

This course focuses on definition, use, and implementation of generic data structures using a modern programming language; reusable program components.**COP3353 Introduction to UNIX**(1)

This course for majors and non-majors offers an introduction to the UNIX operating system. Topics include: UNIX history, requesting UNIX accounts, logging into 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 to have a basic understanding of the commands and utilities.**COP4020 Programming Languages**(3)*Corequisite*: COP4530.

This course covers the principles of programming languages, including language constructs, syntactic and semantic specification methods, runtime structures, implementation techniques, and alternative programming paradigms. The course involves programming assignments in a variety of languages and individual investigations accompanied by a required written report and oral presentation.**COP4531 Complexity and Analysis of Data Structures and Algorithms**(3)*Prerequisite*: COP4530. MAD3105.*Corequisite*: STA3032, STA4321 or STA4442.

This course is an analysis of the complexity of algorithms, including sorting, searching, and graph algorithms; use and implementation of graphs.**MAD2104 Discrete Mathematics I**(3)*Prerequisite*: MAC2311 and COP3014.

This course covers techniques of definition and logical argument, sets and functions, propositional logic, introduction to graphs and relations, and applications. Mathematics majors should take MGF 3301 instead of MAD 2104.**STA3032 Applied Statistics for Engineers and Scientists**(3 to 5)*Prerequisite*: MAC2312.

This course will cover calculus-based probability, discrete and continuous random variables, joint distributions, sampling distributions and the central limit theorem. Topics include descriptive statistics, interval estimates and hypothesis tests, ANOVA, correlation, simple and multiple regression, analysis of categorical data, and statistical quality control.

**CDA3100 Computer Organization I**(3)*Corequisite*: COP3330. MAD2104.

This core course is intended for computer science majors with previous C/C++ background. The course introduces fundamental concepts in computer organization and digital logic design, including 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.**CEN4021 Software Engineering II**(3)*Prerequisite*: CEN4020.

This course is the second of a two-semester sequence on project-system development and focuses on software design and implementation. Topics include software design, architectures, testing, deployment, metrics, configuration management, reusability, portability, and interoperability.**CGS4092 Ethical Issues in Computer Science**(2)

This theory and skills course is intended for students with a basic knowledge of computer science principles and programming languages. The course introduces fundamental concepts and analytical methods in ethics, along with ethical, legal, and social issues and questions in computer science that call for ethical analysis.**CIS4930 Top Ten Algorithms**(3)*Prerequisite*: COP4530 or equivalent. Note that this class is suitable for students in the BS program prior to OR after taking COP 4531 (Algorithms) as well as students in the BA program who want to know more about what is arguably the most central core subject of Computer Science.

This course will explore the Top Ten Algorithms of the last 100 years. This collection of algorithms will be obtained from official listings of the Top Ten Algorithms from the 20th Century, modified slightly by considering 21st century achievements, and modified again to keep the overlap between this course and the typical coverage of COP 4531 (Analysis of Algorithms) acceptably small. While subject to these influences, the top ten list is certain to contain 10 interesting and influential algorithms representing a broadly diverse collection of applications.**COP3252 Internet Applications Programming with Java**(3)*Prerequisite*: COP3330.

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 and 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.**COP3330 Object Oriented Programming**(3)*Prerequisite*: COP3014 or a comparable course in C or C++ programming.*Prerequisite or Corequisite*: COP3353.

This course focuses on definition, use, and implementation of generic data structures using a modern programming language; reusable program components.**COP4530 Data Structures, Algorithms and Generic Programming**(3)*Prerequisite*: COP3330. MAD2104.*Prerequisite or Corequisite*: CDA3100.

This course focuses on definition, use, and implementation of generic data structures using a modern programming language; reusable program components.**COP4531 Complexity and Analysis of Data Structures and Algorithms**(3)*Prerequisite*: COP4530. MAD3105.*Corequisite*: STA3032, STA4321 or STA4442.

This course is an analysis of the complexity of algorithms, including sorting, searching, and graph algorithms; use and implementation of graphs.**COP4610 Introduction to Operating Systems**(3)*Prerequisite*: COP4530.*Prerequisite or Corequisite*: CDA3101. Prerequisite or Corequisite may be waived with instructor permission.

Design principles of batch, multiprogramming, and time-sharing operating systems.**COT4420 Theory of Computation**(3)*Prerequisite*: MAD3105.

This course is an introduction to the theory of computation, including models of computation such as Turing machines; theory of programming languages, including grammars, parsing, syntax and semantics.**MAD3105 Discrete Mathematics II**(3)*Prerequisite*: MAD2104. MGF3301 may be substituted for MAD2104.

This course covers techniques of definition and logical argument, graphs and diagraphs, relations, Boolean algebra, and applications.

© Office of Distance Learning, 296 Champions Way, Tallahassee, FL 32306|Contact Us|Questions or Comments