Dr. Krishnendu Roy, Interim Department Head
Room 2070 Nevins Hall
The Department of Computer Science offers a Bachelor of Science degree in Computer Science, a Bachelor of Science degree in Computer Information Systems, and a minor in Computer Science. The Bachelor of Science in Computer Science is accredited by the Computing Accreditation Commission of ABET.
The undergraduate curriculum is continually updated by the experienced and highly qualified faculty. The students of Computer Science Department at Valdosta State University benefit from a program that is cutting-edge and state-of-the-art; a congenial faculty; and an active and diverse student population. The programs in the department are designed to give the students the basic knowledge, skills, and values that build upon the foundation provided by the University Core Curriculum and that are required for professional careers in computing sciences. Moreover, through a series of sequenced courses, the department prepares the students for more advanced study, either at the graduate level or through company training programs. The requirements of the programs have been designed in keeping with national norms of excellence and according to well established model curricula where they exist. The department has a strong commitment to fostering undergraduate research and critical thinking skills.
The Program Educational Objectives (PEO’s) for the Computer Science program are:
- Graduates will distinguish themselves in breadth of perspective and the ability to solve complex problems.
- Graduates will work effectively in groups that include other computer scientists, and stakeholders from other disciplines, effectively communicating with their peers, customers, supervisors, and others through both written and oral means.
- Graduates will know how to teach themselves new concepts and technologies, remaining current in their field through the pursuit of lifelong learning.
After completing the CS Program, students will satisfy the following Student Outcomes.a.An ability to apply knowledge of computing and mathematics appropriate to the discipline.
- An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
- An ability to design, implement and evaluate a computer-based system, process, component, or program to meet desired needs.
- An ability to function effectively on teams to accomplish a common goal.
- An understanding of professional, ethical, legal, security, and social issues and responsibilities.
- An ability to communicate effectively with a range of audiences.
- An ability to analyze the local and global impact of computing on individuals, organizations and society.
- Recognition of the need for, and an ability to engage in, continuing professional development.
- An ability to use current techniques, skills, and tools necessary for computing practice.
- An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of tradeoffs involved in design choices.
- An ability to apply design and development principles in the construction of software systems of varying complexity.
Jobs in the field of computer science and computer information systems are in high demand and graduates in these disciplines are prepared for a variety of positions such as systems and applications programmers, analysts, software engineers and various other computer specialist positions.
CS 1000. Introduction to Microcomputers and Applications. 3 Hours.
Computing technology and concepts; applications of personal computers. Topics include hardware and software terminology, word processing, spreadsheets, e-mail, the Internet, the microcomputer’s operating system and its use, ethics, and current trends in the use of computers. A hands on laboratory is integrated with the course.
CS 1003. Introduction to Interactive Media. 3 Hours.
An introduction to tools designed for interactive multimedia, using the Processing language, developed for the electronic arts and visual design communities. Through intensive and immersive laboratory exercises, student will learn valuable programming fundamental and essential concepts from graphics, audio processing and human-computer interaction.
CS 1010. Algorithmic Problem Solving. 3 Hours.
An introduction to algorithm design and programming as components of the software life cycle, with emphasis on the development of algorithms for solving problems; introduction to the development environment for a particular programming language.
CS 1020. Website Design and Development. 3 Hours.
The design and development of websites. The course covers a brief history of the Internet and the World Wide Web, Hypertext Markup Language, Cascading Style Sheets, website authoring tools, basic graphics, website design principles, as well as personal, educational and e-commerce applications.
CS 1301. Principles of Programming I. 4 Hours.
Prerequisite: MATH 1101 or MATH 1111 or MATH 1112 or MATH 1113 or MATH 1261 or MATH 1262 or MATH 2261 or MATH 2262, with a grade of "C" or better. Programming-language syntax and semantics; problem solving; algorithm design and implementation using modern programming paradigms and techniques; data types and elementary data structures. This course involves extensive programming activities. Students without strong math and programming background are encouraged to take CS 1010 first.
CS 1302. Principles of Programming II. 4 Hours.
Prerequisite: CS 1301 with a grade of “C” or better. A continuation of CS 1301 with emphasis on advanced programming structures and techniques. Theory and applications of stacks, queues, and lists; recursion; file processing; introduction to binary trees. This course involves extensive programming activities.
CS 1340. Computing for Scientists. 3 Hours.
Prerequisite or corequisite: Math 2261. Foundations of computing, with an introduction to design and analysis of algorithms, including design and construction of programs for scientific and engineering applications.
CS 2620. Discrete Structures. 3 Hours.
Prerequisite: MATH 1112, or MATH 1113 or MATH 1261 or MATH 2261, with a grade of C or better. Propositional and predicate logic mathematical induction, and recursion. Sets, relations, functions. Graphs and trees. Boolean algebra and computer logic. Finite state machines and computability.
CS 3000. Tutoring in Computer Science I. 2 Hours.
Prerequisite or corequisite: CS 3410 or consent of instructor. Graded “Satisfactory” or “Unsatisfactory.” Fundamentals of one-on-one tutoring in computer science. Review of the principles in programming, including programming language syntax and semantics; problem solving; algorithm design and implementation using current paradigms; data types and data structures; theory and applications of stacks, queues, lists, and binary trees; recursion; and file processing. Introduction to techniques and guidelines for tutoring. Designed for the Tutoring Center tutors in computer science.
CS 3001. Tutoring in Computer Science II. 1 Hour.
Prerequisite: CS 3000. Graded “Satisfactory” or “Unsatisfactory.” Advanced techniques for one-on-one tutoring in computer science. Review of discrete structures, computer organization, and advanced programming principles. Identification and discussion of effective methods for correcting common problems and misconceptions encountered by beginning and intermediate programming students. Discussion of techniques with less experienced tutors. Designed for the Tutoring Center tutors in computer science.
CS 3101. Computer Organization. 3 Hours.
Prerequisite: CS 1302 with a grade of “C” or better. An overview of computer organization and design including Boolean algebra, combinational and sequential circuits, data representation, register transfer and microoperations, CPU organization, microprogrammed control, and machine language programming.
CS 3102. Assembly Language. 3 Hours.
Prerequisite: CS 3101 with a grade of “C” or better. A continuation of CS 3101 with emphasis on machine and assembly language instruction and programming techniques, addressing modes, data representations, I/O, and the assembly process.
CS 3200. Computer Ethics. 3 Hours.
Prerequisite: CS 1301 with a "C" or better. Introduction to social and ethical impacts of computing, and an overview of the ethical issues created, transformed, and worsened by computing technology. Topics include professional code of ethics, cybercrime, privacy and security, rights of intellectual property, and globalization.
CS 3300. UNIX Programming. 3 Hours.
Prerequisite: CS 1302 with a grade of “C” or better. An introduction to UNIX and shell programming. Various shell languages, including ksh and bash are discussed, in addition to basic UNIX commands. Web scripting languages such as Perl, HTML, and XML are also introduced in the UNIX environment.
CS 3335. The C Programming Language. 3 Hours.
Prerequisite: CS 1302 with a grade of “C” or better. Programming using the C programming language. Syntax and semantics of C; information representation; stylistic consideration; the C library. This course also discusses issues relating to the UNIX operating system.
CS 3340. Web Programming. 3 Hours.
Prerequisite: CS 1302 with a grade of “C” or better. Examination and implementation of the foundations of web-based computing. Topics include Hypertext Markup Language (HTML), Cascading Style Sheets (CSS), client-side scripting, server-side programming, state management, data access, Extensible Markup Language (XML), web services, and component-based development.
CS 3410. Data Structures. 3 Hours.
Prerequisite: CS 1302 and CS 2620 with a grade of C or better. Trees, graphs, and other forms of data structures and their implementations. Emphasizing abstract data types; static memory allocation vs. dynamic storage allocation; searching, hashing, and sorting methods; algorithm analysis.
CS 3520. Algorithms. 3 Hours.
Prerequisite: CS 3410 with a grade of “C” or better. Sequential and parallel algorithms for solving a variety of different problems; paradigms for algorithms; algorithm analysis; NP-complete problems.
CS 3700. Introduction to E-Commerce. 3 Hours.
Prerequisite: CS 1302 with a grade of “C” or better. An introduction to e-commerce trends, technologies, and strategies. Topics include the importance and impact of e-commerce, business-to-consumer, business-to-business, wireless networks, mobile commerce, online marketing, web services, supply chains, electronic payment, security, and legal issues.
CS 3750. Introduction to Cybersecurity. 3 Hours.
Prerequisite: CS 1302 and CS 2620 with a grade of "C" or better. A study of the basic concepts related to strengths and weaknesses of a computing system. Topics include forms of malware, threats to and attacks on computers, applications, and networks; mechanisms and tools to detect and deter cyber-attacks and to secure a system; and standard security goals, principles, models, policies, and practices.
CS 4121. Data Communications and Networks I. 3 Hours.
Prerequisites: CS 3101 and CS 3410, each with a grade of “C” or better. Basic concepts of data communications and computer networks architectures: including OSI and TCP/IP models, packet switching, local area and high speed networks. Error control, routing, and transmission media.
CS 4122. Data Communications and Networks II. 3 Hours.
Prerequisite: CS 4121 with a grade of “C” or better. A continuation of CS 4121 in which advanced topics in data communication and networking are studied.
CS 4242. Mobile Application Development. 3 Hours.
Prerequisite: CS 3410 with a grade of "C" or better. An introduction to mobile application development for the Android platform. Topics include activity lifecycle, intents, fragments, location tracking, SQLite, and maps. The course culminates in a substantial project.
CS 4321. Software Engineering I. 3 Hours.
Prerequisite: CS 3410 with a grade of “C” or better. Concepts and techniques used in all aspects of the software life-cycle relevant to the production of large object-oriented software systems. Students will work in teams on a project.
CS 4322. Software Engineering II. 3 Hours.
Prerequisite: CS 4321 with a grade of “C” or better. Advanced topics in software engineering, such as analysis, design, architecture, testing, and maintenance.
CS 4330. Theory of Programming Languages. 3 Hours.
Prerequisite: CS 3410 with a grade of C or better. Formal description of programming languages, standard and advanced features of modern programming languages, complexity.
CS 4340. Systems Programming. 3 Hours.
Prerequisites: CS 3335 and CS 3410, each with a grade of “C” or better. Implementation of concepts pertaining to the UNIX environment: process control and interprocess communication, job control, file and directory structures, and client/server processes.
CS 4345. Operating Systems. 3 Hours.
Prerequisites: CS 3101 and CS 3410, each with a grade of “C” or better. A survey of operating systems structures and services including batch systems, multiprogramming, time-sharing, process scheduling and synchronization, deadlocks, memory management, file-system interfaces and implementations, and secondary storage management.
CS 4500. Formal Languages and Automata Theory. 3 Hours.
Prerequisites: CS 3410 with a grade of C or better. Concepts pertaining to regular expressions, finite state machines, regular languages, regular grammars, non-regular languages, decidability, context-free grammars, and Turing machines.
CS 4700. E-Commerce Design. 3 Hours.
Prerequisite: CS 3410 with a grade of “C” or better. An in-depth study of e-commerce implementation. Through programming projects, students will learn e-commerce design principles, tools, and techniques.
CS 4721. Database Design I. 3 Hours.
Prerequisite: CS 3410 with a grade of “C” or better. The logical organization of databases: the entity-relationship model; the hierarchical model, network, and relational models. Hardware characteristics; file organization and evaluation. Functional dependencies and normal forms. Query optimization, concurrency control, and distributed database systems.
CS 4722. Database Design II. 3 Hours.
Prerequisite: CS 4721 with a grade of “C” or better. An in-depth study of advanced database design and implementation concepts including transaction processing, concurrency, control techniques, recovery techniques, distributed databases and client/server architecture, and security and authorization.
CS 4731. Big Data. 3 Hours.
Prerequisites: CS 4721 with a grade of "C" or better. The development of web-based applications on big data sources using client-side and server-side scripting; social media data acquisition via web services; relational and non-relational databases; big data processing.
CS 4800. Internship in Computer Science. 3-6 Hours.
Prerequisites: Junior or senior standing, a minimum 2.5 GPA, and permission of the internship coordinator and Department Head. Graded “Satisfactory” or “Unsatisfactory.” Active participation in research or development in computer science or in a closely allied field. A daily log of activities, a report on the work done, and a report on the internship experience or a research paper relating the work done to the field of computer science are required.
CS 4820. Artificial Intelligence. 3 Hours.
Prerequisites CS 3410 With a grade of C or better. Definition of artificial intelligence, Common Lisp, logic programming, search techniques, knowledge representation including schemas and scripts, ART-enterprise as an expert systems, and principles expert systems.
CS 4825. Neural Networks. 3 Hours.
Prerequisites: MATH 2150 and MATH 2262, each with a grade of “C” or better. Concepts pertaining to neural networks including: definition of neural intelligence, basic neural computational models, learning: supervised and unsupervised, knowledge bases neural networks, back-propagation neural networks, radial basis neural networks.
CS 4830. Computer Graphics. 3 Hours.
Prerequisites: CS 3410 with a grade of “C” or better. A survey of graphics systems and graphics programming. Topics include output primitives, transformations and viewing, modeling, user interfaces, and interactive methods. Both 2-D and 3-D concepts are discussed.
CS 4835. Parallel Programming. 3 Hours.
Prerequisite: CS 3335 with a grade of "C" or better. Introduction to data parallel architectures, models, and programming environments. Students will design, develop, and optimize software for parallel computing resources.
CS 4900. Senior Seminar. 3 Hours.
Prerequisites: CS 1301 and 3410, each with a grade of "C" or better, and senior standing. A capstone experience intended primarily for computer science majors that involves group development and management of a substantial software project using current technologies and culminating in an oral presentation, product demonstration, and formal report. Advanced programming skills are used in this course.
CS 4950. Directed Study in Computer Science. 1-3 Hours.
Prerequisite: Consent of instructor. The student will undertake at least one major computer-science project under the supervision of the instructor. Credit will be assigned on the basis of the effort required by the project. May be taken more than once if topics are different.
CS 4990. Topics in Computer Science. 1-3 Hours.
Prerequisite: Consent of instructor. Topics to be assigned. May be taken more than once if topics are different.
CS 6321. Software Engineering I. 3 Hours.
Prerequisite CS 3410. Early stages of the software- development process, with emphasis upon analysis and specification. Also, life-cycle definition, software project management, the computer as a system component, and object-oriented approaches. CASE tools will be used as appropriate.
CS 6322. Software Engineering II. 3 Hours.
Prerequisite CS 3410 (note that CS 4321/6321 is not a prerequisite). The later stages of the software-development process with emphasis upon design, implementation, verification/validation, and maintenance. Also, human factors, object-oriented techniques, reliability, and quality-assurance issues.
CS 6330. Theory of Programming Languages. 3 Hours.
Prerequisite CS 3410 with a grade of "C" or better. Formal description of programming languages, standard and advanced features of modern programming languages, complexity.
CS 6340. Systems Programming. 3 Hours.
Prerequisite CS 3410. Implementation of concepts pertaining to the UNIX environment: process control and interprocess communication, job control, file and directory structures, and a client/server processes.
CS 6500. Foundations of Computer Science. 3 Hours.
Prerequisites CS 2620 and CS 3410. The course covers concepts pertaining to regular expressions, finite state machines, regular languages, regular grammars, non regular languages, decidability, context-free grammars, and Turing machines.
CS 6720. Database Design. 3 Hours.
Prerequisite CS 3410. Examines the logical organization of databases: the entity-relationship model; the hierarchical model, network, and relational models. Hardware characteristics; file organization and evaluation. Functional dependencies and normal forms. Query optimization, concurrency control, and distributed database systems.
CS 6820. Artificial Intelligence. 3 Hours.
Prerequisites CS 2620 and CS 3410. Definition of artificial intelligence, Common Lisp, logic programming, search techniques, knowledge representation including schemas and scripts, ART-enterprise as an expert system, and principles of expert systems.
CS 6825. Neural Networks. 3 Hours.
Prerequisites MATH 2150 and MATH 2262. Concepts pertaining to neural networks including: definition of neural intelligence, basic neural computational models, learning: supervised and unsupervised, knowledge bases neural networks, back-propagation neural networks, radial basis neural networks.