Computer Science

Student learning outcomes describe what students know, understand and are able to do as a result of completing a degree program. The learning outcomes for this program are:

Computer Science

  1. Use subject-specific terminology and notation commonly used in the field
  2. Demonstrate effective software development analysis, design, implementation or testing skills
  3. Individually develop software requiring numerous functions (> 20) or classes (> 10)
  4. Develop software programs comprised of multiple components developed by one or more teams of developers
  5. Develop and implement appropriate data structures or algorithms for efficient software programs
  6. Demonstrate understanding of core theoretical principles of computer science
  7. Demonstrate ability to write technical papers on advanced topics
  8. Clearly present on computer science topics to peers, faculty, or other audiences

Computer Information Systems

  1. Use subject-specific terminology and notation commonly used in the field
  2. Demonstrate effective software development analysis, design, implementation or testing skills
  3. Individually develop software requiring numerous functions (> 20) or classes (> 10)
  4. Develop software programs comprised of multiple components developed by one or more teams of developers
  5. Develop substantial software product requiring one academic year of effort
  6. Clearly present on all aspects of substantial software product to peers, faculty, or other audiences

Cybersecurity

Student learning outcomes describe what students know, understand and are able to do as a result of completing a degree program. The learning outcomes for this program are: 

  1. Correctly use subject-specific terminology and notation commonly used in the field
  2. Demonstrate effective software development analysis, design, implementation and testing skills
  3. Critically dissect and evaluate software for vulnerabilities
  4. Demonstrate a core understanding of attack vectors that can compromise computers and networks
  5. Demonstrate the ability to secure computers and networks
  6. Clearly present on all aspects of cyber security to peers, faculty, or other audiences

Minor in Computer Science - 5 Units

Minor Requirements
CSCI 141Introduction to Computer Science I1
CSCI 142Introduction to Computer Science II1
One 200-level CSCI unit and two 300- or 400-level CSCI/CINF/CSEC units, or three 300- or 400-level CSCI/CINF/CSEC units3
Total Units5

Advising Course Plans

Computer Science Major

Computer Information Systems Major

Cybersecurity Major


Plans for Transfer Students or Students Changing Their Major

Computer Science Major

Computer Information Systems Major

Cybersecurity Major​

El Aarag, Hala
Professor of Computer Science, 2002
BS, MS, Alexandria University
PhD, University of Central Florida

Koc, Basar
Associate Professor of Computer Science, 2017
BEng, Ege University
BS, State University of New York at Fredonia
MS, PhD, University of Miami

Plante, Daniel
Professor and Associate Chair of Mathematics and Computer Science, 1997
BS, Marlboro College
PhD, University of Notre Dame

Computer Information Systems

CINF 190. Special Topics in Computer Information Systems. 0.5 or 1 Units.

This is an introductory-level course with varied content designed by faculty to delve into topics that are not typically taught in existing courses. The sophistication and rigor of the content is consistent with courses that are offered in the second or third year of study in the department.

CINF 201. Database Systems. 1 Unit.

This course is an introduction to relational database systems, including requirements gathering, database design and modeling, normalization, implementation using an enterprise database management system, SQL programming and query optimization. An introduction to NoSQL databases is included. Offered annually, either fall or spring. Prerequisite: CSCI 111, CSCI 141, or CSCI 261 or permission of instructor.

CINF 285. Independent Study. 0.5 or 1 Units.

A faculty mentored course designed to cover content not addressed by current courses. By design, the study usually includes only one or two students who are led by a faculty member. Occasionally, an independent study may be used to offer an existing course because of extenuating circumstances. The sophistication and rigor of the content is consistent with courses that are offered in the second or third year of study in the department.

CINF 290. Special Topics in Computer Information Systems. 0.5 or 1 Units.

A course designed by faculty to delve into topics that are not typically taught in existing courses. The sophistication and rigor of the content is consistent with courses that are offered in the second or third year of study in the department.

CINF 301. Web Application Development. 1 Unit.

Students will develop full web applications, both front end and back end. Front end development will focus on using HTML, CSS, JavaScript and the React library, while backend development will use the Node.js Javascript runtime. Offered every spring semester. Prerequisite: CSCI 221.

CINF 304. Mobile Computing. 1 Unit.

This course introduces mobile computing and mobile application development. Topics include overview of various mobile computing applications and technologies, challenges in mobile computing, architectures that provide the network and communications infrastructure for mobile-enabled devices, design of modern distributed software systems, software development for mobile platforms. Offered based on student demand. Prerequisite: CSCI 221.

CINF 351V. Ethics and Technology. 1 Unit.

This course focuses on Stetson's Ethical or Spiritual Inquiry Value. This course is intended to enable students to understand and to respond to the legal and ethical issues that arise from the utilization of information technology. Students will explore ethical and social issues arising from the computerization of industry and government, with emphasis on copyright, security, and privacy issues. The primary focus of the course will be the determination of the weight that these ethical and social issues should have in the design, implementation, and uses of present and anticipated applications of information technology. Offered annually, either fall or spring. Junior Seminar.

CINF 385. Independent Study. 0.5 or 1 Units.

A faculty mentored course designed to cover content not addressed by current courses. By design, the study usually includes only one or two students who are led by a faculty member. Occasionally, an independent study may be used to offer an existing course because of extenuating circumstances. The sophistication and rigor of the content is consistent with courses that are offered in the third or fourth year of study in the department.

CINF 390. Special Topics in Computer Information Systems. 0.5 or 1 Units.

A course designed by faculty to delve into topics that are not typically taught in existing courses. The sophistication and rigor of the content is consistent with courses that are offered in the third or fourth year of study in the department. May be repeated for credit.

CINF 397. Internship in Computer Information Systems. 0.5 or 1 Units.

Students are expected to complete an internship of varying time length with an outside company or organization. Emphasis is on a relevant learning environment and acquisition of appropriate career skills at a suitable level of authority and responsibility. Prerequisite: approval of chair and faculty supervisor. Enrollment in an internship course requires students to attend an orientation prior to beginning work at their internship site. For more information regarding internship orientations, please contact Career & Professional Development at career@stetson.edu or 386-822-7315.

CINF 401. Big Data Mining and Analytics. 1 Unit.

This course is a survey of the means of acquiring, storing, accessing, and analyzing large data sets. Topics include using common data sources and APIs for acquiring data related to social networks, science, including medicine and health, finance, economics, journalism, government, and marketing, storing, and accessing data via high performance distributed systems and relational and non-relational databases, and statistical and machine learning algorithms for mining and analyzing data. Offered every spring semester. Prerequisite: CSCI 221 or permission of instructor.

CINF 485. Independent Study. 0.5 or 1 Units.

A faculty mentored course designed to cover content not addressed by current courses. By design, the study usually includes only one or two students who are led by a faculty member. Occasionally, an independent study may be used to offer an existing course because of extenuating circumstances. The sophistication and rigor of the content is consistent with courses that are offered in the fourth year of study in the department.

CINF 490. Special Topics in Computer Information Systems. 0.5 or 1 Units.

A course designed by faculty to delve into topics that are not typically taught in existing courses. The sophistication and rigor of the content is consistent with courses that are offered in the fourth year of study in the department.

CINF 498. Senior Project I. 1 Unit.

Students will select a topic in computer information systems, and work on it in collaboration with a faculty member. The student will develop a statement of the problem to be studied, the methods to be used, and the background information needed to solve the problem. The student will write a project proposal including any preliminary results and present the problem and results to the department. Prerequisite: Any three CSCI or CINF courses at the 300 level or above. Writing Enhanced course.

CINF 499. Senior Project II. 1 Unit.

Students will extend their research project started in CINF498. The student will write a final paper, and present the results to the department. Prerequisite: CINF 498. Writing Enhanced course.

Computer Science

CSCI 111. Introduction to Computing. 1 Unit.

An introduction to computing for non-computer science majors or those who have no previous programming experience. Introduction to elementary computer theory, algorithmic thinking, terminology, and development of software applications using Python. Offered every fall and spring semester.

CSCI 141. Introduction to Computer Science I. 1 Unit.

An introduction to computer science and object-oriented programming with Java. Offered every fall and spring semester. Prerequisite: CSCI 111 or permission of the instructor.

CSCI 142. Introduction to Computer Science II. 1 Unit.

A continuation of CSCI 141, with an introduction to recursion, linked lists, sorting and searching, and object-oriented design. Offered every fall and spring semester. Prerequisite: CSCI 141.

CSCI 180. Computer Science Elective. 0.75 to 1 Units.

CSCI 190. Special Topics in Computer Science. 0.5 or 1 Units.

This is an introductory course with varied content designed by faculty to delve into topics that are not typically taught in existing courses. The sophistication and rigor of the content is consistent with courses that are offered in the first year of study in the department.

CSCI 201. Introduction to Computer Organization. 1 Unit.

Hardware organization, assembly and system level programming, macro facilities. Offered every fall semester. Prerequisite: CSCI 141.

CSCI 221. Software Development I. 1 Unit.

Implementation of the Object-Oriented paradigm using C++ and the Unified Modeling Language (UML). An introduction to the components of the C++ compiler, and the software development life cycle. Offered every fall and spring semester. Prerequisite: CSCI 142.

CSCI 231. Discrete Structures. 1 Unit.

Potential topics include Boolean algebra and propositional logic, mathematical proofs, finite machines, Turing machines, formal languages, combinatorics, probability. Offered either fall or spring semester. Prerequisite: CSCI 141 and either MATH 141Q or MATH 130 or MATH 125Q.

CSCI 261. Data Science I. 1 Unit.

This is a first course in Data Science. Students will be introduced to the Python programming language and use that language to organize and analyze data. Programming topics include: variables, user-defined functions, looping structures, control structures, and file handling. Data analysis topics include: data cleaning, hypothesis testing, linear regression, logistic regression, neural networks, and structured query language (SQL).

CSCI 285. Independent Study. 0.5 or 1 Units.

A faculty mentored course designed to cover content not addressed by current courses. By design, the study usually includes only one or two students who are led by a faculty member. Occasionally, an independent study may be used to offer an existing course because of extenuating circumstances. The sophistication and rigor of the content is consistent with courses that are offered in the second or third year of study in the department.

CSCI 290. Special Topics in Computer Science. 0.5 or 1 Units.

This is an introductory course with varied content. Most of the course will cover content not offered in general programs within the department. The professor will choose the college-level topics to be discussed.

CSCI 301. Operating Systems. 1 Unit.

Study of the components of an operating system. Management of and communication between concurrent processes, virtual memory, scheduling, file management. Offered every spring semester. Prerequisite: CSCI 221.

CSCI 304. Computer Networks. 1 Unit.

This course focuses on the communications protocols used in computer networks: their functionality, specification, implementation, and performance (TCP/IP, Ethernet, Gigabit Ethernet). Students in the course develop networking applications using socket programming. Offered every spring semester. Prerequisites: CSCI 221.

CSCI 310. Computer Graphics. 1 Unit.

This course introduces 3D graphics modeling, viewing, and rendering techniques with an emphasis on modern shader pipeline programming in OpenGL using Java as the programming environment and the JOGL binding. Prior programming experience and knowledge of Java are required. Prerequisites: CSCI 221.

CSCI 311. Algorithm Analysis. 1 Unit.

A detailed study of algorithm design and analysis, including greedy algorithm, divide and conquer, dynamic programming, backtracking, and branch and bound. Some advanced data structures are introduced. There is an emphasis on the verification and analysis of time and space complexity. NP theory is introduced. Offered every fall semester. Prerequisite: CSCI 231.

CSCI 321. Software Development II. 1 Unit.

Project-based course in which students form teams to build a single product throughout the entire semester. Technologies used may differ each semester. Emphasis is placed on team management and code version control, requirements engineering, API development and usage, UI/UX design, and clean code. Typically, teams will be required to present their work. Offered every semester. Prerequisite: CSCI 221.

CSCI 341. Mathematical Modeling and Computer Simulation. 1 Unit.

An introduction to the development of mathematical models, and the use of computers towards that goal. Topics include model construction, regression, empirical modeling, difference equations and dynamical systems, probabilistic modeling, and Monte Carlo simulation. Offered based on student demand. Prerequisites: MATH 142Q and MATH 211Q, and either CSCI 141 or CSCI 261. Cross-listed as MATH 341.

CSCI 361. Numerical Analysis. 1 Unit.

A study and analysis of common numerical methods used in applied mathematics. Topics include solutions of non-linear equations, the solutions of systems of linear equations, interpolation, numerical integration, and the numerical solution of differential equations. Offered based on student demand. Prerequisite: MATH 142Q, MATH 211Q, and either CSCI 141 or CSCI 261. Cross-listed as MATH 361.

CSCI 362. Data Science II. 1 Unit.

This course is designed as a second course in Data Science. While topics will evolve with the industry methods, the course intends to introduce the R programming language and include such topics as: Optimization problems, Analysis of Time Series data, Prob-it Regression, Multi-factor analysis, ARIMA models (trend analysis), SQL, Importing data from other formats, and Visualization. Prerequisite: CSCI 261.

CSCI 380. Programming Languages. 1 Unit.

Theory and principles of programming language design study of functional and procedural language. Offered based on student demand. Prerequisite: CSCI 221.

CSCI 385. Independent Study. 0.5 or 1 Units.

A faculty mentored course designed to cover content not addressed by current courses. By design, the study usually includes only one or two students who are led by a faculty member. Occasionally, an independent study may be used to offer an existing course because of extenuating circumstances. The sophistication and rigor of the content is consistent with courses that are offered in the third or fourth year of study in the department.

CSCI 390. Special Topics in Computer Science. 0.5 or 1 Units.

A course designed by faculty to delve into topics that are not typically taught in existing courses. The sophistication and rigor of the content is consistent with courses that are offered in the third or fourth year of study in the department. May be repeated for credit with different content.

CSCI 397. Internship in Computer Science. 0.5 to 1 Units.

Students are expected to complete an internship of varying time length with an outside company or organization. Emphasis is on a relevant learning environment and acquisition of appropriate career skills at a suitable level of authority and responsibility. Prerequisite: Approval of CSCI faculty. Enrollment in an internship course requires students to attend an orientation prior to beginning work at their internship site. For more information regarding internship orientations, please contact Career & Professional Development at career@stetson.edu or 386-822-7315.

CSCI 431. Artificial Intelligence. 1 Unit.

Theory and practice of neural networks and machine learning generally. PyTorch, TensorFlow, or other libraries or frameworks will be used. Topics include deep learning, convolutional neural networks, BERT-based NLP models, generative adversarial networks, reinforcement learning, and recent research. Typically offered in fall semesters. Prerequisite: CSCI 221.

CSCI 485. Independent Study. 0.5 or 1 Units.

A faculty mentored course designed to cover content not addressed by current courses. By design, the study usually includes only one or two students who are led by a faculty member. Occasionally, an independent study may be used to offer an existing course because of extenuating circumstances. The sophistication and rigor of the content is consistent with courses that are offered in the third or fourth year of study in the department.

CSCI 490. Special Topics in Computer Science. 0.5 or 1 Units.

A course designed by faculty to delve into topics that are not typically taught in existing courses. The sophistication and rigor of the content is consistent with courses that are offered in the fourth year of study in the department.

CSCI 498. Senior Research I. 1 Unit.

Students will select a topic in computer information systems, and work on it in collaboration with a faculty member. The student will develop a statement of the problem to be studied, the methods to be used, and the background information needed to solve the problem. The student will write a project proposal including any preliminary results and present the problem and results to the department. Prerequisite: Any three CSCI courses at the 300 level or above. Writing Enhanced course.

CSCI 499. Senior Research II. 1 Unit.

Students will extend their research project started in CSCI 498. The student will write a final paper, and present the results to the department. Prerequisite: CSCI 498. Writing Enhanced course.

Cybersecurity

CSEC 141. Introduction to Cybersecurity. 1 Unit.

This course provides an overview of the broad range of issues, techniques, people, organizations, and recent news related to cybersecurity. It explains the ways in which cybersecurity impacts individuals, organizations, and states and covers relevant US and international laws. This course also exposes students to the various professions connected with cybersecurity and provides the terms and concepts that are revisited in all other CSEC courses. Students in this course use a scripting language such as Python to simulate attacks and understand cybersecurity principles. Prerequisite: CSCI 111 or CSCI 141.

CSEC 302. Secure Coding. 1 Unit.

This course studies the theory and practice of writing software that is less likely to be vulnerable to common exploits. It focusses on coding in programming languages such as C, C++, Java, JavaScript, and PHP and describes some of the common mistakes made when coding in these languages. Exploits including buffer overflows, SQL-injection, cross-site scripting, race conditions, and authentication techniques are covered. Prerequisite: CSEC 141, CSCI 221.

CSEC 303. Applied Cryptography. 1 Unit.

This course covers the implementation of software that uses hashing, encryption, authentication, key-management, and credential handling through the use of common open-source libraries such as OpenSSL. The course also exposes students to the theoretical foundations of these techniques including a comparison of their use cases and the security guarantees of various algorithms. Prerequisite: CSEC 141, CSCI 221.

CSEC 331. Computer and Network Security. 1 Unit.

This course provides students with an introduction to computer and network security with an emphasis on computer attacks and defending against them. It examines the reconnaissance, scanning, gaining access, maintaining access, and covering tracks phases of a cybersecurity attack and uses various open-source tools for monitoring and detecting and implementing such attacks. Prerequisite: CSEC 141, CSCI 221.

CSEC 385. Independent Study. 0.5 or 1 Units.

CSEC 397. Internship in Cybersecurity. 1 Unit.

Students are expected to complete an internship of varying time length with an outside company or organization. Emphasis is on a relevant learning environment and acquisition of appropriate career skills at a suitable level of authority and responsibility. Prerequisite: Approval of CSEC faculty. Enrollment in an internship course requires students to attend an orientation prior to beginning work at their internship site. For more information regarding internship orientations, please contact Career & Professional Development at career@stetson.edu or 386-822-7315.

CSEC 401. Digital Forensics. 1 Unit.

This course teaches analytical and investigative techniques to identify, expose, collect, and preserve data stored on a physical device or in a network. The course uses exploit techniques to expose data while emphasizing careful data handling and documentation. Prerequisite: CSEC 141, CSCI 221.

CSEC 402. System Administration and Cloud. 1 Unit.

This course teaches system administration and network architectures for Microsoft Windows Server and Linux environments for typical multi-user deployments. The course covers virtualization technology and containerization and uses cloud computing providers, such as Microsoft Azure, Amazon Web Services, and/or Google Cloud in addition to automation tools such as Kubernetes for launching and managing cloud resources. Prerequisite: CSEC 141, CSCI 221.

CSEC 498. Senior Proposal. 1 Unit.

This course is the first of a two-course sequence that requires students to select a topic in cybersecurity and research and develop it in collaboration with a faculty member. The student will develop a statement of the problem to be studied, the methods to be used, and the background information needed to solve the problem. The student will write a project proposal including any preliminary results and present the problem and results to the department. Prerequisite: Two 300+level CSEC courses and one 300+level CSEC or CSCI course. Writing Enhanced course.

CSEC 499. Senior Project. 1 Unit.

This course culminates the research started in CSEC498 with the student extending and completing the proposed work into a final product. The student will write a final paper and present the results to the department. Prerequisite: CSEC 498. Writing Enhanced course.