Computer Science

Stetson University provides students a flexible curriculum where they can receive a Bachelor of Science degree in computer science or a Bachelor of Arts degree in computer information systems. The computer science major gives students a broad overview of the field of computer science and prepares them for graduate study in computer science or a career in industry that emphasizes the student’s technical expertise. The computer information systems major is designed for students who are interested in applying today’s technologies to the solution of business problems. Students choosing this major are prepared for graduate study in information technology, computer information systems, or software engineering, or a career in industry that emphasizes software application development. By taking courses that emphasize network and Web-based application development and that include selected electronic business courses, and by combining this knowledge with a minor in business, students obtain a solid foundation -- not only in computer information systems, but also in how the technology is used in a business environment. The department also supports the interdisciplinary digital arts/computer science major for students interested in the application of computer science to digital media, computer graphics and animation, and computer music. See Digital Arts elsewhere in the Catalog for more information.

Regardless of the major, students are prepared to enter a vital and rapidly changing field, either by pursuing graduate study or through leadership in a challenging industry career. The majors incorporate the Object Oriented paradigm, the theoretical aspects of computer science, and the skills of software engineering into a challenging curriculum modeled after the nationally recognized guidelines of the Joint IEEE Computer Society/ACM Task Force on the "Year 2001 Model Curricula for Computing” (CC-2001). The curriculum emphasizes a hands-on learning environment where students learn the important concepts as they work on real-world projects. Both the computer science and computer information systems degrees require a senior project, a capstone experience appropriate to the selected major.

More information can be found online at http://www.stetson.edu/other/academics/programs/computer-science.php.

Minor in Computer Science - 5 Units

Minor Requirements
CSCI 141Introduction to Computer Science I1
CSCI 142Introduction to Computer Science II1
One 200-level CSCI course and two 300- or 400-level CSCI courses, or three 300 or 400 level CSCI courses3
Total Units5

Advising Course Plans

Branton, Michael G.
Professor of Mathematics and Computer Science, 1982
B.S., Florida Technological University
M.S., Ph.D., University of North Carolina at Chapel Hill

Eckroth, Joshua
Assistant Professor of Computer Science, 2014
B.A., Humboldt State University
M.S., Ph.D., The Ohio State University

El Aarag, Hala
Associate Professor of Computer Science, 2002
B.S., M.S., Alexandria University
Ph.D., University of Central Florida

Hirsch, Michael
Visiting Assistant Professor of Mathematics and Computer Science, 2014
B.A., West Chester University
M.S., University of Delaware
Ph.D., University of Florida

Miles, William W.
Associate Professor of Mathematics and Computer Science, 2003
B.S., Presbyterian College
M.S., Virginia Commonwealth University
Ph.D., Clemson University

Plante, Daniel
Professor of Computer Science, 1997
B.S., Marlboro College
Ph.D., University of Notre Dame


 

CINF 190. Special Topics in Computer Information Systems. 1 Unit.

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, OLTP and OLAP. A brief introduction to NoSQL databases is included. Prerequisite: CSCI 111Q or CSCI 142 or CSCI 261 or permission of instructor.

CINF 285. Independent Study. 0.5 or 1 Units.

CINF 290. Special Topics in Computer Information Systems. 1 Unit.

CINF 301. Web Application Development. 1 Unit.

Implementation of Web applications, treating both the client and the server, with an emphasis on database driven applications that includes logical and physical database design, entity-relationship modeling, and database normalization. Possible development environments include PHP, Javascript, and MySQL. 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. Prerequisite CSCI 221.

CINF 331. Computer and Network Security. 1 Unit.

An introduction to computer and network security with an emphasis on computer attacks and defending against them. Examines the reconnaissance, scanning, gaining access, maintaining access, and covering tracks phases of the attack process and uses various open source tools for monitoring and detection. Prerequisite: CSCI 221.

CINF 351E. Ethics and Technology. 1 Unit.

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. Junior Seminar.

CINF 385. Independent Study. 0.5 or 1 Units.

CINF 390. Special Topics in Computer Information Systems. 1 Unit.

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. Prerequisite: CSCI 221 or permission of instructor.

CINF 485. Independent Study. 0.5 or 1 Units.

CINF 490. Special Topics in Computer Information Systems. 1 Unit.

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.

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.

CSCI 111Q. 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 software applications in either a robotics or multimedia context.

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

An introduction to computer science and object oriented programming with Java. 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. Prerequisite: CSCI 141.

CSCI 190. Special Topics in Computer Science. 1 Unit.

CSCI 201. Introduction to Computer Org. 1 Unit.

Hardware organization, assembly and system level programming, macro facilities. Prerequisite: CSCI 141.

CSCI 211. Discrete Structures. 1 Unit.

Boolean algebra and propositional logic, mathematical proofs, finite machines, Turing machines, formal languages, combinatorics, probability. Prerequisite: CSCI 141 and either MATH 141Q or MATH 130 or MATH 125Q.

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. Prerequisite: CSCI 142.

CSCI 261. Introduction to Scientific Computing. 1 Unit.

This course provides an introduction to scientific computing. Students will develop computational models and simulations related to the sciences – including biology, chemistry, physics, and environmental sciences – and learn how to implement such models numerically by programming, and how to analyze these models and the solutions which they obtain computationally. Prerequisite MATH 141Q or MATH 131Q.

CSCI 285. Independent Study. 0.5 or 1 Units.

CSCI 290. Special Topics in Computer Science. 1 Unit.

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. Prerequisite: CSCI 221.

CSCI 302. Computer Organization and Architecture. 1 Unit.

Organization of major hardware components of a computer; introduction to digital logic and microprogramming: comparison of computer architectures. Prerequisite: CSCI 201.

CSCI 304. Computer Networks and Mobile Computing. 1 Unit.

This course focuses on the communications protocols used in computer networks: their functionality, specification, implementation, and performance (TCP/IP, Ethernet, Gigabit Ethernet). It also introduces the field of mobile and wireless computing. Prerequisites: CSCI 221 and CSCI 301.

CSCI 310. Computer Graphics I. 1 Unit.

Techniques and standard algorithms for creating and animating two- and three-dimensional objects, including lighting, texturing, collision detection, matrix transformations, physics-based animation and SLERPing via quaternions. Prerequisites: CSCI 221 and MATH 211Q.

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 is on the verification and analysis of time and space complexity. NP theory is introduced. Prerequisite: CSCI 211.

CSCI 321. Software Development II. 1 Unit.

The study of advanced Object Oriented and UML concepts using C++. Design Patterns, the Standard Template Libraries, and basic network communications (sockets, rpc). A continuation of the study of the software development life cycle. Prerequisite: CSCI 221.

CSCI 331. Combinatorics and Graph Theory. 1 Unit.

This course studies techniques of enumeration and graph theory. Topics include binomial coefficients, recursion, generating functions, Burnside's Lemma, Eulerian and Hamiltonian graphs, trees, planarity, duality, graph coloring, graph algorithms, and various practical applications. Prerequisite: CSCI 211 or MATH 221Q. Cross-listed as MATH 331.

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. 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. Prerequisite: MATH 142Q, MATH 211Q, and either CSCI 141 or CSCI 261. Cross-listed as MATH 361.

CSCI 371. Compiler Design. 1 Unit.

Principles, techniques and tools for designing a compiler for a procedural language. Prerequisites: CSCI 201 and CSCI 221 and knowledge of C programming.

CSCI 380. Programming Languages. 1 Unit.

Theory and principles of programming language designl study of functional and procedural language. Prerequisite: CSCI 221.

CSCI 385. Independent Study. 0.5 or 1 Units.

CSCI 390. Special Topics in Computer Science. 1 Unit.

May be repeated for credit.

CSCI 397. Internship in Computer Science. 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 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 410. Computer Graphics II. 1 Unit.

A continuation of CSCI 310, including key-frame animation, kinematics, the A* algorithm, flocking behaviors, metaballs, and shader-based graphics. Prerequisite: CSCI 310.

CSCI 431. Artificial Intelligence. 1 Unit.

Emphasizes the new-AI. Topics may include decision trees, neural networks, artificial life, genetic algorithms, genetic programming, evolutionary computing, and fuzzy systems. Prerequisite: CSCI 221.

CSCI 471. Theory of Compilation. 1 Unit.

An examination of the concepts of formal languages, automata theory, context free grammars, and Turing Machines. Prerequisite: CSCI 211.

CSCI 485. Independent Study. 0.5 or 1 Units.

CSCI 490. Special Topics in Computer Science. 1 Unit.

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 3 CSCI courses at the 300 level or above.

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.