A smiling female student drips a chemical into a vial.A smiling female student drips a chemical into a vial.

CSC-Computer Science

CSC101 - Personal Productivity Software

This course provides a structured laboratory experience designed to develop and enhance a student's proficiency in using selected Windows microcomputer application software packages. (3 crs.)

CSC102 - Intro to Windows

This course provides a structured laboratory experience designed to develop and enhance a student's proficiency in using selected Windows microcomputer application software packages. (1 cr.)

CSC105 - Basic Programming Language

This course will provide the student with the knowledge to write well-structured modular programs in BASIC on a personal computer. The course assumes no prior knowledge of computers or programming. Prerequisite: High school algebra or equivalent. (3 crs.)

CSC120 - Problem Solving and Programming Constructs

This course will provide the student with a basic literacy of computers; present problem-solving heuristics and structured programming techniques; present language independent data types, operations, programming constructs and statements; introduce arrays and linked lists; and implement fundamental programs using an appropriate programming language. Prerequisite: High school algebra or equivalent. (3 crs.)

CSC124 - Computer Programming I

This course builds on CSC 120. It gives the student a thorough understanding of the presently adopted language so that the student will develop the ability to program in the language. Emphasis is placed on efficient software development using structured programming techniques. Students are required to write, test and run programs. Prerequisite: CSC 120 with C- or better. (3 crs.)

CSC150 - Introduction to Database Applications

This course is an introductory study of database application software as it is used on a microcomputer. The more commonly used operations of a selected database applications software package will be presented. Introductory database design techniques, queries, forms and reports will be presented. Laboratory assignments and projects will be used to combine database theory and database software to solve information management problems. Prerequisite: Windows experience. (3 crs.)

CSC199 - Field Experience in Computer Science

This course is designed for the associate degree student majoring in computer science. This course will enable students to apply their knowledge of computers to the real world of computer technology. The field experience will provide the student with an opportunity to see and work with the many aspects of computers in the workplace and should enhance the student's job opportunities. Prerequisite: Students should have completed 32 credits with a good GPA plus sufficient background to meet the needs of the field experience in which they will be participating. (Variable crs.)

CSC201 - Internet Concepts

This hands-on course will help students develop proficiency using systems running WindowsXP, will introduce students to all facets of the Internet, and will develop students' proficiency in Web-page design and publishing. Students will learn HTML (the language of the World Wide Web). Students will utilize various techniques to produce a personal Web page and may work in groups to produce a small website. Prerequisite: Windows experience. (3 crs.)

CSC216 - Logic and Switching Theory of the Computer

This course provides the student with an in-depth study of the basis of digital computers. Number systems, arithmetic operations, codes, Boolean algebra, Boolean minimization techniques, state transition tables and state transition graphs are discussed. Extensive emphasis is placed on the analysis and synthesis of synchronous and asynchronous combinational networks which form digital computers. Prerequisite: MAT 195 with C- or better. (3 crs.)

CSC265 - Object Oriented Programming

This course introduces the student to object-oriented programming. Object-orientated programming offers a natural method for designing software systems that builds on the concepts of data abstraction, information hiding and modularity. Prerequisites: CSC 124 with C- or better. (3 crs.)

CSC302 - Visual Programming

This course teaches Windows applications programming using the object-oriented event-driven programming paradigm, with the programming language VisualBasic.NET. It is designed as a beginning OOED programming course, but assumes students know Windows object vocabulary, have basic Windows file management skills, and are familiar with the generic procedural programming language constructs of looping, selection, and sequential processing. Pre-requisites: CIS 220 with C-or better or CSC 265 with C- or better. (3 crs.)

CSC304 - Cobol

This course introduces students to the essential elements of the COBOL language using well-structured programming techniques. Students will write and execute report programs, control break programs, data validation programs, programs that implement tables and sequential update programs. Good analysis, design and structure will be emphasized. Prerequisite: CSC 124 with C- or better or CIS 220 with C- or better or CSC 306 with C- or better. (3 crs.)

CSC306 - Fortran

The FORTRAN language will be studied. Most of the major programming constructs of FORTRAN will be covered, including assignment statements, loops, decisions, subprograms, arrays, character manipulation and file processing. Comparisons with other languages will be made, and documentation of programs will be emphasized. Prerequisite: CSC 120 with C- or better. (3 crs.)

CSC322 - Data Base Application Development

Building upon the conceptual understanding of a modern DBMS (Database Management System) and database and table design concepts gained in CIS 321 – Database Management Systems and Database Design, this course provides students with the practice of applying database technology via the Oracle DBMS to the solution of business and other information-related problems. Experience is provided with database design and implementation based on a thorough analysis of requirements and information modeling. The use of Structured Query Language (SQL) for interaction with a working DBMS for data creation, manipulation and extraction is stressed as well as optimization techniques, such as view creation and indexing. PL/SQL and database triggers are introduced. Prerequisites: CIS 321 Data Base Management Systems and Data Base Design with a C- or better. (3 crs.)

CSC323 - Assembly Language Programming

In this course the student will study an Assembly language. In doing so, the student will develop some concepts related to the architecture and operations of the computer. Programs will be written and implemented using the instructions in this assembly language. Constructs, such as selection, looping, and subprograms, will be implemented. Co-Requisite: CSC 328 (3 crs.)

CSC328 - Data Structures

The design, use and programming of data structures, such as stacks, queues, linked lists and binary trees, will be discussed. Sorting and searching methods are also discussed in this course. The analysis of algorithms will be considered as well as the applications of the various data structures. Prerequisite: CSC 265 with C- or better. (3 crs.)

CSC352 - Global, Economic and Social Ethical Issues in Computing

This course covers issues related to various global, economic and social frameworks and moves to topics specifically related to computers. Emphasis is placed on the study of ethical situations that arise as a consequence of the development and deployment of computers and related technologies. Students will use technology and software to reinforce the understanding of ethical challenges within computer technology. Guest speakers serving as Subject Matter Experts will conduct informative sessions on key subject areas such as Cyber Security, and Challenges in Computing. Case studies will be used to facilitate discussions in areas such as: economics of information systems, computer crime and hacking, computer software ownership, database privacy, risks of computing, professional liability, Internet freedom in computing and international laws and governance. (3 crs.)

CSC360 - Analysis of Algorithms

This course covers algorithm analysis theory and techniques. Students learn properties of both efficient and inefficient algorithms. The importance of analyzing algorithms before implementing them will be emphasized. This course will teach the skills necessary to determine the best algorithm for a given problem. We will investigate greedy, graph theoretic, divide and conquer, and distributed algorithms. We will cover both polynomial time algorithms and NP-completeness. Prerequisite: CSC 328 with C- or better. (3 crs.)

CSC378 - Computer Architecture

This course provides the student with an in-depth study of the organization of the central processing unit, arithmetic logic unit, control unit, instruction formats and addressing schemes of digital computers. Extensive emphasis is placed on the translation of assembly language instructions into their microsequence operations within the control unit and the interconnection and control of registers, arithmetic logic units, memory units and busses which form the central processing unit and the digital computer. Prerequisite: CSC 323 with C- or better or CET / EET 270. (3 crs.)

CSC400 - Operating Systems

This course involves an introductory study of the main elements of an operating system – memory management, process management, device management, and file management. An operating system defines an abstraction of hardware behavior with which programmers can control the hardware. It also manages resource sharing among the computer's users. This course investigates these concepts as well as issues that influence the design of contemporary operating systems, including management of processes, memory, devices, and files. Additional special topics may include scripting, security, fault tolerance, and real-time systems. Prerequisite: CSC 378 with C- or better OR CET/EET 360 (3 crs.)

CSC419 - Internship

This course is designed for majors in the computing-disciplines who are seeking work experience in a related area. This intern experience will enable the student to apply her/his educational background in their field to a real work place. The internship will provide the student with the valuable experience that should enhance the student's job opportunities upon graduation. Prerequisite: Students should have completed 64 credits with a good QPA plus have sufficient background to meet the needs of the particular internship in which they will be participating. Variable credits (1-15) depending on the length of the internship and the number of hours devoted to the internship.

CSC420 - Artificial Intelligence

This course offers a selective survey of key concepts and applications of artificial intelligence and an introduction to a language commonly used for building AI systems. Prerequisite: CSC 328 with a C- or better. (3 crs.)

CSC424 - Numerical Analysis

In this course, various mathematical algorithms and applications relating to the numerical computation are investigated. Topics include: roundoff errors and computer arithmetic; numerical instability; error analysis and estimation; approximation; Gaussian elimination and pivoting strategies for linear systems; numerical integration and numerical solution of differential equations; curve fitting, polynomial approximation; and regression. Prerequisite: CSC 260, MAT 282, and MAT 341 (3 crs.)

CSC455 - Structures of Programming Languages

Students will study the four categories of programming languages: imperative, object-oriented, functional and logic. An in-depth discussion of the imperative languages will be followed by discussions of the other three paradigms. Students will be required to investigate at least one language. Prerequisite: CSC 328 with C- or better and a minimum of 6 additional credits in programming languages. (3 crs.)

CSC460 - Language Translation

This course studies the design and construction of compilers. Lexical analysis, syntactic analysis and code generation are investigated in detail. Language design, interpreters, semantic analysis, intermediate code generation and code optimization are also considered. Co-requisite: CSC 475 with C- or better. (3 crs.)

CSC475 - Theory of Languages

This course is an introduction to abstract machine theory, combinatorial systems, computable functions and formal linguistics. Topics include finite-state machines, regular sets, Turing machines, Chomsky hierarchy grammars and languages. Emphasis is on surveying basic topics and developing an intuitive understanding in the theory of languages. Prerequisite: CSC 216 with C- or better and CSC 328 with C- or better. (3 crs.)

CSC485 - Special Topics in Computer Science

This course allows current topics in computer science to be offered in a timely fashion. Topics are not covered in other courses and will not be regularly offered as a special topic. The course topic depends on current trends in computer science and the interests of the students and the instructor. This course may be repeated if a different topic is offered. Prerequisite: Permission of instructor. (3 crs.)

CSC490 - Senior Project I

This course introduces students to software engineering. They will study its history, terminology, requirements, specifications and design. The students will write requirements, specifications and design documents and one or more papers on software engineering topics. Prerequisite: CSC 265 with C- or better and ENG 217 with C- or better. (3 crs.)

CSC492 - Senior Project II

This course is a continuation of the Senior Project I: Software Engineering course and the capstone course of the program. The project proposal developed and designed in the first Senior Project class will be implemented in this course. The student will produce a project users’ manual and will demonstrate proficiency in the academic program through the development of the project. Prerequisite: CSC 490 or CET 490 Senior Project I: Software Engineering with C or better. (3 crs.)