Bachelor of Science Degree
Computer Science is a discipline that studies computer architecture, software design, algorithms, information processing, computer applications and systems, and the mathematical foundations of computing. The four-year Bachelor of Science Degree in Computer Science is a student-centered industry-informed B.S. degree that leads to employment or graduate study in the field of computer science. The computer science content and curriculum build upon the work of the Association for Computing Machinery (ACM) and the Institute of Electrical and Electronics Engineers Computer Society (IEEE), the two major professional organizations in Computer Science. The ACM/IEEE CS2013 curriculum guidelines, the most prominent national standard for Computer Science degree curricula, were used to ensure sufficient coverage of important topics. The curriculum is designed to ensure students receive a broad foundation in computer science fundamentals, natural sciences, mathematics, and communication skills. Students will also be able to expand their abilities through advanced elective offerings.
Students will develop proficiency in software design and algorithms by working both individually and in team environments. They will analyze, design, and build complex software components in diverse, collaborative teams to solve industry-informed relevant problems. Students in this program will expand their ability to communicate and collaborate across disciplines. An essential part of this program is a culminating experience to be completed in the senior year. Students generate their final projects, based on their interests and real-world issues. Students will be encouraged to participate in a research project with faculty and to collaborate with representatives from industry.
Computer Science graduates are trained for a wide variety of roles in the information technology and computing field. Graduates will possess strong problem-solving, communication, and leadership skills, which will enable them to become lifelong learners ready to become experts in their chosen field.
Typical Employment Opportunities
Technical Account Specialists
Computer Science (BS) Program Outcomes:
- Graduates will be able to apply computer science theory and software development fundamentals to produce computing-based projects.
- Graduates will be able to analyze complex computing problems and apply principles of computing and other relevant disciplines to identify solutions.
- Graduates will be able to design, implement, and test computing-based solutions to meet a given set of computing requirements using computer science theory and software development principles.
- Graduates will be able to recognize professional responsibilities and make informed judgments in computing practice based on relevant legal and ethical principles.
- Graduates will be able to function and communicate effectively as a member or leader of a team in a variety of professional contexts.
- Graduates will be able to use current techniques, skills, and tools necessary for computing practice.
- Graduates will be able to recognize the need for, and have the ability to, engage in lifelong learning.
Admission to Farmingdale State College - State University of New York is based on the qualifications of the applicant without regard to age, sex, marital or military status, race, color, creed, religion, national origin, disability or sexual orientation.
Subject to revision
|Liberal Arts and Sciences||(52 credits)|
|EGL 101 Composition I: College Writing (GE)||3|
|EGL 102 Composition II: Writing About Literature||3|
|Communications (SPE 330 or SPE 331) (GE)||3|
|The Arts (GE)||3|
|Natural Science (GE)||8|
|MTH 150 Calculus I (GE) or|
|MTH 130 Calculus I with Applications||4|
|Foreign Language (GE)||3|
|Social Sciences (GE)||3|
|American/Other World/Western Civilization History (GE)||3|
|300 level Arts & Science Electives||3|
|Arts and Science Electives*||13|
Required Computer Science (68 credits)
|CSC 101 Introduction to Computing||3|
|CSC 111 Computer Programming I||3|
|CSC 251 Discrete Structures||4|
|CSC 211 Computer Programming II||3|
|CSC 229 Data Structures and Algorithms I||3|
|CSC 243 Computer Architecture and Organization||3|
|CSC 329 Data Structures and Algorithms II||3|
|CSC 311 Advanced Programming||3|
|CSC 363 Data Management||3|
|CSC 325 Software Engineering||3|
|CSC 321 Principles of Programming Languages||3|
|CSC 375 Ethical Issues in Computing||3|
|CSC 343 Operating Systems||3|
|CSC 332 Computer Networks||3|
|CSC 490 Senior Project or|
|CSC 492 Industry Forum||4|
|CSC Upper Level Elective or|
|Approved BCS Upper Level Elective||12|
Degree Type: BS
Total Required Credits: 120
Please refer to the General Education, Applied Learning, and Writing Intensive requirement sections of the College Catalog and consult with your advisor to ensure that graduation requirements are satisfied.
** Students must take at least 7 credits of approved mathematics courses (from the Math department or from other departments) that are at least at the level of Calculus I. For students intending to transfer or to pursue graduate study, 4 credits of this should be Calculus 151 Calculus II.
Preapproved Mathematics electives:
ECO 380 Econometrics (3 credits)
MTH 151 Calculus II (4 credits)
MTH 236 Calculus II with Applications (3 credits)
MTH 245 Linear Algebra (3 credits)
MTH 246 Introduction to Financial Mathematics (3 credits)
MTH 252 Calculus III (4 credits)
MTH 270 Introduction to Mathematical Computation (3 credits)
MTH 360 Applied Probability and Statistics (3 credits)
MTH 390 Methods in Operations Research (3 credits)
Selected BCS and CSC elective courses (3 credits):
BCS 360 Programming in SQL / Database Programming
BCS 372 Foundations of Theoretical Computer Science
BCS 378 Information Security
BCS 390 Database Administration and Security
BCS 421 Android Mobile Application Development or
BCS 422 iOS Mobile Application Development
BCS 425 Business Intelligence and Data Warehousing
BCS 427 Game Programming
BCS 428 Large Software System Development
BCS 440 CPIS Internship / Computing Internship
CSC 345 Compiler Construction and Design
CSC 351 Human Computer Interaction
CSC 411 Secure Programming
CSC 425 Advanced Software Development
CSC 429 Advanced Algorithms
CSC 466 AI and Machine Learning
EGL 101 Composition I: College Writing
This is the first part of a required sequence in college essay writing. Students learn to view writing as a process that involves generating ideas, formulating and developing a thesis, structuring paragraphs and essays, as well as revising and editing drafts. The focus is on the development of critical and analytical thinking. Students also learn the correct and ethical use of print and electronic sources. At least one research paper is required. A grade of C or higher is a graduation requirement. Note: Students passing a departmental diagnostic exam given on the first day of class will remain in EGL 101; all others will be placed in EGL 097. Prerequisite is any of the following: successful completion of EGL 097; an SAT essay score (taken prior to March 1, 2016) of 7 or higher; an SAT essay score (taken after March 1, 2016) of 5 or higher; on-campus placement testing.
EGL 102 Composition II: Writing About Literature
This is the second part of the required introductory English composition sequence. This course builds on writing skills developed in EGL 101, specifically the ability to write analytical and persuasive essays and to use research materials correctly and effectively. Students read selections from different literary genres (poetry, drama, and narrative fiction). Selections from the literature provide the basis for analytical and critical essays that explore the ways writers use works of the imagination to explore human experience. Grade of C or higher is a graduation requirement. Prerequisite(s): EGL 101
SPE 330 Professional and Technical Speech
A course designed to prepare students to develop and deliver oral presentations in a professional, business, scientific, or technical context, stressing methods of presenting information specific to students’ disciplines. Students use audio-visual materials or technology to enhance their presentations. Prerequisite(s): EGL 102
SPE 331 Advanced Oral Communications
This course is designed to develop effective and professional communication in the areas of communication theory, advanced presentation skills, and voice and diction. A major component of the course provides students with a personalized voice and diction diagnostic profile which informs each student of specific speech characteristics they present that deviate from Standard Eastern Dialect. Particular attention is given to New York Regional Dialect and foreign accent reduction. The course also introduces various theoretical systems of communication. There is a strong focus on the development and effective application of presentational skills in both public and group/team environments with an emphasis on professional settings. All aspects of the course contain written components which include student readings and reports as well as comprehensive speech outlines. Prerequisite(s): EGL 102
MTH 150 Calculus I
This is the first course of the calculus sequence. Topics include limits, continuity, differentiation of functions of one variable, anti-differentiation, introduction to Riemann sums and integration, the fundamental theorem of calculus, and applications of differentiation and integration. Note: Students completing this course may not receive credit for MTH 130. Prerequisite(s): MP4 or MTH 117 or 129
MTH 130 Calculus I with Applications
This is a calculus course for those not majoring in Mathematics. Topics include the derivative, differentiation of algebraic, trigonometric, exponential and logarithmic functions, applications of the derivative and the definite integral. Applications are taken from technology, science, and business. Problem solving is stressed. A graphing calculator is required. Note: Students completing this course will not receive credit for MTH 150. This course may be non-transferable to science programs, such as Engineering Science or Computer Science, at other institutions. Prerequisite(s): MP4 or MTH 117 or 129
CSC 101 Introduction to Computing
Computers have become a part of everyday life across many academic disciplines. In this course, students will acquire a broad knowledge of the computer science and information technology fields. Topics covered will include basic computer concepts, an overview of computational and algorithmic thinking, and an introduction to using computers to solve real-world problems. After completing this course, students will be prepared to apply computer concepts to other fields.
CSC 111 Computer Programming I
This is an introductory programming course. Students will be taught basic concepts of computer programming and problem solving using an object-oriented language. Selection, repetition, methods, classes, and arrays will be covered. Note: CSC 101 is recommended as a prerequisite, but not required for this course. Note: Students completing this course may not receive credit for BCS 120.
CSC 251 Discrete Structures
The study of discrete mathematics forms the foundation for the theory and practice of computer science. This course discusses the fundamentals of logic, proofs, sets, functions, relations, recursion, recurrence relations, mathematical induction, graphs, trees, basic counting theory, regular languages, and context free grammars. Prerequisite(s): MTH 150 or MTH 130 with a grade of C or higher
CSC 211 Computer Programming II
This course expands upon the knowledge and skills presented in Computer Programming I. Topics covered include: stack and heap memory, exception handlng, inheritance, polymorphism, recursion, abstract types, unit testing, and basic GUI programming. Note: Students completing this course may not receive credit for BCS 230 Prerequisite(s): CSC 111 OR BCS 120 with a grade of C or higher
CSC 229 Data Structures & Algorithms I
This course is the first of a two course sequence that teaches students to efficiently apply programming techniques to problems commonly encountered in application programming. Fundamental data structures, including stacks, queues, lists, and trees are discussed and implemented. Students are introduced to the asymptotic analysis of algorithms into standard equivalency classes. Emphasis is placed on good programming practices. Students are evaluated both on their theoretical knowledge as well as on their performance on a variety of programming projects. NOTE: Students completing this course may not receive credit for BCS 370. Prerequisite(s): CSC 211 or BSC 230 with a grade of C or higher
CSC 243 Computer Arch and Organization
This course provides students with an understanding of computer architecture and organization. Topics include machine level representation of data, assembly language and its relation to machine level organization, and memory system architecture.· Students will complete a variety of programming assignments in assembly language and the C programming language. Prerequisite(s): CSC 111 with a grade of C or higher.
CSC 329 Data Structures & AlgorithmsII
This course is the second of a two course sequence that teaches students to efficiently apply programming techniques to problems commonly encountered in application programming. More complex data structures, including balanced trees, graphs, maps, and heaps are introduced. Students are taught to analyze and classify more complex iterative and recursive algorithms into the standard Big-O equivalency classes. Emphasis is placed on good programming practice. Students are evaluated both on their theoretical knowledge as well as on their performance on a variety of programming projects. NOTE: Students completing this course may not receive credit for BCS 340. Prerequisite(s): CSC 229 with a grade of C or higher
CSC 311 Advanced Programming
The course expands upon the knowledge and skills presented in Computer Programming II and Data Structures and Algorithms I. Topics covered includes: graphical user interfaces and multimedia, collections, testing and documentation, streams, regular expressions, lambda expressions, concurrency, and network programming. Prerequisite(s): CSC 229 with a grade of C or higher
CSC 363 Data Management
This course focuses on the study of data and its storage with an emphasis on relational database technology and exposure to NoSQL. Students will learn the entire process of database development from data gathering to querying a fully normalized relational database. Prerequisite(s): CSC 211 or BCS 230 with a grade of C or higher
CSC 325 Software Engineering
This course discusses the fundamental knowledge of software engineering methods and supporting tools in the context of modern software development. This course takes a close look at the various phases of software projects: definition, design, development, .delivery, management, and maintenance. The modern methodologies used in each of these phases will be explored, as well as their integration into successful projects. Students will learn through individual and team projects how to use version control systems and apply the principles of V software quality assurance. Prerequisite(s): CSC 229 with a grade of C or higher
CSC 321 Principles of Programming Language
Developers must understand the programming models underlying different languages to make an informed language choice when initiating a project. In this course, students will learn about the major programming language design paradigms and the strengths and weaknesses of the languages that follow them. This course also provides an introduction to the concepts behind compilers and runtime representations of programming languages. Topics covered may include the procedural, functional, logical, object-oriented, and visual programming paradigms. Prerequisite(s): CSC 229 with a grade of C or higher
CSC 343 Operating Systems
This course studies the design and implementation of computer operating systems. Topics covered include operating systems, principles, processes, CPU scheduling, concurrency, memory management, file systems, protection and security. Prerequisite(s): CSC 229 with a grade of C or higher
CSC 332 Computer Networking
No Description Found
CSC 490 Senior Project
The primary objective of this course is to give Computer Science students an opportunity to integrate techniques and concepts acquired in their coursework to the real-world experience of putting together and developing a functioning system. Elements will be drawn primarily from previous coursework, however everyone, functioning as part of a team, is required to go beyond what they've learned in coursework in order to develop a working system. The course is experiential in nature i.e. the student will be required to produce results for use by real individuals and will be evaluated both on process and end-product. In addition to prerequisites, Senior level standing is required. Prerequisite(s): CSC 311 and CSC 325 and Senior Level Standing