Computer Science

College of Natural and Behavioral and Sciences

Department of Computer Science

Bachelor of Science

Minor

Certificate

Master of Science

Faculty

Mohsen Beheshti, Department Chair

Antonia Boadi, Jianchao (Jack) Han, Kazimierz Kowalski, Marek Suchenek, Richard Wasinowski

Adjunct Faculty (Northrop Grumman)

Peter Blankenship, Darryn Hall, Robert Manning, Faisal Saeed, Sami Siddiqui

Emeriti Faculty

William B. Jones

Staff

Ken Leyba, IT Consultant

Department Office: NSM A-132, (310) 243-3398
http://csc.csudh.edu

Program Description

The modern electronic digital computer has become the indispensable tool of government, commerce and technology because of its enormous appetite for data and its near instantaneous processing speed. Computer Science is the discipline of designing methods for solving problems by means of such computers. The subject involves a surprising amalgam of logic, mathematics, engineering, electronics, communications and ergonomics.

The curriculum is designed to provide preparation for professional careers in the areas of software design and applied computer science, as well as to give the necessary theoretical background for graduate study in the field and to allow a flexible response to a dynamic and growing profession. The required courses give students a firm foundation in the basic areas of computer science and related areas of mathematics, and a wide choice of electives allow them to tailor their program to their specific interests.

The baccalaureate program (Bachelor of Science in Computer Science) is accredited by the Computer Science Accreditation Commission of the Accreditation Board for Engineering and Technology, 111 Market Place, Suite 1050, Baltimore, MD 21202-4012, (410) 347-7700. The programs accredited by the Commission of Accreditation Board for Engineering and Technology are accredited as separate and distinct from any other programs or kinds of accreditation.

Features

The University’s location in the South Bay area of greater Los Angeles provides direct access to many major government contractors, manufacturers, and international centers of commerce and finance. This provides excellent opportunities for work-study and early job placement.

Our highly qualified full-time faculty are supplemented by talented and dedicated part-time faculty drawn from local firms and schools. Good teaching and easy on-campus access to professional quality computing systems enhances a degree program that provides both a solid core curriculum and a broad range of electives.

All courses are offered alternatively day and evening so that students may complete their programs by enrolling at either time exclusively.

Graduation with Honors

An undergraduate student may be a candidate for graduation with Honors in Computer Science provided he or she meets the following criteria:

1.   A minimum of 36 units in residence at CSU Dominguez Hills at least 24 of which taken in Computer Science major;

2.   A minimum GPA of 3.5 in all upper division courses in the Computer Science major completed in residence at CSUDH;

3.   Recommendation by Computer Science faculty.

Students who achieve Honors in Computer Science will have the information recorded on their transcripts and diplomas.

Academic Advisement

Faculty guidance in the development of career goals and program planning to achieve those goals is available to all majors.

Preparation

Students entering the computer science program should have completed high school mathematics through trigonometry. Remediation is available but will delay the student’s progress towards a Computer Science Degree.

This is a demanding program that places a premium on the student’s initiative and effort.

Career Possibilities

Entry level positions in the areas of systems analysis, systems programming, applications programming, data engineering, data communications and software engineering provide typical career opportunities for computer science graduates. Such positions are available in a wide variety of software vendors, aerospace and defense related industries, manufacturing and commercial firms, and government and other public agencies. Many graduates have also gone on to graduate school. Job opportunities for computer science graduates continue to be excellent because of the continued long-term growth of the computer industry.

Student Organizations

Student Chapter of the Association for Computing Machinery. Contact departmental office for membership information, or visit ACM’s home page at http://csc.csudh.edu/acm.

 

Bachelor of Science in Computer Science

Total Course Requirements for the Bachelor’s Degree

See the “Requirements for the Bachelor’s Degree” in the University Catalog for complete details on general degree requirements. A minimum of 40 units, including those required for the major, must be upper division.

Elective Requirements

Completion of elective courses (beyond the requirements listed below) to reach a total of a minimum of 120.

General Education Requirements (55-62 units)

See the “General Education” requirements in the University Catalog or the Class Schedule for the most current information on General Education requirements and course offerings.

Graduation Writing Assessment Requirement

See the “Graduation Writing Assessment Requirement” in the University Catalog.

Minor Requirements

Single field major, no minor required.

Major Requirements (76 units)

Students entering the Computer Science program must complete the following.

1.   Earn an overall grade point average of 2.0 or better in courses taken outside of the department.

2.   Earn a grade of “C” or better in each course taken within the department.

3.   Earn a grade of “C” or better in all direct and indirect prerequisite courses listed in the catalog before advancing to the next level course in a sequence for English, Mathematics, and Science courses.

4.   Students must take capstone course CSC 492 at CSUDH.

The following courses, or their approved transfer equivalents, are required of all candidates for this degree.

 

A.   Lower Division Requirements (40 units)

CSC 121.   Introduction to Computer Science and Programming I (4)

CSC 123.   Introduction to Computer Science and Programming II (4)

CSC 221.   Assembly Language and Introduction to Computer Organization (3)

CSC 2xx.    Lower Division Computer Science Elective (3)

MAT 191.  Calculus I (5)

MAT 193.  Calculus II (5)

MAT 271.  Foundations of Higher Mathematics (3)

MAT 281.  Discrete Mathematics (3)

PHY 130.   General Physics I (5)

PHY 132.   General Physics II (5)

B.   Upper Division Requirements (36 units)

      A minimum of 18 upper division units in the major must
be taken in residence at CSU Dominguez Hills.

1.   Core Requirements (12 units)

CSC 311.      Data Structures (3)

CSC 321.      Programming Languages (3)

CSC 331.      Computer Organization (3)

CSC 341.      Operating Systems (3)

2.   Required Courses (18 units)

CSC 301.      Computer and Society (3)

CSC 401.      Analysis of Algorithms (3)

CSC 481.      Software Engineering (3)

CSC 492.      Senior Project (3)

MAT 321.    Probability and Statistics (3)

MAT 361.    Finite Automata (3)

3.   Electives: Select two courses from the following (6 units):

CSC 395.      Special Topics (3)

CSC 411.      Artificial Intelligence (3)

CSC 421.      Advanced Programming Languages (3) [I]

CSC 431.      Advanced Computer Organization (3)

CSC 441.      Advanced Operating Systems (3) [I]

CSC 451.      Computer Networks (3)

CSC 453.      Data Management (3)

CSC 455.      World Wide Web Design and Management (3)

CSC 459.      Security Engineering (3)

CSC 461.      Computer Graphics I (3)

CSC 463.      Computer Graphics II (3) [I]

CSC 471.      Compiler Construction (3)

CSC 490.      Senior Seminar (3)

CSC 495.      Special Topics (3)

MAT 367.    Numerical Analysis I (3)

MAT 369.    Numerical Analysis II (3) [I]

 

Minor in
Computer Science (36 units)

A.   Lower Division Required Courses (27 units)

CSC 121.   Introduction to Computer Science and Programming I (4)

CSC 123.   Introduction to Computer Science and Programming II (4)

CSC 221.   Assembly Language and Introduction to Computer Organization (3)

MAT 191.  Calculus I (5)

MAT 193.  Calculus II (5)

MAT 271.  Foundations of Higher Mathematics (3)

MAT 281.  Discrete Mathematics (3)

B.   Upper Division Requirements (9 units)

1.   Required Course (3 units)

CSC 311.      Data Structures (3)

2.   Electives: Select two courses from the following, one
of which must have a CSC prefix (6 units):

CSC 321.      Programming Languages (3)

CSC 331.      Computer Organization (3)

CSC 341.      Operating Systems (3)

CSC 395.      Special Topics (3)

CSC 401.      Analysis of Algorithms (3)

CSC 411.      Artificial Intelligence (3)

CSC 421.      Advanced Programming Languages (3) [I]

CSC 431.      Advanced Computer Organization (3)

CSC 441.      Advanced Operating Systems (3) [I]

CSC 451.      Computer Networks (3)

CSC 453.      Data Management (3)

CSC 455.      World Wide Web Design and Management (3)

CSC 459.      Security Engineering (3)

CSC 461.      Computer Graphics I (3)

CSC 463.      Computer Graphics II (3) [I]

CSC 471.      Compiler Construction (3)

CSC 490.      Senior Seminar (3)

CSC 492.      Senior Design (3)

CSC 495.      Special Topics (3)

MAT 361.    Finite Automata (3)

MAT 367.    Numerical Analysis I (3)

MAT 369.    Numerical Analysis II (3) [I]

CIS 372.       System Development I (3)

CIS 374.       System Development II (3)

CIS 473.       Data Base Systems (3)

CIS 475.       Data Communications (3)

 

Certificate in Computer Science (18 units)*

A.   Upper Division Requirements (18 units)

1.   Required Courses (9 units)

CSC 311.      Data Structures (3)

CSC 321.      Programming Languages (3)

CSC 331.      Computer Organization (3)

2.   Electives: Select three courses from the following (9 units):

CSC 337.      Microcomputers (3) [I]

CSC 341.      Operating Systems (3)

CSC 353.      File Processing (3) [I]

CSC 361.      Systems Programming (3) [I]

CSC 395.      Special Topics (3)

CSC 401.      Analysis of Algorithms (3)

CSC 411.      Artificial Intelligence (3)

CSC 421.      Advanced Programming Languages (3) [I]

CSC 431.      Advanced Computer Organization (3)

CSC 441.      Advanced Operating Systems (3) [I]

CSC 451.      Computer Networks (3)

CSC 453.      Data Management (3)

CSC 455.      World Wide Web Design and Management (3)

CSC 459.      Security Engineering (3)

CSC 461.      Computer Graphics I (3)

CSC 463.      Computer Graphics II (3) [I]

CSC 471.      Compiler Construction (3)

CSC 490.      Senior Seminar (3)

CSC 492.      Senior Design (3)

CSC 495.      Special Topics (3)

MAT 361.    Finite Automata (3)

MAT 367.    Numerical Analysis I (3)

MAT 369.    Numerical Analysis II (3) [I]

*NOTES:

         1. Adequate preparation in terms of the completion of all lower division courses which are prerequisites of courses for this certificate is necessary.

         2. At least four of the six upper division courses must be taken at CSU Dominguez Hills.

         3. None of the upper division courses may be taken as credit/no credit.

         4. A minimum grade point average of 2.0 is required for all units taken for the certificate.

 

Master of Science in Computer Science (36 units)

The Master’s Program in Computer Science is a two-year program in which a student must complete a required core of courses and additional concentration and general computer science elective courses. The curriculum for the Master of Science in Computer Science requires 36 semester credit units, and offers both a thesis option (30 semester credit units of coursework and 6 semester units of a thesis) and a non-thesis option (33 semester credit units of coursework and 3 semester credit units of a project). Students may choose to obtain the degree in either a General Computer Science discipline or with specialization in Software Engineering or Distributed Systems and Networking.

The academic program is expected to culminate in a master’s thesis or project. During the first semester of the program, the student should choose a major advisor who will assist him or her in the choice of elective courses. The major advisor will chair the student’s advisory committee for the thesis. Two additional members of the students graduate advisory committee will need to be selected.

The graduate program can provide a strong background for future study in a doctoral program. It also provides graduate training as preparation for professional applications. Students with a master’s degree in computer science are also prepared for a career in teaching and/or research.

A majority of graduate classes are scheduled to accommodate late afternoon and evening students.

Admission Requirements

Students holding a Bachelor’s degree in Computer Science are accepted as graduate students, provided they meet the general requirements stated below.

Applicants NOT holding a degree in Computer Science are also accepted as graduate students, provided they meet the general requirements and successfully complete the leveling courses described below.

General requirements for graduate study in Computer Science are as follows:

H    An undergraduate degree from an accredited higher education institution.

H    A minimum GPA of 2.75 on a 4.0 scale.

H    A minimum TOEFL score of 550 (for applicants whose native language is not English).

H    A minimum GRE General Test score of 900 (combined verbal and quantitative).

A student with a Bachelor of Science in Computer Science, with a GPA greater than 2.44 but less than 2.75 and/or GRE scores above 700 but less than 900, may first receive conditionally classified admission to the MS degree program. A conditionally classified student has one year to receive a minimum GRE score of 900 and a minimum GPA of 3.0 to change status to classified graduate student.

A student with a Bachelor’s degree in a discipline other than Computer Science must possess a computer science background equivalent to the following CSUDH courses:

H    CSC 123      Computer Science II

H    CSC 331      Computer Organization

H    CSC 311      Data Structures

H    MAT 281    Discrete Mathematics

H    MAT 193    Calculus II

H    MAT 361    Finite Automata

A student without this background must enroll in these leveling courses before being accepted as a regular student in the graduate Computer Science program. Successful completion in these courses means a grade of C or better in each leveling course.

Students entering the master’s program must maintain a grade of no less than B in any course for their continuation in this program. Final decision on admission to the graduate program is made by the Computer Science Graduate Committee.

Admission Procedures

Prospective graduate students must:

1.   Submit an application to the University for admission (or readmission) with graduate standing, and official transcripts of all previous college work following the procedures outlined in the Admissions section of the University Catalog.

2.   Submit to the Computer Science Graduate Program Coordinator:

a.   a second set of official transcripts;

b.   a letter to the department describing interests, goals and expectations in pursuing the master’s degree in computer science;

c.   three letters of recommendation sent directly from individuals who can evaluate potential for graduate study;

d.   verification of a minimum GRE General Test score of 900 (combined verbal and quantitative) before the student has completed 9 semester units.

Graduate Standing: Conditionally Classified

To qualify for admission with a graduate degree objective, students must meet the admission requirements for post-baccalaureate standing as well as any additional requirements of the particular program. Students who apply to a graduate degree program but who do not satisfy all program requirements may be admitted to conditionally classified status. Program coordinators will outline all conditions for attainment of classified status.

Graduate Standing: Classified

Students applying for master’s degree programs will be admitted in classified status if they meet all program admission requirements.

Classified standing as a graduate student is granted by the academic unit to which the student is applying. Classified standing is normally granted when all prerequisites have been satisfactorily completed for admission to a master’s degree program. Students must have classified standing to qualify for Advancement to Candidacy.

Graduation Writing Assessment Requirement

All graduate students entering the University in the Fall of 1983 or thereafter are required to satisfy the Graduation Writing Assessment Requirement (GWAR) in accordance with the established policies of the university. Students must satisfy the requirements before being Advanced to Candidacy. (See “Graduation Writing Assessment Requirement” section of the University Catalog.

 

Advancement to Candidacy

Advancement to candidacy recognizes that the student has demonstrated the ability to sustain a level of scholarly competency commensurate with successful completion of degree requirements. Upon advancement to candidacy, the student is cleared for the final stages of the graduate program which, in addition to any remaining course work, will include the thesis or project.

Following are the requirements for Advancement to Candidacy:

1.   A minimum of 15 resident units;

2.   Classified standing;

3.   An approved Program of Study;

4.   Successful completion of GWAR;

5.   A cumulative GPA of 3.0 in all courses taken as a graduate student;

6. No grade lower than a “B” in the degree program.

Advancement to Candidacy must be certified on the appropriate form to the Graduate Dean by the department prior to the final semester, prior to enrolling in the thesis or project.

 

Degree Requirements (36 units)

Thesis Option

1.   30 semester units of graduate coursework.

      a. Required graduate core courses (15 units)

      b.  Elective graduate courses (15 units)

2.   Master’s Thesis (6 units)

Non-Thesis Option

1.   33 semester units of graduate coursework.

      a. Required graduate core courses (15 units)

      b. Elective graduate courses (18 units)

2.   Master’s Project (3 units)

Students may choose to obtain the degree specializing in either Software Engineering (SE) or in Distributed Systems and Networking (DSN) tracks.

A.   Core Courses (15 units)

CSC 500.   Research Methods (3)

CSC 501.   Design and Analysis of Algorithms (3)

CSC 521.   Fundamentals and Concepts of Programming Languages (3)

CSC 581.   Advanced Software Engineering (3)

CSC 584.   Software Project Planning (3)

 

B.   Concentration (12 units)

1.   Software Engineering (SE) Track:

CSC 541.      Advanced Operating Systems (3)

CSD 546.     Human Computer Interaction and Interface Design (3)

CSC 582.      Object-Oriented Analysis and Design Methodology (3)

CSC 583.      Software Engineering Processes (3)

CSC 585.      Advanced Software Quality Assurance (3)

2.   Distributed Systems Networking (DSN) Track:

CSC 531.      Advanced Computer Architecture (3)

CSC 541.      Advanced Operating Systems (3)

CSC 551.      Data Communications and Computer Networks (3)

CSC 552.      Distributed Computing and Parallel Processing (3)

CSC 555.      Information Assurance and Network Security (3)

C.  Electives (3-18 units)

CSC 511.      Artificial Intelligence and Expert Systems (3)

CSC 531.      Advanced Computer Architectures (3)

CSC 541.      Advanced Operating Systems (3)

CSC 546.      Human Computer Interaction (3)

CSC 553.      Advanced Database Management Systems (3)

CSC 551.      Data Communications and Computer Networks (3)

CSC 552.      Distributed Computing and Parallel Processing (3)

CSC 555.      Information Assurance and Network Security (3)

CSC 561.      Advanced Computer Graphics (3)

CSC 564.      Numerical Analysis (3)

CSC 565.      Theory of Computation (3)

CSC 582.      Object-Oriented Analysis and Design Methodology (3)

CSC 583.      Software Engineering Processes (3)

CSC 585.      Advanced Software Quality Assurance (3)

CSC 594.      Independent Study (3)

CSC 595.      Special Topics in Computer Science (3)

NOTES:

         1. General Computer Science:

              a. Thesis Option: select 5 courses (15 units) from the list of elective courses;

              b. Non-Thesis Option: select 6 courses (18 units) from the list of elective courses.

         2. Software Engineering or Distributed Systems Networking tracks:

              a. No double counting of electives;

              b. Thesis Option: select 1 course (3 units) from the list of elective courses;

              c. Non-Thesis Option: select 2 courses (6 units) from the list of elective courses

D.  Capstone (3-6 units)

1.   Thesis Option (6 units)

CSC 599.      Master’s Thesis (3-6 units) or

2.   Non-Thesis Option (3 units)

CSC 590.      Master’s Project (3 units)

Course Offerings

Course syllabi and outlines may be found on departmental Web home pages at http://csc.csudh.edu.

The credit value for each course in semester units is indicated for each term by a number in parentheses following the title. For course availability, please see the list of tentative course offerings in the current Class Schedule.

If prerequisites are required then they need to be passed with a grade of “C” or better.

 

Lower Division

CSC 101    Introduction to Computer Education (3).

A computer literacy course designed to familiarize the learner with a variety of computer tools and computer concepts with emphasis on utilizing packaged programs. This course provides an introduction to the use of computers, common software programs and peripherals. Students are instructed in the use of a word processor, drawing programs, spreadsheet, database, presentation tools, internet applications and statistical package in scientific applications.

CSC 111    Introduction to Computers and Basic Programming (3).

Introduction to computer programming with particular emphasis on small systems through programming in the BASIC language.

CSC 115    Introduction to Programming Concepts (3).

Introduces students to computer programming by teaching techniques of problem solving. Students will become acquainted with decision constructs, looping structures, and subroutine modules. Students will learn the vocabulary of object-oriented programming.

CSC 116    Introduction to Computer Hardware and Tools (3).

Introduction to microcomputer hardware and operating systems. Students will be required to use application software to research, generate and prepare a semester project.

CSC 121    Introduction to Computer Science and Programming I (4).

Prerequisite: CSC 115 or equivalent and MAT 153.

Organization of sequential, digital machine: CPU, I/O, storage, communications devices. Function of operating systems: translators, editors, peripheral control utilities. The development, description and analysis of elementary algorithms. Three hours of lecture and two hours of activity per week.

CSC 123    Introduction to Computer Science and Programming II (4).

Prerequisites: CSC 121.

Continuation of CSC 121. Fundamental programming concepts using arrays, records, pointers, linked list, trees and recursion. Good style, documentation and structure will be emphasized. Introduction to analysis of algorithms for efficiency and correctness.

CSC 195    Selected Topics in Computer Science (1-4).

Prerequisite: Consent of Instructor.

Content varies. Topics in computer science not covered by current course offerings.

CSC 221    Assembly Language and Introduction to Computer Organization (3).

Prerequisite: CSC 123.

Programming problems in assembly language. Writing and using macros. Features of modern computer hardware and operating systems.

CSC 251    C Language Programming and UNIX (3).

Prerequisite: CSC 123 or equivalent.

Introduction to programming in the C language and its use in systems programming in the UNIX operating system.

CSC 255    Dynamic Web Programming (3).

Prerequisite: CSC 121 or Consent of Instructor.

The goal of the course is to provide introduction to the design and implementation of dynamic web applications.  Topics include origins of Internet, TCP/IP basics, Standard Generalized markup language SGML, XML and XSL languages, client-side and server-side languages: Perl and PHP, interactivity in website design, front-end interface to databases, website access control, confidentiality, integrity, accessibility and their applicability in developing dynamic and distributed client/server web applications.

CSC 295    Selected Topics in Computer Science (1-4)

Prerequisite: Consent of Instructor.

Content varies. Topics in computer science not covered by current course offerings. May be used for elective credit in departmental programs. Subject to approval.

Upper Division

CSC 301    Computers and Society (3).

Prerequisites: CSC 121 or CSC 111 or CIS 270 are required; ECO 200 and ANT 100 are recommended.

Ethical, legal, psychological, economic, and theoretical implications and limitations of the uses of digital computers. Oral and written presentations required.

CSC 311    Data Structures (3).

Prerequisites: CSC 123, MAT 193 and MAT 281.

More advanced and detailed treatment of concepts of data organization introduced in CSC 123. Includes lists, trees, graphs and storage allocation and collection. Applications to such areas as symbol tables, string search and optimization.

CSC 321    Programming Languages (3).

Prerequisite: CSC 123.

A comparative study of programming languages. Characteristics of languages and formal description of languages. Assignments in several languages.

CSC 331    Computer Organization (3).

Prerequisites: CSC 221 and MAT 281.

Structure of the modern digital computer. Introduction to Boolean algebra and design of digital circuits. Arithmetic, control, storage and input/output systems.

CSC 341    Operating Systems (3).

Prerequisites: CSC 311, CSC 331, and MAT 321.

Overall structure of batch and time-shared operating systems. Scheduling of jobs, CPU and I/O devices. Paged and segmented memory management. I/O programming and file handling. Synchronization of concurrent processes.

CSC 395    Selected Topics in Computer Science (1-4).

Prerequisite: Consent of Instructor and upper division standing in major.

Content varies. Advanced topics in computer science not covered by current course offerings. May be used for elective credit in departmental programs. Subject to approval.

CSC 401    Analysis of Algorithms (3).

Prerequisite: CSC 311.

Mathematical study of non-numeric computer algorithms. Topics include combinatorial techniques, algorithm proof, and program complexity.

CSC 411    Artificial Intelligence (3).

Prerequisites: CSC 311 and CSC 321.

Introduction to the use of computers to simulate intelligent behavior; includes game playing, problem solving, use of natural languages and pattern recognition.

CSC 431    Advanced Computer Organization (3).

Prerequisites: CSC 221, CSC 331, CSC 341, MAT 271, and MAT 281.

Alternate computer architectures and features of large scale systems. Microprogramming, parallel processing, memory organization, input/output systems, interprocessor communications and multiprocessing.

CSC 451    Computer Networks (3).

Prerequisite: CSC 341.

An introduction to computer networks including both long haul and local area networks. Topics include network topology, network access methodology, transmission media, protocols and applications.

CSC 453    Data Management (3).

Prerequisite: CSC 311.

Fundamental concepts in design, analysis and implementation of computerized database systems. Database models, user and program interfaces and database control.

CSC 455    World Wide Web Design and Management (3).

Prerequisites: CSC 251, CSC 311 and CSC 321.

An introduction to the design, implementation and management of World Wide Web over the Internet and Intranet networks. Topics include Internet overview, web authoring, web programming, server setting and maintenance.

CSC 459    Security Engineering (3).

Prerequisites: CSC 311 or consent of Instructor.

The goal of the course is to provide introduction to the design, implementation and management of systems that remain dependable in the face of malice, error or mischance.  Topics include the tools, processes and methods needed to design, implement and test complete systems, and to adapt existing systems as their environment evolves.  Specifically it includes cryptography, privacy, hardware tamper-resistance, firewalls, intrusion detection and prevention, and security policies.

CSC 461    Computer Graphics I (3).

Prerequisite: CSC 311.

Fundamental concepts of programming for computer graphics. Graphics devices, languages and algorithms. Substantial graphics programming projects.

CSC 471    Compiler Construction (3).

Prerequisites: CSC 221, CSC 311 and MAT 361.

Introduction to the theory and practice of compiler construction. Overall structure of compilers. Lexical and syntactic analysis, code generation for block structured languages and code optimization.

CSC 481    Software Engineering (3).

Prerequisites: CSC 311, CSC 321 and CSC 353 are required; CSC 341 and CSC 453 are recommended.

Introduction to software engineering, with emphasis on software design and specification. Oral and written presentations required.

CSC 490    Senior Seminar (3).

Prerequisite: CSC 311, CSC 321, and CSC 331.

Intense, structured seminar. Exposure to current areas of research in Computer Science. Students will attend department colloquia; conduct research; present individual and group projects; and, prepare a written proposal for a senior project.

CSC 492    Senior Design (3).

Prerequisites: CSC 301 and CSC 490.

Intensive study under the guidance of a member of the Computer Science faculty which continues and expands the research carried out in Senior Seminar. Students will study system design and total project planning and management. A formal written report and oral presentation are required.

CSC 495    Special Topics (3).

Prerequisite: CSC CORE.

Content varies. Advanced topics in computer science not covered by current course offerings. May be used for elective credit in departmental programs. Subject to approval.

CSC 497    Directed Study in Computer Science (1-3).

Prerequisite: CSC CORE or consent of instructor.

A project in computer science carried out on an independent study basis. Repeatable course.

Graduate

Graduate standing in the Computer Science program is prerequisite to enrollment in graduate (500) level courses.

 

CSC 500    Research Methods and Graduate Seminar (3).

Prerequisite: Graduate standing and consent of instructor.

Series of lectures given by faculty and visiting computer scientists.

CSC 501    Design and
Analysis of Algorithms (3).

Prerequisite: CSC 401.

Methods for the design of efficient algorithms: divide and conquer, greedy method, dynamic programming, backtracking, brand and bound, problem in string matching, polynomials and matrices, graph theory, NP-problems.

CSC 511    Artificial Intelligence and Expert Systems (3).

Prerequisite: CSC 411.

Introduction to in-depth engineering approach to the field of artificial neural networks. Topics include different types of network architectures and applications, and their properties and behavior.

CSC 521    Fundamentals and Concepts of Programming Languages (3).

Prerequisite: CSC 321.

Study of the principles that form the basis of programming language design. Research topics in high-level languages including : data abstraction, parameterization, scooping, generics, exception handling, parallelism and concurrency; alternative language designs; imperative, functional, descriptive, object-oriented and data flow; overview of interface with support environments.

CSC 531    Advanced Computer Architecture (3).

Prerequisite: CSC 331.

Covering new technological developments, including details of multiprocessor systems and specialized machines. The main focus is on the quantitative analysis and cost-performance tradeoffs in instruction-set, pipeline, and memory design. Description of real systems and performance data are also presented. Topics covered: quantitative performance measures, instruction set design, pipeline, vector processing, memory organization, input/output, and an introduction to parallel processing.

CSC 541    Advanced Operating Systems (3).

Prerequisite: CSC 341.

Theoretical and practical aspects of operating systems: overview of system software, time-sharing and multiprogramming operating systems, network operating systems and the Internet, virtual memory management, inter-process communication and synchronization, file organization, and case studies. Giving advanced topics and examples, and simulation techniques used in performance evaluation.

CSC 546    Human Computer Interaction and Interface Design (3).

Prerequisite: CSC 481.

Research-oriented course; in-depth analyses of selected current topics with emphasis on problems related to computer systems, artificial intelligence, and human computer information interaction and interface design.

CSC 551    Data Communications and Computer Networks (3).

Prerequisite: CSC 451.

Topics related to the development of client-server based application, including two-tiers and multi-tiers Client-Server concepts and programming. Concurrency issues in the design of client and server programs. Trade-off of different architectures and usage of remote procedure calls. Broadcasting and multicasting.

CSC 552    Distributed Computing and Parallel Processing (3).

Prerequisites: CSC 451, CSC 401.

Comprehensive introduction to the field of parallel and distributed computing systems: Algorithms, architectures, networks, systems, theory and applications. The distributed parallel computation models, design and analysis of parallel algorithms will be discussed.

CSC 553 Advanced Database Management Systems (3).

Prerequisite: CSC 453.

Provides an in-depth treatment of one or more advanced topics in the management of information systems. The field of information systems consists of three major components: information systems technology, information systems development and information systems management. Deals with the latter area. Because of the many advances in information technology and the corresponding development techniques, new business opportunities are constantly emerging and with them the need to manage these applications effectively. Explores these new application areas and the management approaches needed to make them successful.

CSC 555    Information Assurance and Network Security (3).

Prerequisites: CSC 451, CSC 401 and/or consent of instructor.

Topics related to communications and IT infrastructures, their vulnerabilities as well as the size and complexity of security threats faced by enterprises, development of security practices, policies, awareness and compliance programs, and legal and regulatory issues will be examined. Fundamental encryption algorithms and systems supported in today’s IT and secure communications networks Virtual Private Networks, Tunneling, Secure Socket Layer, SSH, and PGP will also be examined.

CSC 561    Advanced Computer Graphics (3).

Prerequisite: CSC 461.

Solid modeling Euler operators, finite element methods. Rendering: filling, shading, ray tracing. Natural modeling: L-systems, fractals. Image processing: filtering anti-aliasing, enhancement. Color: physics, graphics, physiology.

CSC 564    Numerical Analysis (3).

Prerequisite: MAT 361.

Topics include numerical solution of partial differential equations by finite difference and finite element algorithms. Focus on direct and iterative methods for solving large, sparse linear systems and related eigenvalue and vector problems. Emphasis is placed on robust mathematical software and its interaction with computer hardware and languages.

CSC 565    Theory of Computation (3).

Prerequisites: CSC 401and MAT361.

Models of computation, complexity theory, intractable problems, complete problems, recursive function theory, incompleteness, formal theory of program semantics and correctness, logics of programs.

CSC 581    Advanced Software Engineering (3).

Prerequisite: CSC 481.

This course focuses on defining software requirements and provides an overview of advanced analysis and design techniques that can be used to structure applications. Topics of software requirements include interacting with end-users to determine needs and expectations, identifying functional requirements and identifying performance requirements. Analysis techniques include prototyping, modeling and simulation. Design topics include design in the system lifecycle, hardware vs. software trade-offs, subsystem definition and design, abstraction, information hiding, modularity and reuse.

CSC 582    Object-Oriented Analysis and Design Methodology (3).

Prerequisite: CSC 481.

Object-oriented analysis and design is essential in developing high-quality object-oriented systems. Topics will include object-oriented classes, attributes, methods and relations to other classes, objects, classifications and inheritance, encapsulation, polymorphism, object-oriented analysis, design and programming.

CSC 583    Software Engineering Processes (3).

Prerequisite: CSC 581.

The course focuses on the engineering of complex systems that have a strong software component. Topics include deriving and allocating requirements, system and software architectures, system analysis and design, integration, interface management, configuration management, quality, verification and validation, reliability, and risk.

CSC 584    Software Project Planning and Management (3).

Prerequisite: CSC 581.

The main topics of this course address the successful management of a software development project. This includes planning, scheduling, tracking, cost and size estimating, risk management, quality engineering, and process improvement. The course is centered on the concept of a software engineering process and includes discussion of life cycle models for software development.

CSC 585    Advanced Software Quality Assurance (3).

Prerequisite: CSC 581.

The relationship of software testing to quality is examined with an emphasis on testing techniques and the role of testing in the validation of system requirements. Topics include module and unit testing, integration, code inspection, peer reviews, verification and validation, statistical testing methods, preventing and detecting errors, selecting and implementing project metrics and defining test plans and strategies that map to system requirements. Testing principles, formal models of testing, performance monitoring and measurement also are examined.

CSC 590    Master’s Project (3).

Prerequisite: Graduate standing and consent of the graduate adviser.

Offered on the letter-grade basis only. The equivalent of three lecture hours a week.

CSC 594    Independent Study (1-3).

Prerequisites: Graduate standing and consent of instructor.

Individual studies in advanced computer science and technology.

CSC 595    Special Topics in Computer Science (3).

Prerequisite: Graduate standing and consent of instructor.

Exposes students to new and emerging concepts and technologies

CSC 599    Master’s Thesis (3-6).

Prerequisite: Graduate standing and consent of the graduate adviser.

Offered on the letter-grade basis only. The equivalent of three lecture hours a week.

CSC 600    Graduate Continuation Course (0).

Prerequisite: Signature of graduate program coordinator required.

Graduate students, who have completed their course work but not their thesis, project, or comprehensive examination, or who have other requirements remaining for the completion for their degree, may attain continuous enrollment by enrolling in this course.

Infrequently Offered Courses

The following courses are scheduled on a “demand” basis. Students should consult the department office for information about the next schedule offering.

CSC 337    Microcomputers (3).

Prerequisite: CSC 221, CSC 331, and MAT 281.

The architecture, programming and interfacing of microcomputers. Topics include input/output, instruction sets, subroutines, interrupts and control. In-class use of microcomputer hardware. Repeatable course. Two hours of lecture and three hours of laboratory per week.

CSC 353    File Processing (3).

Prerequisite: CSC 123 and CSC 251 are required; CSC 311 is recommended.

Characteristics of secondary storage media. Logical vs. physical organization. Sequential, direct, and indexed access methods. Tree structure of indices; hashing.

CSC 361    Systems Programming (3).

Prerequisite: CSC 311, CSC 331, and CSC 341.

Design and construction of systems programs such as assemblers, macro processors and linking loaders. Introduction to software engineering.

CSC 421    Advanced Programming Languages (3).

Prerequisites: CSC CORE.

Continuation of CSC 321. Methods of formal specification of syntax and semantics of programming languages and special purpose language features for such areas as simulation and systems programming.

CSC 441    Advanced Operating Systems (3).

Prerequisite: CSC CORE.

Theoretical study of important topics
in operating system design.
Substantial individual and group programming projects.

CSC 463    Computer Graphics II (3).

Prerequisite: CSC 461.

Advanced topics in computer graphics. Interactive graphics, animation, color and three dimensional modeling.