SlideShare a Scribd company logo
SDSU General Catalog 2012-2013 201
CS
Computer Science
In the College of Sciences
OFFICE: Geology/Mathematics/Computer Science 413
TELEPHONE: 619-594-6191
http://www.cs.sdsu.edu
Faculty
Emeritus: Anantha, Baase-Mayers, Donald, Lane, Marovac, Vinge,
Vuskovic
Chair: Beck
Professors: Beck, Carroll, Stewart, Swiniarski, Tarokh
Associate Professors: Eckberg, Edwards, Roch, Valafar, Whitney, Xie
Lecturers: Bajic, Lewis, Riggins
Adjunct: Root, Thomas
Offered by the Department
Master of Science degree in computer science.
Major in computer science with the B.S. degree in applied arts and
sciences.
Minor in computer science.
Certificate in geographic information science.
Certificate in web and mobile applications development
(refer to the Graduate Bulletin).
The Major
Computer Science is the study of computers and their
applications. It is concerned with methods for storing and retrieving
information, with the design and use of languages for writing computer
programs, with the hardware systems that interpret such languages,
and with the theoretical principles that form the foundations of
computing. Computer Science includes a wide variety of specialties
and application areas such as artificial intelligence, robotics,
graphics, systems programming, simulation, and computer networks.
The Bachelor of Science in Computer Science is designed to
provide students with a fundamental understanding of modern
computing methodology and programming practices along with a
complementary knowledge of hardware. The first two years provide
the basic preparation in programming, data structures and architec-
ture. The final two years are devoted to more advanced fundamentals
and specialized electives.
Computers are used to store and manage information, to analyze
scientific data, and in a wide variety of other applications. Computing
technology is found in an almost limitless number of settings, ranging
from automobiles to household appliances to toys. Because of this, a
wide range of jobs are open to people trained in Computer Science.
Employment opportunities are expected to remain very strong.
Impacted Program
The computer science major is an impacted program. To be
admitted to the computer science major, students must meet the
following criteria:
a. Complete preparation for the major;
b. Complete a minimum of 60 transferable semester units;
c. Have a minimum cumulative GPA of 2.0.
To complete the major, students must fulfill the degree requirements
for the major described in the catalog in effect at the time they are
accepted into the premajor at SDSU (assuming continuous enrollment).
Major Academic Plans (MAPs)
Visit http://www.sdsu.edu/mymap for the recommended courses
needed to fulfill your major requirements. The MAPs Web site was
created to help students navigate the course requirements for their
majors and to identify which General Education course will also fulfill a
major preparation course requirement.
Computer Science Major
With the B.S. Degree in Applied Arts and Sciences
(Major Code: 07011) (SIMS Code: 773801)
All candidates for a degree in applied arts and sciences must
complete the graduation requirements listed in the section of this
catalog on “Graduation Requirements.”
A minor is not required for this major.
Preparation for the Major. Computer Science 107, 108, 237;
Mathematics 150, 151, 245, 254; Statistics 250; and 12 units of
science courses selected with approval of computer science adviser.
The science courses must include one of the following two-semester
sequences with laboratory: Physics 195, 195L, 196, 196L; or
Chemistry 200, 201; or Biology 203, 203L, 204, 204L. The remainder of
the12 units must be science courses or courses that enhance the
student’s ability to apply the scientific method. (38 units)
Graduation Writing Assessment Requirement. Passing the
Writing Placement Assessment with a score of 10 or completing one of
the approved upper division writing courses (W) with a grade of C
(2.0) or better. See “Graduation Requirements” section for a complete
listing of requirements.
Major. A minimum of 37 upper division units to include Computer
Science 310, 320, 370, 440, 490, 530, 560, 570; at least one course
selected from Mathematics 541, 579, Statistics 350A, 550, or 551A;
and 12 units of computer science electives selected with the approval
of a computer science major adviser. At least nine units of electives
must be in computer science.
Master Plan. A master plan of the courses taken to fulfill the major
must be approved by a major adviser and filed with the Office of
Advising and Evaluations.
Computer Science Minor
(SIMS Code: 773801)
The minor in computer science consists of a minimum of 18-23
units in computer science and mathematics to include Computer
Science 107, 108; and at least 12 upper division units, or at least nine
upper division units if the student completes a full calculus sequence,
i.e., Mathematics 121 and 122, or 150 and 151. The courses selected
are subject to the approval of the minor adviser.
Courses in the minor may not be counted toward the major, but
may be used to satisfy preparation for the major and general
education requirements, if applicable. A minimum of six upper division
units must be completed in residence at San Diego State University.
Geographic Information Science
Certificate*
(Certificate Code: 90032) (SIMS Code: 112949)
The purpose of the program is to prepare students to acquire,
manage, and visualize geospatial data in public and private organiza-
tions. Students must apply for admission to the program before the
completion of 12 certificate units and must complete the required units
with a 2.5 grade point average.
The certificate requires 27 units distributed between the depart-
ments of Computer Science and Geography as follows: 12-15 units
selected from Computer Science 107, 108, 220, 310, 320, 503, 514,
520, 535, 551, and 12-15 units selected from Geography 104, 381,
484, 581-589. Courses with relevant content (e.g. Computer Science
596 or Geography 596) may be substituted for the computer science
and geography courses with the approval of the certificate adviser.
Courses in the certificate may be counted toward the major in
computer science if applicable.
* Additional prerequisites required for this certificate.
Computer Science
202 SDSU General Catalog 2012-2013
Courses (CS)
Refer to Courses and Curricula and University Policies sections of
this catalog for explanation of the course numbering system, unit or
credit hour, prerequisites, and related information.
LOWER DIVISION COURSES
CS 100. Computational Thinking (3) [GE]
Prerequisite: Satisfaction of the Entry-Level Mathematics require-
ment.
Capabilities and applications of computers. Algorithmic problem-
solving methods and computer programming. Using computers to
examine questions from other fields of study. Practical and theoretical
limits to computation. Machine intelligence and heuristic problem
solving. Social and legal impact of computers.
CS 107. Introduction to Computer Programming (3)
Prerequisite: Satisfaction of the Entry-Level Mathematics require-
ment.
Programming methodology and problem solving. Basic concepts
of computer systems, algorithm design and development, data types,
program structures. Extensive programming in Java.
CS 108. Intermediate Computer Programming (3)
Prerequisite: Computer Science 107.
Further training in program design and development. Introduction
to data structures: stacks, queues, linear lists, trees, sets, and recur-
sion. Extensive programming in Java.
CS 205. Introduction to Computational Programming and
Visualization (3)
Prerequisite: First semester calculus (either Mathematics 120 or
121 or 150).
Problem solving skills for needs of science. Use of computing and
software tools of computational science introduced to gain compe-
tence in computer communications, programming and visualization.
Supervised computer laboratory.
CS 220. UNIX and the C Programming Language (3)
Prerequisite: Computer Science 108.
Introduction to the UNIX operating system: shell programming,
major system services and utilities. The C language: its features and
their significance in the UNIX programming environment.
CS 237. Machine Organization and Assembly Language (3)
Prerequisite: Computer Science 108.
General concepts of machine and assembly language, data repre-
sentation, looping and addressing techniques, arrays, subroutines,
macros. Extensive assembly language programming.
CS 296. Experimental Topics (1-4)
Selected topics. May be repeated with new content. See Class
Schedule for specific content. Limit of nine units of any combination of
296, 496, 596 courses applicable to a bachelor's degree.
CS 299. Special Study (1-3)
Prerequisite: Consent of instructor.
Individual study. Maximum credit six units.
UPPER DIVISION COURSES
(Intended for Undergraduates)
CS 301. Computers and Society (3) [GE]
Prerequisite: Completion of the General Education requirement in
Foundations of Learning II.A., Natural Sciences and Quantitative Rea-
soning.
Impact of computers and computing technology on society: appli-
cations, benefits, and risks. Topics include privacy, copyright, computer
crime, constitutional issues, risks of computer failures, evaluating
reliability of computer models, computers in the workplace, trade and
communications in the global village. Not open to computer science
majors or to students with credit in Computer Science 440.
CS 310. Data Structures (3)
Prerequisites: Computer Science 108 and Mathematics 245.
Representations and operations on basic data structures. Arrays,
linked lists, stacks, queues, and recursion; binary search trees and
balanced trees; hash tables, dynamic storage management; introduc-
tion to graphs. An object oriented programming language will be
used.
CS 320. Programming Languages (3)
Prerequisite: Computer Science 108.
Principles of high-level programming languages, including formal
techniques for syntax specification and implementation issues. Lan-
guages studied should include at least C++, FORTRAN, and LISP.
CS 370. Computer Architecture (3)
Prerequisite: Computer Science 237.
Logic gates, combinational circuits, sequential circuits, memory
and bus system, control unit, CPU, exception processing, traps and
interrupts, input-output and communication, reduced instruction set
computers, use of simulators for analysis and design of computer cir-
cuits, and traps/interrupts.
CS 425. Tcl and Tk Interface Programming (3)
Prerequisite: Computer Science 220.
Presentation of Toolkit Command Language (Tcl) and Toolkit (Tk)
languages, a portable programming environment for creating graphi-
cal user interfaces under X Windows, Microsoft Windows, and
Macintosh. Writing scripts for Tcl, Tk, and extensions such as Expect.
CS 440. Social, Legal, and Ethical Issues in Computing (3)
Prerequisite: Computer Science 108.
Impact of computers, applications, and benefits, copyright,
privacy, computer crime, constitutional issues, risks of computer
failures, evaluating reliability of computer models, trade and communi-
cations in the global village, computers in the workplace,
responsibilities of the computer professional. Not open to students
with credit in Computer Science 301.
CS 470. UNIX System Administration (3)
Prerequisite: Computer Science 370.
Installing the UNIX operating system on a UNIX workstation,
adding user accounts, backing up and restoring user files, installing
windows, adding network capabilities, adding printers and other
peripherals.
CS 490. Senior Seminar (1)
Prerequisite: Fifteen units of upper division computer science
courses.
Preparation and delivery of oral presentations on advanced topics
in computer science. General principles of organization and style
appropriate for presenting such material.
CS 496. Experimental Topics (1-4)
Selected topics. May be repeated with new content. See Class
Schedule for specific content. Limit of nine units of any combination of
296, 496, 596 courses applicable to a bachelor's degree.
CS 497. Undergraduate Research Seminar (3)
Six hours of laboratory and one hour with adviser.
Prerequisites: Computer Science 560 or 570, minimum grade point
average of 3.3, and consent of instructor.
Designing and carrying out independent research in one of the
areas of computer science. Literature search, technical report writing,
and oral presentation of results.
CS 498. Undergraduate Honors Thesis (3)
Prerequisites: Computer Science 497 and consent of instructor.
Directed research in computer science and completion of honors
thesis. Thesis to be presented at the annual SDSU Research Sympo-
sium and/or defended before a committee of faculty. Maximum credit
six units.
CS 499. Special Study (1-3)
Prerequisite: Consent of instructor.
Individual study. Maximum credit six units.
Computer Science
SDSU General Catalog 2012-2013 203
CS
UPPER DIVISION COURSES
(Also Acceptable for Advanced Degrees)
CS 503. Scientific Database Techniques (3)
Prerequisites: Computer Science 205, 310, and Mathematics 245.
Fundamental data models for handling scientific data, including flat
file, indexed compressed files, relational databases, and object oriented
databases, and their associated query technologies; e.g. file formats,
input/output libraries, string searching, structured query language,
object-oriented structured query language, hypertext markup language/
common gateway interface, and other specialized interfaces. Designed
for computational science students. Computer science majors must
obtain adviser approval. See Computer Science 514.
CS 514. Database Theory and Implementation (3)
Prerequisites: Computer Science 310 and Mathematics 245.
Database systems architecture. Storage structures and access
techniques. Relational model, relational algebra and calculus, normal-
ization of relations, hierarchical and network models. Current
database systems.
CS 520. Advanced Programming Languages (3)
Prerequisites: Computer Science 237, 310, and 320.
Object oriented programming, concurrent programming, logic pro-
gramming. Implementation issues.
CS 524. Compiler Construction (3)
Prerequisites: Computer Science 237, 310, and 320.
Syntactical specification of languages. Scanners and parsers. Pre-
cedence grammars. Run-time storage organization. Code generation
and optimization.
CS 530. Systems Programming (3)
Prerequisites: Computer Science 237 and 310.
Design and implementation of system software. Relationship
between software design and machine architecture. Topics from
assemblers, loaders and linkers, macro processors, compilers,
debuggers, editors. Introduction to software engineering and review
of programming fundamentals and object oriented concepts. Large
project in object oriented programming is required. Not acceptable for
the M.S. degree in computer science.
CS 532. Software Engineering (3)
Prerequisites: Computer Science 320 and 530.
Theory and methodology of programming complex computer soft-
ware. Analysis, design, and implementation of programs. Team
projects required.
CS 534. Software Measurement (3)
Prerequisite: Computer Science 532.
Basics of software measurement and use of measurement informa-
tion to ensure quality software and determine software process
effectiveness. Software estimation, cost estimation models, definition
of various measures, tools to support measurement collection and
analysis, analysis techniques, and case studies.
CS 535. Object-Oriented Programming and Design (3)
Prerequisites: Computer Science 310 and 320.
Basic concepts of object-oriented programming; classes, objects,
messages, data abstraction, inheritance, encapsulation. Object-ori-
ented design methodology.
CS 537. Programming for GIS (3)
Prerequisite: Computer Science 310 or Geography 484.
Customization of Geographic Information Science application
development platforms with emphasis on object oriented
programming and component architecture. Prominent examples are
Map Objects with Visual Basic, Map Objects with Java. Considerable
programming effort required, especially in Graphical User Interface
development.
CS 540. Software Internationalization (3)
Prerequisite: Computer Science 310.
Principles, techniques, and resources for design and implementa-
tion of software localizable to multiple languages and/or cultures,
including detailed examination of internationalization features provided
by one or more widely used modern programming languages.
CS 541. Online Documentation and Help Systems (3)
Prerequisite: Computer Science 310.
Design, implementation, and maintenance of online documenta-
tion and help systems, including authoring principles and standards;
theory and practice of single-source content management; survey of
available development tools and resources; internationalization; and
project management.
CS 542. XML for Multilingual and Multicultural Applications (3)
Prerequisite: Computer Science 310.
Principles, techniques, and resources for designing and utilizing
globalized XML documents in multilingual and multicultural informa-
tion systems.
CS 545. Introduction to Web Application Development (3)
(Offered only in Extension)
Prerequisite: Computer Science 310.
World Wide Web application development. XHTML, CSS,
Javascript, client-side and server-side scripting, PHP and CGI pro-
gramming with Perl. Application integration with SQL database
systems.
CS 546. Human Computer Interfaces (3)
(Offered only in Extension)
Prerequisites: Computer Science 310 and 320.
Common interface idioms and support available for loose integra-
tion into aesthetically appealing and practical, efficient interaction
between humans and machine. Editors, browsers, games, networking
sites, posting boards, etc. Principles that are ubiquitous among tools
for HCI development.
CS 547. Programming and Scripting Languages for Web
Applications (3)
(Offered only in Extension)
Prerequisites: Computer Science 310 and 320.
Principles and practice of dynamic and scripting and functional
languages used in web applications. Basic language concepts, data
structures in dynamic languages, code structure, code quality, test-
ing, string manipulation, dynamic code generation.
CS 550. Artificial Intelligence (3)
Prerequisites: Computer Science 108 and either Mathematics 245
or 523.
Heuristic approaches to problem solving. Systematic methods of
search of the problem state space. Theorem proving by machine. Res-
olution principle and its applications.
CS 551. User Interface Environments (3)
Prerequisites: Computer Science 310 and 320.
Design of user-machine interfaces in interactive systems.
Problems faced by user of an interactive system; basic issues and
principles involved in design and implementation of good and friendly
user-machine graphical interfaces.
CS 552. Artificial Intelligence II (3)
Prerequisite: Computer Science 550.
Limitations of symbol-based approach to artificial intelligence from
Computer Science 550. Presented alternatives are genetic and proba-
bilistic approaches, connectionist and emergent representation and
learning, natural language processing, intelligence measures and
cognitive models. Seminal publications shaping these techniques.
CS 553. Neural Networks (3)
Prerequisites: Computer Science 320 and Mathematics 254.
Principles of neural networks, their theory and applications.
CS 556. Robotics: Mathematics, Programming, and Control (3)
Prerequisites: Computer Science 320, Mathematics 254, knowl-
edge of the C programming language.
Robotic systems including manipulators, actuators, sensors, and
controllers. Kinematics of planar robots. Design and implementation of
robot joint controllers. Robot programming languages and environ-
ments, and robot command interfaces.
CS 558. Computer Simulation (3)
Prerequisites: Computer Science 310 and Statistics 550.
Methodology of simulation for discrete and continuous dynamic
systems. State-of-the-art programming techniques and languages.
Statistical aspects of simulation. Students will design, program, exe-
cute, and document a simulation of their choice.
Computer Science
204 SDSU General Catalog 2012-2013
CS 559. Computer Vision (3)
Prerequisites: Computer Science 310 and Mathematics 254.
Algorithms and computer methods for processing of images.
Visual perception as a computational problem, image formation, char-
acterization of images, feature extraction, regional and edge
detection, computer architectures for machine vision.
CS 560. Algorithms and Their Analysis (3)
Prerequisite: Computer Science 310.
Algorithms for solving frequently occurring problems. Analysis
techniques and solutions to recurrence relations. Searching and sort-
ing algorithms. Graph problems (shortest paths, minimal spanning
trees, graph search, etc.). NP complete problems. Not acceptable for
the M.S. degree in Computer Science.
CS 562. Automata Theory (3)
Prerequisite: Mathematics 245 or 521A.
Definition of finite automata. Classification of finite automaton
definable languages. Minimization of finite automata. Nondeterminis-
tic finite automata. Sequential machines with output. Regular sets and
expressions. Introduction to grammars.
CS 570. Operating Systems (3)
Prerequisites: Computer Science 310, 370, and knowledge of the
C programming language.
File systems, processes, CPU scheduling, concurrent program-
ming, memory management, protection. Relationship between the
operating system and underlying architecture. Not acceptable for the
M.S. degree in Computer Science.
CS 572. Microprocessor Architecture (3)
Prerequisites: Computer Science 370 and knowledge of the C pro-
gramming language.
Architecture of state-of-the-art microprocessor. Internal pipeline,
internal cache, external cache, and memory management.
Programming a uniprocessor. Communication among computers in a
distributed environment. Architecture and programming of a multipro-
cessor system.
CS 574. Computer Security (3)
Prerequisites: Computer Science 310; Mathematics 245; Statistics
550; and credit or concurrent registration in Computer Science 570.
Principles of computer security and application of principles to
operating systems, database systems, and computer networks. Top-
ics include encryption techniques, access controls, and information
flow controls.
CS 576. Computer Networks and Distributed Systems (3)
Prerequisite: Credit or concurrent registration in Computer Science
570.
Basic networking concepts such as seven-layer reference model,
transmission media, addressing, subnetting and supernetting, net-
working devices, LANs and WANs, internetworking, distributed
processing, and client-server model. Basic concepts and protocols of
TCP/IP protocol suite and basic Internet services.
CS 580. Client-Server Programming (3)
Prerequisites: Computer Science 570 and knowledge of an object- ori-
ented programming language. Recommended: Computer Science 576.
Client-server model, networking protocols for client-server pro-
grams, algorithmic issues in client-server programs, client-server
protocols, implementing client-server applications.
CS 581. Computational Linguistics (3)
(Same course as Linguistics 581)
Prerequisites: Computer Science 320 or Linguistics 571; Linguis-
tics 570 or Mathematics 245.
Basic concepts in computational linguistics including regular
expressions, finite-state automata, finite-state transducers, weighted
finite-state automata, and n-gram language models. Applications to
phonology, orthography, morphology, syntax. Probabilistic models.
Statistical techniques for speech recognition.
CS 582. Introduction to Speech Processing (3)
Prerequisite: Computer Science 310.
Fundamentals of speech processing and speech recognition.
Physical aspects of speech production and perception. Mathematical
models for speech recognition. Corpus development: data collection,
processing, and evaluation. Applications of speech processing and
associated research topics.
CS 583. 3D Game Programming (3)
Prerequisite: Computer Science 310 or equivalent programming
background.
Development of programming skills using software environment of
a game engine and its scripting language. 3D concepts for game play,
modeling, and programming. Roles needed in software development
team. Contrast creation of original 3D object models for game world
with incorporation of pre-created generic models.
CS 596. Advanced Topics in Computer Science (1-4)
Prerequisite: Consent of instructor.
Selected topics in computer science. May be repeated with the
approval of the instructor. See Class Schedule for specific content.
Limit of nine units of any combination of 296, 496, 596 courses appli-
cable to a bachelor's degree. Maximum credit of six units of 596
applicable to a bachelor's degree. Credit for 596 and 696 applicable
to a master's degree with approval of the graduate adviser.
GRADUATE COURSES
Refer to the Graduate Bulletin.
For additional courses useful to computer
scientists, see:
Mathematics 541. Introduction to Numerical Analysis
and Computing
Mathematics 542. Introduction to Numerical
Solutions of Differential
Equations
Mathematics 561. Applied Graph Theory
Mathematics 579. Combinatorics

More Related Content

What's hot

Making Sense of Texas Computer Science Requirements
Making Sense of Texas Computer Science RequirementsMaking Sense of Texas Computer Science Requirements
Making Sense of Texas Computer Science Requirements
Hal Speed
 
Computer Science Imperative
Computer Science ImperativeComputer Science Imperative
Computer Science Imperative
Hal Speed
 
Making Sense of Texas Computer Science Requirements - June 2017
Making Sense of Texas Computer Science Requirements - June 2017Making Sense of Texas Computer Science Requirements - June 2017
Making Sense of Texas Computer Science Requirements - June 2017
Hal Speed
 
Doctoral of Computer Science Enterprise Information Systems - Colorado Techni...
Doctoral of Computer Science Enterprise Information Systems - Colorado Techni...Doctoral of Computer Science Enterprise Information Systems - Colorado Techni...
Doctoral of Computer Science Enterprise Information Systems - Colorado Techni...
E Rey Garcia, MPA, DCS-EIS Candidate
 
Computer Science Imperative for K-12 and Beyond
Computer Science Imperative for K-12 and BeyondComputer Science Imperative for K-12 and Beyond
Computer Science Imperative for K-12 and Beyond
Hal Speed
 
Building a Computer Science Pathway in Your High School - Feb 2017
Building a Computer Science Pathway in Your High School - Feb 2017Building a Computer Science Pathway in Your High School - Feb 2017
Building a Computer Science Pathway in Your High School - Feb 2017
Hal Speed
 
Contributions to the multidisciplinarity of computer science and IS
Contributions to the multidisciplinarity of computer science and ISContributions to the multidisciplinarity of computer science and IS
Contributions to the multidisciplinarity of computer science and IS
Saïd Assar
 
Building a Computer Science Pathway for Endorsements
Building a Computer Science Pathway for EndorsementsBuilding a Computer Science Pathway for Endorsements
Building a Computer Science Pathway for Endorsements
Hal Speed
 
Presentation to NCCA Computer Science Seminar. Dublin Castle, Ireland. 21st F...
Presentation to NCCA Computer Science Seminar. Dublin Castle, Ireland. 21st F...Presentation to NCCA Computer Science Seminar. Dublin Castle, Ireland. 21st F...
Presentation to NCCA Computer Science Seminar. Dublin Castle, Ireland. 21st F...
Neil Keane
 
Building a Computer Science Pipeline
Building a Computer Science PipelineBuilding a Computer Science Pipeline
Building a Computer Science Pipeline
Hal Speed
 
GCSE year 9 options evening
GCSE year 9 options eveningGCSE year 9 options evening
GCSE year 9 options evening
bsharland
 
Career Options after BCA
Career Options after BCACareer Options after BCA
Career Options after BCA
Trinity Dwarka
 
TASA/TASB 2015 Computer Science Imperative for K-12
TASA/TASB 2015 Computer Science Imperative for K-12TASA/TASB 2015 Computer Science Imperative for K-12
TASA/TASB 2015 Computer Science Imperative for K-12
Hal Speed
 
AP Computer Science Test Prep - Part 3 - Data Structure & Algorithm
AP Computer Science Test Prep - Part 3 - Data Structure & AlgorithmAP Computer Science Test Prep - Part 3 - Data Structure & Algorithm
AP Computer Science Test Prep - Part 3 - Data Structure & Algorithm
NR Computer Learning Center
 
Iccie2012 siti rosminah
Iccie2012 siti rosminahIccie2012 siti rosminah
Iccie2012 siti rosminah
Siti Rosminah Md Derus
 
CS4TX Quarterly Webinar - April 2017
CS4TX Quarterly Webinar - April 2017CS4TX Quarterly Webinar - April 2017
CS4TX Quarterly Webinar - April 2017
Hal Speed
 
Goa university prospectus 2016 17 educationiconnect.com 7862004786
Goa university prospectus 2016 17 educationiconnect.com 7862004786Goa university prospectus 2016 17 educationiconnect.com 7862004786
Goa university prospectus 2016 17 educationiconnect.com 7862004786
00007123
 
Computer Science and Programming Language Vol 2 Issue 2
Computer Science and Programming Language Vol 2 Issue 2Computer Science and Programming Language Vol 2 Issue 2
Computer Science and Programming Language Vol 2 Issue 2
JournalsPub www.journalspub.com
 
26 march 2015 muley sir computer science in env science mahesh joshi
26 march 2015 muley sir computer science in env science mahesh joshi26 march 2015 muley sir computer science in env science mahesh joshi
26 march 2015 muley sir computer science in env science mahesh joshi
Mahesh Joshi
 

What's hot (19)

Making Sense of Texas Computer Science Requirements
Making Sense of Texas Computer Science RequirementsMaking Sense of Texas Computer Science Requirements
Making Sense of Texas Computer Science Requirements
 
Computer Science Imperative
Computer Science ImperativeComputer Science Imperative
Computer Science Imperative
 
Making Sense of Texas Computer Science Requirements - June 2017
Making Sense of Texas Computer Science Requirements - June 2017Making Sense of Texas Computer Science Requirements - June 2017
Making Sense of Texas Computer Science Requirements - June 2017
 
Doctoral of Computer Science Enterprise Information Systems - Colorado Techni...
Doctoral of Computer Science Enterprise Information Systems - Colorado Techni...Doctoral of Computer Science Enterprise Information Systems - Colorado Techni...
Doctoral of Computer Science Enterprise Information Systems - Colorado Techni...
 
Computer Science Imperative for K-12 and Beyond
Computer Science Imperative for K-12 and BeyondComputer Science Imperative for K-12 and Beyond
Computer Science Imperative for K-12 and Beyond
 
Building a Computer Science Pathway in Your High School - Feb 2017
Building a Computer Science Pathway in Your High School - Feb 2017Building a Computer Science Pathway in Your High School - Feb 2017
Building a Computer Science Pathway in Your High School - Feb 2017
 
Contributions to the multidisciplinarity of computer science and IS
Contributions to the multidisciplinarity of computer science and ISContributions to the multidisciplinarity of computer science and IS
Contributions to the multidisciplinarity of computer science and IS
 
Building a Computer Science Pathway for Endorsements
Building a Computer Science Pathway for EndorsementsBuilding a Computer Science Pathway for Endorsements
Building a Computer Science Pathway for Endorsements
 
Presentation to NCCA Computer Science Seminar. Dublin Castle, Ireland. 21st F...
Presentation to NCCA Computer Science Seminar. Dublin Castle, Ireland. 21st F...Presentation to NCCA Computer Science Seminar. Dublin Castle, Ireland. 21st F...
Presentation to NCCA Computer Science Seminar. Dublin Castle, Ireland. 21st F...
 
Building a Computer Science Pipeline
Building a Computer Science PipelineBuilding a Computer Science Pipeline
Building a Computer Science Pipeline
 
GCSE year 9 options evening
GCSE year 9 options eveningGCSE year 9 options evening
GCSE year 9 options evening
 
Career Options after BCA
Career Options after BCACareer Options after BCA
Career Options after BCA
 
TASA/TASB 2015 Computer Science Imperative for K-12
TASA/TASB 2015 Computer Science Imperative for K-12TASA/TASB 2015 Computer Science Imperative for K-12
TASA/TASB 2015 Computer Science Imperative for K-12
 
AP Computer Science Test Prep - Part 3 - Data Structure & Algorithm
AP Computer Science Test Prep - Part 3 - Data Structure & AlgorithmAP Computer Science Test Prep - Part 3 - Data Structure & Algorithm
AP Computer Science Test Prep - Part 3 - Data Structure & Algorithm
 
Iccie2012 siti rosminah
Iccie2012 siti rosminahIccie2012 siti rosminah
Iccie2012 siti rosminah
 
CS4TX Quarterly Webinar - April 2017
CS4TX Quarterly Webinar - April 2017CS4TX Quarterly Webinar - April 2017
CS4TX Quarterly Webinar - April 2017
 
Goa university prospectus 2016 17 educationiconnect.com 7862004786
Goa university prospectus 2016 17 educationiconnect.com 7862004786Goa university prospectus 2016 17 educationiconnect.com 7862004786
Goa university prospectus 2016 17 educationiconnect.com 7862004786
 
Computer Science and Programming Language Vol 2 Issue 2
Computer Science and Programming Language Vol 2 Issue 2Computer Science and Programming Language Vol 2 Issue 2
Computer Science and Programming Language Vol 2 Issue 2
 
26 march 2015 muley sir computer science in env science mahesh joshi
26 march 2015 muley sir computer science in env science mahesh joshi26 march 2015 muley sir computer science in env science mahesh joshi
26 march 2015 muley sir computer science in env science mahesh joshi
 

Viewers also liked

I ng. morita
I ng. moritaI ng. morita
I ng. morita
hugito23
 
Envision of city
Envision of cityEnvision of city
Envision of city
Jiachao Pan
 
Presentación1
Presentación1Presentación1
Presentación1
Daniela Salinas
 
Lorenaa
LorenaaLorenaa
Lorenaa
Lorena Leon
 
Connectar amb els valors del client és negoci per Jordi Mas a ESCODI
Connectar amb els valors del client és negoci per Jordi Mas a ESCODIConnectar amb els valors del client és negoci per Jordi Mas a ESCODI
Connectar amb els valors del client és negoci per Jordi Mas a ESCODI
ESCODI
 
Swinburne - Graduate Transition Conference
Swinburne - Graduate Transition ConferenceSwinburne - Graduate Transition Conference
Swinburne - Graduate Transition Conference
Mischel Luong
 
Proyecto TIC en un centro educativo.
Proyecto TIC en un centro educativo.Proyecto TIC en un centro educativo.
Proyecto TIC en un centro educativo.
davidagoov38
 
Uae india joint statement of jan 2017
Uae india joint statement of jan 2017Uae india joint statement of jan 2017
Uae india joint statement of jan 2017
Col Mukteshwar Prasad
 
Tecnología
TecnologíaTecnología
Tecnología
Rafael Alvarez
 
Texto popular
Texto popularTexto popular
Texto popular
MAGI CHIPANA
 
Revised Offer Letter - Manikandan
Revised Offer Letter - ManikandanRevised Offer Letter - Manikandan
Revised Offer Letter - Manikandan
Mani kandan
 
оцінювання зно
оцінювання знооцінювання зно
оцінювання зно
pr1nc1k
 
Global Artic Awards: Winners & Finalists 2016 (2)
Global Artic Awards: Winners & Finalists 2016 (2)Global Artic Awards: Winners & Finalists 2016 (2)
Global Artic Awards: Winners & Finalists 2016 (2)
maditabalnco
 

Viewers also liked (13)

I ng. morita
I ng. moritaI ng. morita
I ng. morita
 
Envision of city
Envision of cityEnvision of city
Envision of city
 
Presentación1
Presentación1Presentación1
Presentación1
 
Lorenaa
LorenaaLorenaa
Lorenaa
 
Connectar amb els valors del client és negoci per Jordi Mas a ESCODI
Connectar amb els valors del client és negoci per Jordi Mas a ESCODIConnectar amb els valors del client és negoci per Jordi Mas a ESCODI
Connectar amb els valors del client és negoci per Jordi Mas a ESCODI
 
Swinburne - Graduate Transition Conference
Swinburne - Graduate Transition ConferenceSwinburne - Graduate Transition Conference
Swinburne - Graduate Transition Conference
 
Proyecto TIC en un centro educativo.
Proyecto TIC en un centro educativo.Proyecto TIC en un centro educativo.
Proyecto TIC en un centro educativo.
 
Uae india joint statement of jan 2017
Uae india joint statement of jan 2017Uae india joint statement of jan 2017
Uae india joint statement of jan 2017
 
Tecnología
TecnologíaTecnología
Tecnología
 
Texto popular
Texto popularTexto popular
Texto popular
 
Revised Offer Letter - Manikandan
Revised Offer Letter - ManikandanRevised Offer Letter - Manikandan
Revised Offer Letter - Manikandan
 
оцінювання зно
оцінювання знооцінювання зно
оцінювання зно
 
Global Artic Awards: Winners & Finalists 2016 (2)
Global Artic Awards: Winners & Finalists 2016 (2)Global Artic Awards: Winners & Finalists 2016 (2)
Global Artic Awards: Winners & Finalists 2016 (2)
 

Similar to Computer Science

Masters in Computer Science.pdf
Masters in Computer Science.pdfMasters in Computer Science.pdf
Masters in Computer Science.pdf
College49
 
ISI Master of Technology in Computer Science (M. Tech CS) Information
ISI Master of Technology in Computer Science (M. Tech CS) InformationISI Master of Technology in Computer Science (M. Tech CS) Information
ISI Master of Technology in Computer Science (M. Tech CS) Information
SOURAV DAS
 
Csulb catalog
Csulb catalogCsulb catalog
Csulb catalog
yoyosingh12
 
M.sc cs annual_2019-20
M.sc cs annual_2019-20M.sc cs annual_2019-20
M.sc cs annual_2019-20
Pankaj Dadhich
 
Ccsc 2015 panel
Ccsc 2015 panelCcsc 2015 panel
Ccsc 2015 panel
Jennifer Polack
 
AIT Pages from Mason_2005_06
AIT Pages from Mason_2005_06AIT Pages from Mason_2005_06
AIT Pages from Mason_2005_06
Wade Sturdivant
 
CSE
CSECSE
B.Sc_. - Information Technology - 2019-20 onwards-04122019 (1).pdf
B.Sc_. - Information Technology - 2019-20 onwards-04122019 (1).pdfB.Sc_. - Information Technology - 2019-20 onwards-04122019 (1).pdf
B.Sc_. - Information Technology - 2019-20 onwards-04122019 (1).pdf
ragoukumar aroumougam
 
2014 entry mechanical engineering
2014 entry mechanical engineering2014 entry mechanical engineering
2014 entry mechanical engineering
University of Brighton
 
EE.pptx
EE.pptxEE.pptx
EE.pptx
JongkaiFavi
 
Module 3
Module 3 Module 3
Module 3
EX28
 
Rit dubai bachelor mechanical engeering
Rit dubai bachelor mechanical engeeringRit dubai bachelor mechanical engeering
Rit dubai bachelor mechanical engeering
Rit Dubai
 
Mca 2015 2018-syllabus_19-april-2016(1)
Mca 2015 2018-syllabus_19-april-2016(1)Mca 2015 2018-syllabus_19-april-2016(1)
Mca 2015 2018-syllabus_19-april-2016(1)
netrap
 
CSE Expertise Overview
CSE Expertise OverviewCSE Expertise Overview
CSE Expertise Overview
Raghavendra Kamath
 
Applied Mathematics
Applied MathematicsApplied Mathematics
Applied Mathematics
Florida Institute of Technology
 
Siminar ppt
Siminar pptSiminar ppt
Siminar ppt
Amuthan Kumaresan
 
cert_softwaredevelopment_oct32014
cert_softwaredevelopment_oct32014cert_softwaredevelopment_oct32014
cert_softwaredevelopment_oct32014
Mina Hatami
 
Computer information systems program power point
Computer information systems program power pointComputer information systems program power point
Computer information systems program power point
Moultrie Technical College
 
Admission booklet pg diploma courses cdac-v4
Admission booklet pg diploma courses cdac-v4Admission booklet pg diploma courses cdac-v4
Admission booklet pg diploma courses cdac-v4
prabhatjon
 
Computer Based Career
Computer Based CareerComputer Based Career
Computer Based Career
h1019zzang
 

Similar to Computer Science (20)

Masters in Computer Science.pdf
Masters in Computer Science.pdfMasters in Computer Science.pdf
Masters in Computer Science.pdf
 
ISI Master of Technology in Computer Science (M. Tech CS) Information
ISI Master of Technology in Computer Science (M. Tech CS) InformationISI Master of Technology in Computer Science (M. Tech CS) Information
ISI Master of Technology in Computer Science (M. Tech CS) Information
 
Csulb catalog
Csulb catalogCsulb catalog
Csulb catalog
 
M.sc cs annual_2019-20
M.sc cs annual_2019-20M.sc cs annual_2019-20
M.sc cs annual_2019-20
 
Ccsc 2015 panel
Ccsc 2015 panelCcsc 2015 panel
Ccsc 2015 panel
 
AIT Pages from Mason_2005_06
AIT Pages from Mason_2005_06AIT Pages from Mason_2005_06
AIT Pages from Mason_2005_06
 
CSE
CSECSE
CSE
 
B.Sc_. - Information Technology - 2019-20 onwards-04122019 (1).pdf
B.Sc_. - Information Technology - 2019-20 onwards-04122019 (1).pdfB.Sc_. - Information Technology - 2019-20 onwards-04122019 (1).pdf
B.Sc_. - Information Technology - 2019-20 onwards-04122019 (1).pdf
 
2014 entry mechanical engineering
2014 entry mechanical engineering2014 entry mechanical engineering
2014 entry mechanical engineering
 
EE.pptx
EE.pptxEE.pptx
EE.pptx
 
Module 3
Module 3 Module 3
Module 3
 
Rit dubai bachelor mechanical engeering
Rit dubai bachelor mechanical engeeringRit dubai bachelor mechanical engeering
Rit dubai bachelor mechanical engeering
 
Mca 2015 2018-syllabus_19-april-2016(1)
Mca 2015 2018-syllabus_19-april-2016(1)Mca 2015 2018-syllabus_19-april-2016(1)
Mca 2015 2018-syllabus_19-april-2016(1)
 
CSE Expertise Overview
CSE Expertise OverviewCSE Expertise Overview
CSE Expertise Overview
 
Applied Mathematics
Applied MathematicsApplied Mathematics
Applied Mathematics
 
Siminar ppt
Siminar pptSiminar ppt
Siminar ppt
 
cert_softwaredevelopment_oct32014
cert_softwaredevelopment_oct32014cert_softwaredevelopment_oct32014
cert_softwaredevelopment_oct32014
 
Computer information systems program power point
Computer information systems program power pointComputer information systems program power point
Computer information systems program power point
 
Admission booklet pg diploma courses cdac-v4
Admission booklet pg diploma courses cdac-v4Admission booklet pg diploma courses cdac-v4
Admission booklet pg diploma courses cdac-v4
 
Computer Based Career
Computer Based CareerComputer Based Career
Computer Based Career
 

Computer Science

  • 1. SDSU General Catalog 2012-2013 201 CS Computer Science In the College of Sciences OFFICE: Geology/Mathematics/Computer Science 413 TELEPHONE: 619-594-6191 http://www.cs.sdsu.edu Faculty Emeritus: Anantha, Baase-Mayers, Donald, Lane, Marovac, Vinge, Vuskovic Chair: Beck Professors: Beck, Carroll, Stewart, Swiniarski, Tarokh Associate Professors: Eckberg, Edwards, Roch, Valafar, Whitney, Xie Lecturers: Bajic, Lewis, Riggins Adjunct: Root, Thomas Offered by the Department Master of Science degree in computer science. Major in computer science with the B.S. degree in applied arts and sciences. Minor in computer science. Certificate in geographic information science. Certificate in web and mobile applications development (refer to the Graduate Bulletin). The Major Computer Science is the study of computers and their applications. It is concerned with methods for storing and retrieving information, with the design and use of languages for writing computer programs, with the hardware systems that interpret such languages, and with the theoretical principles that form the foundations of computing. Computer Science includes a wide variety of specialties and application areas such as artificial intelligence, robotics, graphics, systems programming, simulation, and computer networks. The Bachelor of Science in Computer Science is designed to provide students with a fundamental understanding of modern computing methodology and programming practices along with a complementary knowledge of hardware. The first two years provide the basic preparation in programming, data structures and architec- ture. The final two years are devoted to more advanced fundamentals and specialized electives. Computers are used to store and manage information, to analyze scientific data, and in a wide variety of other applications. Computing technology is found in an almost limitless number of settings, ranging from automobiles to household appliances to toys. Because of this, a wide range of jobs are open to people trained in Computer Science. Employment opportunities are expected to remain very strong. Impacted Program The computer science major is an impacted program. To be admitted to the computer science major, students must meet the following criteria: a. Complete preparation for the major; b. Complete a minimum of 60 transferable semester units; c. Have a minimum cumulative GPA of 2.0. To complete the major, students must fulfill the degree requirements for the major described in the catalog in effect at the time they are accepted into the premajor at SDSU (assuming continuous enrollment). Major Academic Plans (MAPs) Visit http://www.sdsu.edu/mymap for the recommended courses needed to fulfill your major requirements. The MAPs Web site was created to help students navigate the course requirements for their majors and to identify which General Education course will also fulfill a major preparation course requirement. Computer Science Major With the B.S. Degree in Applied Arts and Sciences (Major Code: 07011) (SIMS Code: 773801) All candidates for a degree in applied arts and sciences must complete the graduation requirements listed in the section of this catalog on “Graduation Requirements.” A minor is not required for this major. Preparation for the Major. Computer Science 107, 108, 237; Mathematics 150, 151, 245, 254; Statistics 250; and 12 units of science courses selected with approval of computer science adviser. The science courses must include one of the following two-semester sequences with laboratory: Physics 195, 195L, 196, 196L; or Chemistry 200, 201; or Biology 203, 203L, 204, 204L. The remainder of the12 units must be science courses or courses that enhance the student’s ability to apply the scientific method. (38 units) Graduation Writing Assessment Requirement. Passing the Writing Placement Assessment with a score of 10 or completing one of the approved upper division writing courses (W) with a grade of C (2.0) or better. See “Graduation Requirements” section for a complete listing of requirements. Major. A minimum of 37 upper division units to include Computer Science 310, 320, 370, 440, 490, 530, 560, 570; at least one course selected from Mathematics 541, 579, Statistics 350A, 550, or 551A; and 12 units of computer science electives selected with the approval of a computer science major adviser. At least nine units of electives must be in computer science. Master Plan. A master plan of the courses taken to fulfill the major must be approved by a major adviser and filed with the Office of Advising and Evaluations. Computer Science Minor (SIMS Code: 773801) The minor in computer science consists of a minimum of 18-23 units in computer science and mathematics to include Computer Science 107, 108; and at least 12 upper division units, or at least nine upper division units if the student completes a full calculus sequence, i.e., Mathematics 121 and 122, or 150 and 151. The courses selected are subject to the approval of the minor adviser. Courses in the minor may not be counted toward the major, but may be used to satisfy preparation for the major and general education requirements, if applicable. A minimum of six upper division units must be completed in residence at San Diego State University. Geographic Information Science Certificate* (Certificate Code: 90032) (SIMS Code: 112949) The purpose of the program is to prepare students to acquire, manage, and visualize geospatial data in public and private organiza- tions. Students must apply for admission to the program before the completion of 12 certificate units and must complete the required units with a 2.5 grade point average. The certificate requires 27 units distributed between the depart- ments of Computer Science and Geography as follows: 12-15 units selected from Computer Science 107, 108, 220, 310, 320, 503, 514, 520, 535, 551, and 12-15 units selected from Geography 104, 381, 484, 581-589. Courses with relevant content (e.g. Computer Science 596 or Geography 596) may be substituted for the computer science and geography courses with the approval of the certificate adviser. Courses in the certificate may be counted toward the major in computer science if applicable. * Additional prerequisites required for this certificate.
  • 2. Computer Science 202 SDSU General Catalog 2012-2013 Courses (CS) Refer to Courses and Curricula and University Policies sections of this catalog for explanation of the course numbering system, unit or credit hour, prerequisites, and related information. LOWER DIVISION COURSES CS 100. Computational Thinking (3) [GE] Prerequisite: Satisfaction of the Entry-Level Mathematics require- ment. Capabilities and applications of computers. Algorithmic problem- solving methods and computer programming. Using computers to examine questions from other fields of study. Practical and theoretical limits to computation. Machine intelligence and heuristic problem solving. Social and legal impact of computers. CS 107. Introduction to Computer Programming (3) Prerequisite: Satisfaction of the Entry-Level Mathematics require- ment. Programming methodology and problem solving. Basic concepts of computer systems, algorithm design and development, data types, program structures. Extensive programming in Java. CS 108. Intermediate Computer Programming (3) Prerequisite: Computer Science 107. Further training in program design and development. Introduction to data structures: stacks, queues, linear lists, trees, sets, and recur- sion. Extensive programming in Java. CS 205. Introduction to Computational Programming and Visualization (3) Prerequisite: First semester calculus (either Mathematics 120 or 121 or 150). Problem solving skills for needs of science. Use of computing and software tools of computational science introduced to gain compe- tence in computer communications, programming and visualization. Supervised computer laboratory. CS 220. UNIX and the C Programming Language (3) Prerequisite: Computer Science 108. Introduction to the UNIX operating system: shell programming, major system services and utilities. The C language: its features and their significance in the UNIX programming environment. CS 237. Machine Organization and Assembly Language (3) Prerequisite: Computer Science 108. General concepts of machine and assembly language, data repre- sentation, looping and addressing techniques, arrays, subroutines, macros. Extensive assembly language programming. CS 296. Experimental Topics (1-4) Selected topics. May be repeated with new content. See Class Schedule for specific content. Limit of nine units of any combination of 296, 496, 596 courses applicable to a bachelor's degree. CS 299. Special Study (1-3) Prerequisite: Consent of instructor. Individual study. Maximum credit six units. UPPER DIVISION COURSES (Intended for Undergraduates) CS 301. Computers and Society (3) [GE] Prerequisite: Completion of the General Education requirement in Foundations of Learning II.A., Natural Sciences and Quantitative Rea- soning. Impact of computers and computing technology on society: appli- cations, benefits, and risks. Topics include privacy, copyright, computer crime, constitutional issues, risks of computer failures, evaluating reliability of computer models, computers in the workplace, trade and communications in the global village. Not open to computer science majors or to students with credit in Computer Science 440. CS 310. Data Structures (3) Prerequisites: Computer Science 108 and Mathematics 245. Representations and operations on basic data structures. Arrays, linked lists, stacks, queues, and recursion; binary search trees and balanced trees; hash tables, dynamic storage management; introduc- tion to graphs. An object oriented programming language will be used. CS 320. Programming Languages (3) Prerequisite: Computer Science 108. Principles of high-level programming languages, including formal techniques for syntax specification and implementation issues. Lan- guages studied should include at least C++, FORTRAN, and LISP. CS 370. Computer Architecture (3) Prerequisite: Computer Science 237. Logic gates, combinational circuits, sequential circuits, memory and bus system, control unit, CPU, exception processing, traps and interrupts, input-output and communication, reduced instruction set computers, use of simulators for analysis and design of computer cir- cuits, and traps/interrupts. CS 425. Tcl and Tk Interface Programming (3) Prerequisite: Computer Science 220. Presentation of Toolkit Command Language (Tcl) and Toolkit (Tk) languages, a portable programming environment for creating graphi- cal user interfaces under X Windows, Microsoft Windows, and Macintosh. Writing scripts for Tcl, Tk, and extensions such as Expect. CS 440. Social, Legal, and Ethical Issues in Computing (3) Prerequisite: Computer Science 108. Impact of computers, applications, and benefits, copyright, privacy, computer crime, constitutional issues, risks of computer failures, evaluating reliability of computer models, trade and communi- cations in the global village, computers in the workplace, responsibilities of the computer professional. Not open to students with credit in Computer Science 301. CS 470. UNIX System Administration (3) Prerequisite: Computer Science 370. Installing the UNIX operating system on a UNIX workstation, adding user accounts, backing up and restoring user files, installing windows, adding network capabilities, adding printers and other peripherals. CS 490. Senior Seminar (1) Prerequisite: Fifteen units of upper division computer science courses. Preparation and delivery of oral presentations on advanced topics in computer science. General principles of organization and style appropriate for presenting such material. CS 496. Experimental Topics (1-4) Selected topics. May be repeated with new content. See Class Schedule for specific content. Limit of nine units of any combination of 296, 496, 596 courses applicable to a bachelor's degree. CS 497. Undergraduate Research Seminar (3) Six hours of laboratory and one hour with adviser. Prerequisites: Computer Science 560 or 570, minimum grade point average of 3.3, and consent of instructor. Designing and carrying out independent research in one of the areas of computer science. Literature search, technical report writing, and oral presentation of results. CS 498. Undergraduate Honors Thesis (3) Prerequisites: Computer Science 497 and consent of instructor. Directed research in computer science and completion of honors thesis. Thesis to be presented at the annual SDSU Research Sympo- sium and/or defended before a committee of faculty. Maximum credit six units. CS 499. Special Study (1-3) Prerequisite: Consent of instructor. Individual study. Maximum credit six units.
  • 3. Computer Science SDSU General Catalog 2012-2013 203 CS UPPER DIVISION COURSES (Also Acceptable for Advanced Degrees) CS 503. Scientific Database Techniques (3) Prerequisites: Computer Science 205, 310, and Mathematics 245. Fundamental data models for handling scientific data, including flat file, indexed compressed files, relational databases, and object oriented databases, and their associated query technologies; e.g. file formats, input/output libraries, string searching, structured query language, object-oriented structured query language, hypertext markup language/ common gateway interface, and other specialized interfaces. Designed for computational science students. Computer science majors must obtain adviser approval. See Computer Science 514. CS 514. Database Theory and Implementation (3) Prerequisites: Computer Science 310 and Mathematics 245. Database systems architecture. Storage structures and access techniques. Relational model, relational algebra and calculus, normal- ization of relations, hierarchical and network models. Current database systems. CS 520. Advanced Programming Languages (3) Prerequisites: Computer Science 237, 310, and 320. Object oriented programming, concurrent programming, logic pro- gramming. Implementation issues. CS 524. Compiler Construction (3) Prerequisites: Computer Science 237, 310, and 320. Syntactical specification of languages. Scanners and parsers. Pre- cedence grammars. Run-time storage organization. Code generation and optimization. CS 530. Systems Programming (3) Prerequisites: Computer Science 237 and 310. Design and implementation of system software. Relationship between software design and machine architecture. Topics from assemblers, loaders and linkers, macro processors, compilers, debuggers, editors. Introduction to software engineering and review of programming fundamentals and object oriented concepts. Large project in object oriented programming is required. Not acceptable for the M.S. degree in computer science. CS 532. Software Engineering (3) Prerequisites: Computer Science 320 and 530. Theory and methodology of programming complex computer soft- ware. Analysis, design, and implementation of programs. Team projects required. CS 534. Software Measurement (3) Prerequisite: Computer Science 532. Basics of software measurement and use of measurement informa- tion to ensure quality software and determine software process effectiveness. Software estimation, cost estimation models, definition of various measures, tools to support measurement collection and analysis, analysis techniques, and case studies. CS 535. Object-Oriented Programming and Design (3) Prerequisites: Computer Science 310 and 320. Basic concepts of object-oriented programming; classes, objects, messages, data abstraction, inheritance, encapsulation. Object-ori- ented design methodology. CS 537. Programming for GIS (3) Prerequisite: Computer Science 310 or Geography 484. Customization of Geographic Information Science application development platforms with emphasis on object oriented programming and component architecture. Prominent examples are Map Objects with Visual Basic, Map Objects with Java. Considerable programming effort required, especially in Graphical User Interface development. CS 540. Software Internationalization (3) Prerequisite: Computer Science 310. Principles, techniques, and resources for design and implementa- tion of software localizable to multiple languages and/or cultures, including detailed examination of internationalization features provided by one or more widely used modern programming languages. CS 541. Online Documentation and Help Systems (3) Prerequisite: Computer Science 310. Design, implementation, and maintenance of online documenta- tion and help systems, including authoring principles and standards; theory and practice of single-source content management; survey of available development tools and resources; internationalization; and project management. CS 542. XML for Multilingual and Multicultural Applications (3) Prerequisite: Computer Science 310. Principles, techniques, and resources for designing and utilizing globalized XML documents in multilingual and multicultural informa- tion systems. CS 545. Introduction to Web Application Development (3) (Offered only in Extension) Prerequisite: Computer Science 310. World Wide Web application development. XHTML, CSS, Javascript, client-side and server-side scripting, PHP and CGI pro- gramming with Perl. Application integration with SQL database systems. CS 546. Human Computer Interfaces (3) (Offered only in Extension) Prerequisites: Computer Science 310 and 320. Common interface idioms and support available for loose integra- tion into aesthetically appealing and practical, efficient interaction between humans and machine. Editors, browsers, games, networking sites, posting boards, etc. Principles that are ubiquitous among tools for HCI development. CS 547. Programming and Scripting Languages for Web Applications (3) (Offered only in Extension) Prerequisites: Computer Science 310 and 320. Principles and practice of dynamic and scripting and functional languages used in web applications. Basic language concepts, data structures in dynamic languages, code structure, code quality, test- ing, string manipulation, dynamic code generation. CS 550. Artificial Intelligence (3) Prerequisites: Computer Science 108 and either Mathematics 245 or 523. Heuristic approaches to problem solving. Systematic methods of search of the problem state space. Theorem proving by machine. Res- olution principle and its applications. CS 551. User Interface Environments (3) Prerequisites: Computer Science 310 and 320. Design of user-machine interfaces in interactive systems. Problems faced by user of an interactive system; basic issues and principles involved in design and implementation of good and friendly user-machine graphical interfaces. CS 552. Artificial Intelligence II (3) Prerequisite: Computer Science 550. Limitations of symbol-based approach to artificial intelligence from Computer Science 550. Presented alternatives are genetic and proba- bilistic approaches, connectionist and emergent representation and learning, natural language processing, intelligence measures and cognitive models. Seminal publications shaping these techniques. CS 553. Neural Networks (3) Prerequisites: Computer Science 320 and Mathematics 254. Principles of neural networks, their theory and applications. CS 556. Robotics: Mathematics, Programming, and Control (3) Prerequisites: Computer Science 320, Mathematics 254, knowl- edge of the C programming language. Robotic systems including manipulators, actuators, sensors, and controllers. Kinematics of planar robots. Design and implementation of robot joint controllers. Robot programming languages and environ- ments, and robot command interfaces. CS 558. Computer Simulation (3) Prerequisites: Computer Science 310 and Statistics 550. Methodology of simulation for discrete and continuous dynamic systems. State-of-the-art programming techniques and languages. Statistical aspects of simulation. Students will design, program, exe- cute, and document a simulation of their choice.
  • 4. Computer Science 204 SDSU General Catalog 2012-2013 CS 559. Computer Vision (3) Prerequisites: Computer Science 310 and Mathematics 254. Algorithms and computer methods for processing of images. Visual perception as a computational problem, image formation, char- acterization of images, feature extraction, regional and edge detection, computer architectures for machine vision. CS 560. Algorithms and Their Analysis (3) Prerequisite: Computer Science 310. Algorithms for solving frequently occurring problems. Analysis techniques and solutions to recurrence relations. Searching and sort- ing algorithms. Graph problems (shortest paths, minimal spanning trees, graph search, etc.). NP complete problems. Not acceptable for the M.S. degree in Computer Science. CS 562. Automata Theory (3) Prerequisite: Mathematics 245 or 521A. Definition of finite automata. Classification of finite automaton definable languages. Minimization of finite automata. Nondeterminis- tic finite automata. Sequential machines with output. Regular sets and expressions. Introduction to grammars. CS 570. Operating Systems (3) Prerequisites: Computer Science 310, 370, and knowledge of the C programming language. File systems, processes, CPU scheduling, concurrent program- ming, memory management, protection. Relationship between the operating system and underlying architecture. Not acceptable for the M.S. degree in Computer Science. CS 572. Microprocessor Architecture (3) Prerequisites: Computer Science 370 and knowledge of the C pro- gramming language. Architecture of state-of-the-art microprocessor. Internal pipeline, internal cache, external cache, and memory management. Programming a uniprocessor. Communication among computers in a distributed environment. Architecture and programming of a multipro- cessor system. CS 574. Computer Security (3) Prerequisites: Computer Science 310; Mathematics 245; Statistics 550; and credit or concurrent registration in Computer Science 570. Principles of computer security and application of principles to operating systems, database systems, and computer networks. Top- ics include encryption techniques, access controls, and information flow controls. CS 576. Computer Networks and Distributed Systems (3) Prerequisite: Credit or concurrent registration in Computer Science 570. Basic networking concepts such as seven-layer reference model, transmission media, addressing, subnetting and supernetting, net- working devices, LANs and WANs, internetworking, distributed processing, and client-server model. Basic concepts and protocols of TCP/IP protocol suite and basic Internet services. CS 580. Client-Server Programming (3) Prerequisites: Computer Science 570 and knowledge of an object- ori- ented programming language. Recommended: Computer Science 576. Client-server model, networking protocols for client-server pro- grams, algorithmic issues in client-server programs, client-server protocols, implementing client-server applications. CS 581. Computational Linguistics (3) (Same course as Linguistics 581) Prerequisites: Computer Science 320 or Linguistics 571; Linguis- tics 570 or Mathematics 245. Basic concepts in computational linguistics including regular expressions, finite-state automata, finite-state transducers, weighted finite-state automata, and n-gram language models. Applications to phonology, orthography, morphology, syntax. Probabilistic models. Statistical techniques for speech recognition. CS 582. Introduction to Speech Processing (3) Prerequisite: Computer Science 310. Fundamentals of speech processing and speech recognition. Physical aspects of speech production and perception. Mathematical models for speech recognition. Corpus development: data collection, processing, and evaluation. Applications of speech processing and associated research topics. CS 583. 3D Game Programming (3) Prerequisite: Computer Science 310 or equivalent programming background. Development of programming skills using software environment of a game engine and its scripting language. 3D concepts for game play, modeling, and programming. Roles needed in software development team. Contrast creation of original 3D object models for game world with incorporation of pre-created generic models. CS 596. Advanced Topics in Computer Science (1-4) Prerequisite: Consent of instructor. Selected topics in computer science. May be repeated with the approval of the instructor. See Class Schedule for specific content. Limit of nine units of any combination of 296, 496, 596 courses appli- cable to a bachelor's degree. Maximum credit of six units of 596 applicable to a bachelor's degree. Credit for 596 and 696 applicable to a master's degree with approval of the graduate adviser. GRADUATE COURSES Refer to the Graduate Bulletin. For additional courses useful to computer scientists, see: Mathematics 541. Introduction to Numerical Analysis and Computing Mathematics 542. Introduction to Numerical Solutions of Differential Equations Mathematics 561. Applied Graph Theory Mathematics 579. Combinatorics