Computer Science
College of Natural and Behavioral
and Sciences
Department of Computer Science
Mohsen Beheshti , Department Chair
Jianchao (Jack) Han, Kazimierz Kowalski, Marek Suchenek, Richard Wasinowski
Adjunct Faculty
(Northrop Grumman)
Mohammad Anwar, Peter Blankenship, Darryn Hall, Robert Manning, Sami Siddiqui
Emeriti Faculty
William B. Jones
Staff
Yolanda Jones, Administrative Support Assistant
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. Telephone: (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 461. Computer Graphics I (3)
CSC 463. Computer Graphics II (3) [I]
CSC 471. Compiler Construction (3)
CSC 490. Senior Seminar (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 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 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)
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 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 461. Computer Graphics I (3)
CSC 463. Computer Graphics II (3) [I]
CSC 471. Compiler Construction (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.
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 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 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 Selected 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.
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.