• No results found

Undergraduate Handbook

N/A
N/A
Protected

Academic year: 2021

Share "Undergraduate Handbook"

Copied!
49
0
0

Loading.... (view fulltext now)

Full text

(1)

Department of Computer Science

Undergraduate Handbook

Fall 2014 Edition

Your Key To Success

California State University, Fullerton

Fullerton, CA 92834-6870

(2)

Computer

 

Science

 

Department

  

The faculty and staff of the Computer Science Department welcome you into our program and sincerely wish you good luck on your journey into higher education, and continued success. Whenever you have a question about the Department—its policies, its curriculum, its services, your progress, or anything else—feel free to contact us.

In person: Room CS-522 By telephone: (657) 278-3700

By FAX: (657) 278-7168

By e-mail: [email protected] On the Web: http://cs.fullerton.edu/.

By mail: California State University, Fullerton Department of Computer Science P.O. Box 6870

(3)

Table of Contents

Introduction ... 3 

Computer Science ... 3 

The Department ... 4 

Advisement ... 5 

General Education (GE) Advisement ... 5 

Major Advisement ... 5 

Required Advisement ... 5 

First-Time Freshmen ... 5 

Undergraduate Transfers ... 6 

Nearing Graduation (one year) ... 6 

Probation ... 6 

General Advice ... 6 

Placement Examinations ... 7 

Computer Science Placement Examination ... 7 

Advanced Placement Examination Scores ... 7 

Mathematics Qualifying Examination (MQE) ... 7 

Required Courses for Major ... 9 

Computer Science Prerequisite Tree ... 9 

Computer Science Core ... 10 

Lower Division Core (18 units) ... 10 

Upper Division Core (28 units) ... 10 

Examination in Programming Proficiency (EPP) ... 11 

Upper Division Writing Requirement ... 11 

Elective Track Requirements ... 12 

Multimedia and Digital Games (MG) ... 12 

Internet and Enterprise Computing (IE) ... 12 

Software Engineering (SE) ... 13 

Scientific Computing (SC) ... 13 

Custom (CT) ... 13 

Independent Study ... 14 

Mathematics and Science ... 14 

Mathematics ... 14 

Science ... 14 

General Education ... 15 

General Education Framework ... 15 

Minimum Academic Requirements ... 16 

Course Transfer ... 16 

Courses by Semester Samples ... 17 

Required Courses For Minor ... 25 

Academic Internships ... 27 

Student Services and Activities ... 29 

Open Computer Labs ... 29 

Computer Accounts ... 29 

Scholarship Information ... 29 

Computer Science Organizations ... 30 

(4)

CSUF's Information Security Society (CSUFSec)………. 30

The Upsilon Pi Epsilon (UPE) ... 30 

Video Game Design Club ... 31 

Full-Time Faculty ... 33 

Course Descriptions ... 35 

Computer Science Courses ... 35 

Related Courses for Computer Science Majors ... 42  Updated and revised by David Falconer and Sandra Boulanger – July 2013

(5)

Introduction

Computer Science

Computer Science is the systematic study of computing systems and computation. The body of knowledge contains the theoretical foundation for understanding computing systems and methods, design methodology, algorithms, and software and hardware tools.

The Department of Computer Science offers these unique programs, which balance the theory and practice of computer systems:

 Bachelor of Science in Computer Science

 Master of Science in Computer Science

 Master of Science in Software Engineering.

 Minor in Computer Science

These programs cover a wide range of areas, including:

 multimedia and digital game technologies

 Internet and enterprise computing

 wireless and mobile computing

 databases and data mining

 computer security

 software engineering

 computational bioinformatics.

Computer Science prepares graduates for rewarding careers in all areas of business, government, education and industry. These organizations, large and small, need computer professionals to address their needs with specific programs and systems. Computer science professionals tackle complicated problems and create computer solutions to solve them, devising new ways to use computers. They apply their knowledge of computers and computational methods to build new systems such as:

 a navigation system for a new space vehicle

 a marketing research and analysis program for a large corporation

 a loan analysis system for a bank

 computer networking and Internet solutions

 database systems

 Internet application systems

 digital games

 intelligent systems (robots and computer vision)

(6)

The Department

We offer high-quality degree programs in Computer Science and Software Engineering that maintain a good balance between the theory behind the fundamental concepts and the technology of applying those concepts. You will gain a balanced knowledge of the two, so that you

understand today’s technology and have the foundation needed to adapt to tomorrow’s advances. Accreditation: The BS program in Computer Science is accredited by the Computing

Accreditation Commission of ABET, http://www.abet.org.

This handbook covers information on how to earn a Bachelor of Science or a Minor in Computer Science, and contains information relevant to students pursuing them. If you are entering the Master of Science in Computer Science, please trade this handbook for a copy of the Graduate Handbook. If you are entering the Master of Science in Software Engineering, please visit http://mse.ecs.fullerton.edu.

The following program educational objectives and program outcomes have been established for the Bachelor of Science in Computer Science:

Program Educational Objectives  

A. Technical Growth – Graduates will be successful in modern computing practice, integrate into the local and global workforce, and contribute to the economy of California and the nation B. Professional Skills – Graduates will continue to demonstrate the professional skills necessary

to be competent employees, assume leadership roles, and have career success and satisfaction C. Professional Attitude and Citizenship – Graduates will become productive citizens with high

ethical and professional standards, who make sound technical or managerial decisions, and have enthusiasm for the profession and professional growth

Program Outcomes 

 Able to apply knowledge of computing and mathematics appropriate to the discipline

 Able to analyze a problem, and identify and define the computing requirements appropriate to its solution

 Able to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates

comprehension of the tradeoffs involved in design choices

 Able to design, implement and evaluate a computer-based system, process, component, or program to meet desired needs

 Able to apply design and development principles in the construction of software systems of varying complexity

 Able to function effectively on teams to accomplish a common objective

 Able to communicate effectively with a range of audiences

 Recognize the need for and able to engage in continuing professional development

 Able to use current techniques, skills, and tools necessary for computing practice

(7)

Advisement

It can be frustrating to find out that you took a class that wasn’t useful for your course of study. Not being able to take a class when you want because of a needed prerequisite is even worse—it slows your progress and can delay your graduation.

To avoid problems like these, the University offers advisement counseling to all students. This is your opportunity to review your progress toward your degree and to discuss electives that match your career goals. Advisers are your guides throughout your academic career, and they are much more qualified to assist than the person sitting next to you in English 101 class.

General Education (GE) Advisement

The University encourages all students to seek GE advisement, each semester, well in

advance of registration. You may obtain information about the Cal State Fullerton GE

curriculum and degree requirements by visiting the Academic Advisement Center in

UH-123B. GE advising is offered on a walk-in basis, Monday through Friday. You must

take a recent printed copy of your Titan Degree Audit (TDA) when you go to meet with a

GE adviser.

Major Advisement

You have to set up an advisement appointment yourself. Visit the Computer Science office (CS-522) or contact us at (657) 278-3700 and ask for an advisement appointment.

During your advisement, the department adviser will write all important decisions and advice on an Advising Session Notes form. You will receive a copy of this form, and the original will go into your file. Make sure that this record covers all of the important information that was discussed.

Required Advisement

The College of Engineering and Computer Science places a registration hold on all undergraduate students once a year to ensure the student meets with a department advisor. Students whose last name begins A thru M will have a hold each Fall term. Those with last names N thru Z will find a registration hold each Spring term. You will not be able to register for any courses until you consult with a department advisor and the hold is subsequently removed.

First-Time Freshmen

You should make an appointment to see the department adviser as early as possible. It’s very important that you understand the program and the sequence in which you should take courses.

(8)

Undergraduate Transfers

You should make an advisement appointment as early as possible. The department adviser can answer your questions about transfer credit for general education courses and can evaluate courses that apply to your major. Please bring any transcripts or grade reports you have, official or not, to this appointment. A catalog from your prior institution may prove useful, particularly from those outside the Orange County area.

For up-to-date information on equivalent courses, please visit http://www.assist.org.

Nearing Graduation (one year)

After completing 90 units of coursework, you are eligible to apply for graduation. The only way to apply for graduation is online through the TITAN Online Student Center. You cannot graduate without a completed Grad Check. The current University Catalog has more information about grad checks—look up graduation requirements, bachelor’s degree in the index.

Probation

If you are on probation, it is definitely time to see an adviser. Until you do so, a hold will be in place on your file, preventing you from registering in classes. Your adviser will discuss with you the problems that led to your probation and review strategies you should take to get off probation. Make your advisement appointment early so your registration is not held up.

General Advice

Be sure to follow the course requirements for your catalog year. Your catalog year is determined by the Admissions Office and is a part of your student records. Typically, this is the year you began college; occasionally an adviser may approve a later year. If your catalog year precedes 2011, you should obtain the appropriate handbook online from the Computer Science Department website.

(9)

Placement Examinations

In many subjects of study at CSUF, there are multiple classes in which you may begin your studies depending upon your previous experience and studies. The University has developed placement examinations that may be used to determine the best starting point for you. It is essential that you be placed in the right course! Starting out too low where you will not learn anything new is a waste of time. Starting out too high can be frustrating and stressful.

For the Computer Science undergraduate student, there are two important placement exams: the

Computer Science Placement Examination, and the Mathematics Qualifying Examination. Computer Science Placement Examination

Our curriculum begins with a three course sequence, CPSC 120, 121, 131, covering concepts of programming and data structures. You may have gained knowledge of these topics in a variety of ways. We want to position you properly in this sequence.

There are several ways to establish your proper placement:

1. You may have transferred in courses you have taken elsewhere.

2. You may have submitted Advanced Placement scores on one of the AP tests for computer science.

3. You may establish your knowledge of subject matter in one or more of these courses by taking a challenge exam. Consult the department for current deadlines.

4. You may take the Computer Science Placement Examination to waive one or more of these courses. Consult the on-line Registration Guide for exam dates.

If you take the placement exam and receive a waiver in one or more of these courses, you will have to take additional elective course work to satisfy the 124 unit graduation requirement. For additional information, please contact the Computer Science Department Office (CS-522, 657-278-3700, [email protected])

Advanced Placement Examination Scores

If you earned the following AP scores, unit and course credit will be applied as follows:

AP Exam Title Score Units Credit

Computer Science A 3 or 4 3 CPSC 120

5 6 CPSC 120 and 121

Mathematics Qualifying Examination (MQE)

Before enrolling in Math 150A, you must either have recently passed Math 125 (Pre-calculus), or an equivalent course at another institution, or passed the Mathematics Qualifying Exam.

Additional information on this exam is available in the online registration guide, and from the Fullerton Testing Center, University Hall 229, and (657) 278-3838.

(10)
(11)

Required Courses for Major

The B.S. degree program in Computer Science meets the knowledge units recommended by the

professional accreditation body, ABET and professional societies, ACM and IEEE-CS, and addresses the current technology and new advancements.

The B.S. degree in Computer Science requires 124 units of course work in the following categories:

 Computer Science Core (46 units)

 Computer Science Track Electives (15 units)

 Mathematics and Science (30 units)

 General Education (33 units) Computer Science Prerequisite Tree

(12)

Computer Science Core Lower Division Core (18 units)

CPSC 120 Introduction to Programming1 CPSC 121 Programming Concepts¹ CPSC 131 Data Structures Concepts

CPSC 223 Object-oriented Programming Language2

CPSC 240 Computer Organization and Assembly Language CPSC 254 Software Development with Open Source Systems Upper Division Core (28 units)

CPSC 311 Technical Writing for Computer Science CPSC 315 Social and Ethical Issues in Computing CPSC 323 Programming Languages and Translation CPSC 332 File Structures and Database Systems CPSC 335 Algorithm Engineering

CPSC 351 Operating Systems Concepts CPSC 362 Software Engineering

CPSC 440 Computer System Architecture CPSC 471 Computer Communications CPSC 481 Artificial Intelligence Notes

1. Basic Programming Course Exemption

Computer Science 120 (Introduction to Programming) and Computer Science 121 (Programming Concepts) can be waived if you pass the Computer Science Placement Exam, which is described in an earlier section. If this course is waived, you will need to take additional elective courses to meet the 124 unit degree requirements.

2. Object-Oriented Programming Language

You must take 3 units of a modern object-oriented programming language course other than C++. Computer Science 223J (Java Programming), 223H (Visual Basic Programming), 223N (C# Programming), or 223P (Python Programming) meets this requirement.

(13)

Examination in Programming Proficiency (EPP)

You must pass the Examination in Programming Proficiency (EPP) before taking most of the 300-level and 400-level Computer Science courses. This examination determines whether you have the basic programming skills needed to succeed in upper division courses. It focuses on the concepts and skills covered in CPSC 121 and CPSC 131.

The EPP is given as part of CPSC 301 (Programming Lab Practicum). You must register in CPSC 301 and attend the first two weeks of the course. After an orientation meeting at the first class meeting, you will take a two-part exam during the second and third class meetings. You will be notified at the fourth meeting whether you have passed or not. If you pass, you may drop the course before the end of the second week of classes. You are responsible for dropping the class; you will not be automatically dropped if you pass the exam. If you don’t pass, you must continue in CPSC 301 and work on your programming skills. Passing CPSC 301 is equivalent to passing the Examination in Programming Proficiency.

The EPP is a prerequisite or co-requisite for several 300-level core courses as shown in the prerequisite tree at the front of this chapter. These courses are prerequisites in turn for other 300- or 400-level courses. The EPP is a prerequisite for the remaining 400-level courses that aren’t in this thread, except for CPSC 440 (Computer System Architecture). There are very few upper-division courses that you can take without passing the EPP or CPSC 301. You should consult the Department Office for advisement.

Upper Division Writing Requirement

The University requires every bachelor degree candidate to take an upper division writing course. CPSC 311 (Technical Writing for Computer Science) meets the writing course requirement. This course must be passed with a minimum grade of C (2.0) or better.

(14)

Elective Track Requirements

Computer Science is a very broad field and the technologies in each area change rapidly. Elective tracks provide you with flexible choices of elective courses so you can quickly adapt to rapid technology advancements and meet your professional goals.

You must select an elective track aimed at your specific career goals. There are five tracks to choose from:

 Multimedia and Digital Games

 Internet and Enterprise Computing

 Software Engineering

 Scientific Computing

 Custom

You may need to take additional elective course work if you skipped CPSC 120 and/or CPSC 121, in order to complete the required number of computer science units.

Multimedia and Digital Games (MG)

Interactive entertainment and computer-animated visual effects are now part of our mainstream culture. Creating such sophisticated computer graphics in the video games and animations requires a delicate blending of art with science by teams of highly skilled professionals. Artists, animators, writers, designers, and software developers work long hours with cutting-edge technology and tools. This track gives you the necessary skills in multimedia/digital animation and simulation, human/computer interfaces, digital game development and production. You must take these courses:

 CPSC 386 Introduction to Game Design & Production

 CPSC 484 Principles of Computer Graphics

 CPSC 486 Game Programming

 CPSC 489 Game Development Project

 Any adviser-approved 3 unit 300/400 level Computer Science course Internet and Enterprise Computing (IE)

Internet is an essential technology for most computer users. Although Internet technology provides many people with convenience and opportunity, it provides computer scientists with challenges since the Internet applications must be scalable, distributed, secure, and high performance. This track gives you the skills needed to develop enterprise-wide Internet applications using current technologies. You must take these courses:

 CPSC 431 Database and Applications

 CPSC 473 Web Programming and Data Management

 CPSC 476 Java Enterprise Application Development

(15)

Software Engineering (SE)

Software engineering is the discipline of developing and maintaining large software systems that behave reliably and efficiently. Recently it has evolved in response to the increased importance of software in safety-critical applications and to the growing impact of large and expensive software systems in a wide range of situations. This track will prepare students to have necessary skills on how to assess customer needs, and develop usable and high quality software that meets those needs, and manage large scale software development projects. To complete this track, students must take the following courses:

 CPSC 462 Software Design

 CPSC 463 Software Testing or CPSC 466 Software Process

 CPSC 464 Software Architecture

 Any two adviser-approved 3 unit 300/400 level Computer Science courses Scientific Computing (SC)

Scientific Computing is the field of study concerned with constructing mathematical models and numerical solutions, using computers to solve scientific and engineering problems that typically require massive amounts of computation.

This track gives you the skills needed to construct mathematical models, adapt numerical

solutions, and develop computer software to solve scientific and engineering problems. You must take these courses:

 Math 250A Multivariate Calculus

 Math 250B Introduction to Linear Algebra & Differential Equations

 Math 340 Numerical Analysis

 Math 370 Mathematical Model Building

 Any adviser approved 3 unit 400-level Computer Science course

Completing the Mathematics courses listed above also meets the Mathematics minor requirements.

Custom (CT)

This track provides you with great flexibility to build your knowledge and skills in special areas of interest. You can use it to meet the requirements of specific industry sectors or companies, or your personal academic goals.

You may take any adviser-approved combination of 15 units of upper-division (300/400) courses selected from any elective track or this list:

 CPSC 303 Multimedia Concepts

 CPSC 322L Introduction to Computer-Aided Design

 CPSC 376 Client/Server systems with Java

 CPSC 433 Data Security and Encryption Techniques

 CPSC 459 Micro-Computer Software Systems

 CPSC 477 Introduction to Grid Computing

 CPSC 451 Advanced operating Systems

 CPSC 483 Data Mining and Pattern Recognition

 CPSC 485 Computational Bioinformatics

(16)

 CPSC 499 Independent Study

 EGGN 495 Internship in Computer Science

At least 9 units of the selected courses must be 400-level Computer Science courses. No more than 3 units of the courses can be 490–499 courses.

Independent Study

You may take CPSC 499 Independent Study to fulfill part of your electives. This course allows you to pursue topics of special interest beyond those of a regular course.

You must submit an Application For Independent Study to the department office, which will supply the form. The application must include a study plan and objectives, and must be approved by a supervising full-time faculty member and by the department chair.

You may take up to three units per semester, and apply a maximum of three units towards the degree. The University allows a maximum of nine units, but the Computer Science Department allows only three units.

You will not be able to register on-line for this course until the Computer Science Department Office grants permission to do so. You should call to verify that this has been done.

Mathematics and Science

The Accreditation Board for Engineering and Technology (ABET), the professional body that accredits our Computer Science program, requires 30 units of mathematics and science courses. Mathematics

You must take the following mathematics courses:

MATH 150A, 150B Analytic Geometry and Calculus (4, 4 units) MATH 270A, 270B Mathematical Structures (3, 3 units)

MATH 338 Statistics Applied to Natural Sciences (4 units)

Note: You must demonstrate qualifications before you may enroll in Mathematics 150A. Please refer to the prior section about theMathematics Qualifying Examination (MQE) for additional information.

Science

You must take one of the following biology course and lab combinations: BIOL 101, 101L Elements of Biology (3, 1 units)

or

BIOL 172 Cellular Basis of Life (5 units) You must take one of these physical science series:

PHYS 225, 225L Fundamental Physics: Mechanics (3, 1 units)

PHYS 226, 226L Fundamental Physics: Electricity and Magnetism (3, 1 units) or

CHEM 120A General Chemistry (5 units)

(17)

General Education

Your education can’t be confined to the Computer Science building. To earn any bachelor’s degree, you must venture forth to the rest of the campus and achieve a General Education. The University usually requires a minimum of 51 semester units of general education courses, selected from an approved list and taken for a letter grade. However, the Computer Science Department has an exception for 6 units, reducing that requirement to 45 units. The Mathematics and Science courses described in the previous section cover 12 of those units, leaving a remainder of 33 units.

If you are a transfer student, at least 9 units of your general education courses must be at the upper division level—course numbers in the 300s and 400s. They must be taken in residence at CSUF after you have reached junior standing (when you have completed 60 units total).

You have many options available to fulfill the University’s general education requirements. The University Catalog has a chapter devoted to these requirements. An updated list of approved general education courses is published in the Fall and Spring registration guides. Academic Advising, in room UH-123, has advisers who can help you understand and meet these requirements.

General Education Framework

The table below contains a recommended set of courses that follows the University Catalog’s description of general education requirements.

Area A: Core Competencies

A.1 Oral Communication Human Communications 102 (Public Speaking) 3 A.2 Written Communication English 101 (Beginning College Writing) 3 A.3 Critical Thinking Philosophy 106 (Introduction to Logic) 3 Area B: Scientific Inquiry and Quantitative Reasoning

The courses described in the Mathematics and Science section cover this 12-unit requirement.

Area C: Arts and Humanities

C.1 Introduction to the Arts Music 101 (Music Theory for Non-Music Majors) or

Art 101 (Introduction to Art) 3 C.2 Introduction to the Humanities Choose any course in this category 3 C.3 Explorations in the Arts and Philosophy 312 (Business and Professional

Humanities Ethics) 3

C.4 Origins of World Civilizations History 110A (World Civilizations to the 16th

Century) 3

(18)

---Area D: Social Sciences

D.1 Introduction to the Social Sciences Economics 100

(The Economic Environment) 3

D.2 World Civilizations and Cultures

Not applicable for Computer Science majors who take History 110A in area C.4. D.3 American History, Institutions American Studies 201

And Values (Introduction to American Studies) 3 D.4 American Government Political Science 100

(American Government) 3

D.5 Explorations in Social Sciences American Studies 301

(American Character) 3

Area E: Lifelong Learning

Not applicable for Computer Science majors. Area Z: Cultural Diversity

American Studies 301 satisfies the cultural diversity course requirement. Note: Courses in areas A.1, A.2, A.3, and B.4 must be completed with C or better. Minimum Academic Requirements

Courses taken toward your major must be taken on a traditional letter grade basis with a grade of C- or higher with the following exceptions:

 Up to a total of six units of credit with grades of D-, D, or D+, may be earned in elective tracks, mathematics (unless satisfying GE category B.4), and science courses

 The upper division writing course, CPSC 311, requires a minimum grade of C The GPA for courses required in your major must remain at or above 2.0.

Courses used to satisfy GE requirements A.1, A.2, A.3, and B.4 must be passed with a minimum grade of C. Please see a department adviser for further details. 

Course Transfer

If you’re a transfer student from a local community college, you should refer to

http://www.assist.org . The department adviser can help you with these equivalencies and give the required approval. Please refer to the Advisement chapter’s section on Undergraduate Transfers. Transfer courses cannot be applied toward the major or accepted as prerequisites until the

Department receives a transcript from the college where the courses were taken. You can provide an unofficial copy of your transcript to the Department for short-term advising purposes, but you must provide an official transcript to the University as soon as it’s available. You should bring the sealed official transcript to the Department office so the staff can copy it and take it to University Admissions and Records.

(19)

Courses by Semester Samples

Multimedia

 

and

 

Digital

 

Games

 

This sample four-year study plan will help you plan your path towards a B.S. degree in Computer Science which includes the Multimedia and Digital Games Elective Track. It’s a guideline with a suggested sequence of Computer Science and General Education (GE) courses that can be used by many students, but you can adapt it to your personal needs and goals. There is a Progress Check Sheet in Appendix A, which lists all of the classes required for the major. You can use it to track the progress of your education.

Semester 1 16 units Semester 2 16 units

Oral Communication (GE A1) or English 101 (GE A2)

3 Oral Communication (GE A1) or English 101 (GE A2)

3 Math 150A (GE B.4 & major) 4 Math 150B (major) 4

CPSC 120 (major) 3 CPSC 121 (major) 3

History 110A (GE C4) 3 Critical Thinking (GE A3) 3 Intro to the Arts (GE C1) 3 Intro to Humanities

(GE C2)

3 Note: Any remediation courses must be completed by the end of your second semester.

Semester 3 16 units Semester 4

13 - 15 units

Math 270A (major) 3 Math 270B (major) 3

CPSC 131 (major) 3 CPSC 240 (major) 3

American History (GE D3) 3 CPSC 254 (major) 3 Political Science (GE D4) 3 CPSC 301 (major) CR/NC Physics 225+L

(GE B1, B3 & major)

4 Phys 226+L (major) 4

Note: Take CPSC 301 immediately after you successfully complete CPSC 131.

Semester 5 16 units Semester 6 16 units

CPSC 311 (major) 3 CPSC 223N (major) or Intro to Social Sciences (GE D1)

3

CPSC 323 (major) 3 CPSC 315 (major) 1

CPSC 332 (major) 3 CPSC 335 (major) 3

CPSC 386 (major) 3 CPSC 362 (major) 3

Math 338 (GE B5 & major) 4 CPSC 484 (major) 3 Upper Division GE (C3) 3 Note: Apply for Graduation during Semester 7.

(20)

Semester 7

16 - 17

units Semester 8 15 units

CPSC 223J (major) or Intro to Social Sciences (GE D.1)

3 CPSC 440 (major) 3

CPSC 351 (major) 3 CPSC 471 (major) 3

CPSC 481 (major) 3 CPSC 489 (major) 3

CPSC 486 (major) 3 Track Elective (major) 3

Biol 101+L or Biol 172 (GE B2, B3 & major)

4-5 Upper division GE (D5) 3

Internet

 

and

 

Enterprise

 

Computing

This sample four-year study plan will help you plan your path towards a B.S. degree in

Computer Science which includes the Internet and Enterprise Computing Elective Track.

It’s a guideline with a suggested sequence of Computer Science and General Education

(GE) courses that can be used by many students, but you can adapt it to your personal

needs and goals. There is a

Progress Check Sheet

in Appendix A, which lists all of the

classes required for the major. You can use it to track the progress of your education.

Semester 1 16 units Semester 2 16 units

Oral Communication (GE A1) or English 101 (GE A2)

3 Oral Communication (GE A1) or English 101 (GE A2)

3 Math 150A (GE B.4 & major) 4 Math 150B (major) 4

CPSC 120 (major) 3 CPSC 121 (major) 3

History 110A (GE C4) 3 Critical Thinking (GE A3) 3 Intro to the Arts (GE C1) 3 Intro to Humanities

(GE C2)

3 Note: Any remediation courses must be completed by the end of your second semester.

Semester 3

16 - 17

units Semester 4

12 - 15 units

Math 270A (major) 3 Math 270B (major) 3

CPSC 131 (major) 3 CPSC 301 (major) CR/NC

American History (GE D3) 3 CPSC 254 (major) 3 Political Science (GE D4) 3 CPSC 223N (major) or Intro to

Social Sciences (GE D1)

3

Phys 225+L or Chem 120A or Geol 101+L (GE B1, B3 & major)

4 - 5 Phys 226+L or Chem 125 or Geol 201+L (major)

3 - 4

(21)

Semester 5 16 units Semester 6 17 units

CPSC 223J (major) 3 CPSC 315 (major) 1

CPSC 240 (major) 3 CPSC 335 (major) 3

CPSC 311 (major) 3 CPSC 362 (major) 3

CPSC 351 (major) 3 CPSC 440 (major) 3

Math 338 (GE B5 & major) 4 Track Elective 1 (major) 3 Upper Division GE (D5) 3 Note: Apply for Graduation during Semester 7.

Semester 7

16 - 17

units Semester 8 15 units

CPSC 323 (major) 3 CPSC 431 (major) 3

CPSC 332 (major) 3 CPSC 471 (major) 3

CPSC 476 (major) 3 CPSC 473 (major) 3

CPSC 481 (major) 3 Track Elective 2 (major) 3 Biol 101+L or Biol 172 (GE B2,

B3 & major)

4-5 Upper division GE (C3) 3

Software

 

Engineering

 

This sample four-year study plan will help you plan your path towards a B.S. degree in Computer Science which includes the Software Engineering Elective Track. It’s a guideline with a

suggested sequence of Computer Science and General Education (GE) courses that can be used by many students, but you can adapt it to your personal needs and goals. There is a Progress Check Sheet in Appendix A, which lists all of the classes required for the major. You can use it to track the progress of your education.

Semester 1 16 units Semester 2 16 units

Oral Communication (GE A1) or English 101 (GE A2)

3 Oral Communication (GE A1) or English 101 (GE A2)

3 Math 150A (GE B.4 & major) 4 Math 150B (major) 4

CPSC 120 (major) 3 CPSC 121 (major) 3

History 110A (GE C4) 3 Critical Thinking (GE A3) 3 Intro to the Arts (GE C1) 3 Intro to Humanities

(GE C2)

3

(22)

Semester 3 16 units Semester 4

12 - 15 units

Math 270A (major) 3 Math 270B (major) 3

CPSC 131 (major) 3 CPSC 301 (major) CR/NC

American History (GE D3) 3 CPSC 254 (major) 3 Political Science (GE D4) 3

CPSC 223N (major) or Intro

to Social Sciences (GE D1)

3

Phys 225+L or Chem 120A or Geol 101+L (GE B1, B3 & major)

4 Phys 226+L or Chem 125 or Geol 201+L (major)

3 - 4 Note: Take CPSC 301 immediately after you successfully complete CPSC 131.

Semester 5 16 units Semester 6 16 units

CPSC 240 (major) 3 CPSC 315 (major) 1

CPSC 311(major) 3 CPSC 335 (major) 3

CPSC 351 (major) 3 CPSC 362 (major) 3

CPSC 223J or 332 (major) 3 Track elective 1 (major) 3 Math 338 (GE B5 & major) 4 Track elective 2 major) or Intro

to Social Sciences (GE D1)

3 Upper Division GE (D5) 3 Note: Apply for Graduation during Semester 7.

Semester 7

16-17

units Semester 8 15 units

CPSC 323 ( major) 3 CPSC 440 (major) 3 CPSC 462 (major) 3 CPSC 464 (major) 3 CPSC 481 (major) 3 CPSC 471 (major) 3 CPSC 332 or 463 or Track elective 2 (major) 3 CPSC 466 or Track elective 2 (major) 3 Biol 101+L or Biol 172 (GE B2,

B3 & major)

(23)

Scientific

 

Computing

 

This sample four-year study plan will help you plan your path towards a B.S. degree in Computer Science which includes the Scientific Computing Elective Track. It’s a guideline with a

suggested sequence of Computer Science and General Education (GE) courses that can be used by many students, but you can adapt it to your personal needs and goals. There is a Progress Check Sheet in Appendix A, which lists all of the classes required for the major. You can use it to track the progress of your education.

Semester 1 16 units Semester 2 16 units

Oral Communication (GE A1) or English 101 (GE A2)

3 Oral Communication (GE A1) or English 101 (GE A2)

3 Math 150A (GE B.4 & major) 4 Math 150B (major) 4

CPSC 120 (major) 3 CPSC 121 (major) 3

History 110A (GE C4) 3 Critical Thinking (GE A3) 3 Intro to the Arts (GE C1) 3 Intro to Humanities

(GE C2)

3 Note: Any remediation courses must be completed by the end of your second semester.

Semester 3

16 - 17

units Semester 4

12 - 15 units

Math 270A (major) 3 Math 270B (major) 3

CPSC 131 (major) 3 CPSC 301 (major) CR/NC

American History (GE D3) 3 CPSC 254 (major) 3 Political Science (GE D4) 3 CPSC 223N (major) or Intro to

Social Sciences (GE D1)

3

Phys 225+L or Chem 120A or Geol 101+L (GE B1, B3 & major)

4 - 5 Phys 226+L or Chem 125 or Geol 201+L (major)

3 - 4

Note: Take CPSC 301 immediately after you successfully complete CPSC 131.

Semester 5

13 – 15

units Semester 6 16 units

CPSC 223J or 332 (major) 3 CPSC 315 (major) 1

CPSC 301 (major) CR/NC CPSC 335 (major) 3

CPSC 311 (major) 3 CPSC 362 (major) 3

CPSC 351 (major) 3 Math 250A (major) 4

Math 338 (GE B5 & major) 4 Track Elective (major) or Intro to Social Sciences (GE D1)

3 Upper Division GE (D5) 3 Note: Apply for Graduation during Semester 7.

(24)

Semester 7 16 units Semester 8 16-17 units CPSC 323 (major) 3 CPSC 440 (major) 3 CPSC 481 (major) 3 CPSC 471 (major) 3 CPSC 332 or Math 340 or 370 (major) 3 Math 340 or 370 (major) 3 Math 250B (major) 4 Track Elective (major) or Intro

to Social Sciences (GE D1)

3 Upper Division GE (C3) 3 Biol 101+L or Biol 172 (GE

B2, B3 & major)

4-5

Custom

 

Elective

 

Track

 

This sample four-year study plan will help you plan your path towards a B.S. degree in Computer Science which includes the Customized Elective Track. It’s a guideline with a suggested

sequence of Computer Science and General Education (GE) courses that can be used by many students, but you can adapt it to your personal needs and goals. There is a Progress Check Sheet

in Appendix A, which lists all of the classes required for the major. You can use it to track the progress of your education.

Semester 1 16 units Semester 2 16 units

Oral Communication (GE A1) or English 101 (GE A2)

3 Oral Communication (GE A1) or English 101 (GE A2)

3 Math 150A (GE B.4 & major) 4 Math 150B (major) 4

CPSC 120 (major) 3 CPSC 121 (major) 3

History 110A (GE C4) 3 Critical Thinking (GE A3) 3 Intro to the Arts (GE C1) 3 Intro to Humanities

(GE C2)

3 Note: Any remediation courses must be completed by the end of your second semester.

Semester 3

16 - 17

units Semester 4

12 - 15 units

Math 270A (major) 3 Math 270B (major) 3

CPSC 131 (major) 3 CPSC 223N (major) or Intro to Social Sciences (GE D1)

3 American History (GE D3) 3 CPSC 301 (major) CR/NC Political Science (GE D4) 3 CPSC 254 (major) 3

(25)

Semester 5 16 units Semester 6 17 units

CPSC 223J (major) or Intro to Social Sciences (GE D1)

3 CPSC 315 (major) 1

CPSC 240 (major) 3 CPSC 335 (major) 3

CPSC 311 (major) 3 CPSC 362 (major) 3

CPSC 351 (major) 3 CPSC 440 (major) 3

Math 338 (GE B5 & major) 4 Track Elective 1 (major) 3 Upper Division GE (D5) 3 Note: Apply for Graduation during Semester 7.

Semester 7

16-17

units Semester 8 15 units

CPSC 323 (major) 3 CPSC 471 (major) 3

CPSC 332 (major) 3 Track Elective 3 (major) 3 CPSC 481(major) 3 Track Elective 4 (major) 3 Track Elective 2 (major) 3 Track Elective 5 (major) 3 Biol 101+L or Biol 172 (GE B2,

B3 & major)

4-5 Upper division GE (C3) 3

Custom

 

Electives

 

for

 

Bioinfomatics

 

This sample four-year study plan will help you plan your path towards a B.S. degree in Computer Science which includes preparation for a career in Bioinformatics. It’s a guideline with a

suggested sequence of Computer Science and General Education (GE) courses. There is a

Progress Check Sheet in Appendix A, which lists all of the classes required for the major. You can use it to track the progress of your education.

Semester 1 16 units Semester 2 16 units

Oral Communication (GE A1) or English 101 (GE A2)

3 Oral Communication (GE A1) or English 101 (GE A2)

3 Math 150A (GE B.4 & major) 4 Math 150B (major) 4

CPSC 120 (major) 3 CPSC 121 (major) 3

History 110A (GE C4) 3 Critical Thinking (GE A3) 3 Intro to the Arts (GE C1) 3 Intro to Humanities

(GE C2)

3

(26)

Semester 3 17 units Semester 4

12 – 14 units

Math 270A (major) 3 Math 270B (major) 3

CPSC 131 (major) 3 CPSC 301 (major) CR/NC

American History (GE D3) 3 CPSC 240 (major) 3 Political Science (GE D4) 3 CPSC 254 (major) 3 Chem 120A (GE B1, B3 & major) 5 Chem 125 (major) 3 Note: Take CPSC 301 immediately after you successfully complete CPSC 131.

Semester 5 16 units Semester 6 16 units

CPSC 223P (major) 3 CPSC 315 (major) 1

Intro to Social Sciences (GE D1) 3 CPSC 335 (major) 3

CPSC 311 (major) 3 CPSC 362 (major) 3

CPSC 351 (major) 3 CPSC 440 (major) 3

Math 338 (GE B5 & major) 4 Track Elective 1 (major) 3 Upper Division GE (D5) 3 Note: Apply for Graduation during Semester 7.

Semester 7 17 units Semester 8 17 units

CPSC 323 (major) 3 CPSC 471 (major) 3

CPSC 332 (major) 3 CPSC 485 (major) 3

CPSC 481(major) 3 BIOL 273 (major) 5

Track Elective 2 (major) 3 Track Elective 3 (major) 3 Biol 172 (GE B2, B3 & major) 5 Upper division GE (C3) 3

(27)

Required Courses For Minor

There is a high demand for computer skills in many industries, particularly in the business and scientific fields. The benefits aren't limited to these fields—a minor in Computer Science will complement any field of study.

To select Computer Science as your minor, visit the Computer Science office (CS-522) and fill out a Request for Minor Objective form.

You must take 15 units of Computer Science courses, including these four (12 units):

 CPSC 120 Introduction to Programming (3 units)

 CPSC 121 Programming Concepts (3 units)

 CPSC 131 Data Structures Concepts (3 units)

 CPSC 313 The Computer Impact (3 units)

You must also take an adviser-approved 3-unit 300/400 level Computer Science elective course. You may have to take additional courses to meet the prerequisites for your Computer Science courses.

At least 6 units must be upper division (300/400 level) and completed at CSUF. At least 12 units, including the minimum 6 units of upper division course work, must be courses that are not being used to fulfill requirements for your major.

(28)
(29)

Academic Internships

(EGGN 495)

Learning takes place in many settings, not just the classroom. When you complete your educational career and are entering the professional job market for the first time, extensive professional experience can be highly beneficial. For this reason, the University and the

Computer Science Department maintain an active internship program as a service to all students interested in obtaining employment while still in school.

At Cal State Fullerton, academic internships are credit bearing. Students enroll in an internship course and complete course requirements. The number of units you receive depends on the number of hours you complete at your internship site.

1 unit = 40-60 hours, 2 units = 80-100 hours, 3 units = 120-150hours

An academic internship is a work-learning partnership between a student, the university, and a host company or organization that bears a direct relationship to a student’s major and professional goals.

EGGN 495 is a “supervision only” class. There are no class meetings. Students will receive a letter grade at the end of the semester based on their performance in the internship project. As far as the coursework is concerned, all that is required is that students complete the internship with the company and submit a final report by the end of the semester. The company name and the project supervisor’s name must be included in the report. The report does not have to be approved/signed by the company. Students should address the following items in the report:

1. Details of the project

2. Tasks student is primarily responsible for

3. What the student learned from the project he/she completed 4. How the project benefited the student from an academic standpoint Benefits of the internship program in Computer Science include:

 Paid work or non-paid work experience in the computer field.

 Job placement assistance from the Center for Internships and Community Engagement (CICE).

 Up to 3 units of credit.

We recommend that you consider an internship when you reach junior or senior status.

Finding

 

an

 

Internship

Students are responsible for seeking and securing internships for themselves. There are

two ways you search:

Option one: Find an internship in Titan Connection

Navigate to the

CSUF homepage, www.fullerton.edu

Log in to you Portal

Under

Quick Links

on your Student Portal page, click on

Career Center

If you have never been to this page before, you may have to fill out a short form

to access the database.

(30)

Click on

Jobs & Internships

on the blue toolbar on the left

Click on

Jobs & Internships on Titan Connection

Click on

Jobs & Internships

on the toolbar at the top toolbar on the webpage

Highlight and Click

Titan Connection jobs

Highlight

Academic Internships

under position type

Click

Search

Option Two: Find your own

If you found a site on your own and were offered to complete your academic

internship there, great! Simply ask the agency or organization to register in the CICE

database on our website,

www.fullerton.edu/cice/academicinternships.htm

Please allow a minimum of 3 weeks to complete site registration

Registration

 

Instructions

1.

Complete CICE Registration

Internship Course Approval Form

Navigate to

http://www.fullerton.edu/cice

Under “Students” Click on

CICE Registration

Log in using your Campus username and password and select: Academic

Internship

Complete the registration up to

Internship Course Approval Form

Print

the Internship Course Approval Form

and click “Log Out”

2. Submit the Internship Course Approval Form along with a copy of the internship offer

letter from the employer and an unofficial copy of your transcript to the Computer

Science office (CS-522) for review and approval.

3. After obtaining Department approval, take your documentation to the ECS Dean’s

office (CS-502) for further review and approval.

4. On approval, the ECS Dean’s office will issue a permit to enroll in the class.

International

 

Students

 

International students must obtain a

CPT I-20

from the International

Education and Exchange office in UH-244. Check with IEE for admissible dates

prior to completing the CICE Registration.

Additional Registration Steps

When completing the CICE Registration:

(1)

Print the following forms:

(a)

Internship Course Approval Form

(b)

Consent Form

(c)

Registration Complete Form.

(2)

If possible, obtain an official offer letter from your internship site.

(3)

Bring the CICE Registration forms and offer letter if available to CICE for

signature

(31)

Student Services and Activities

Many activities and services exist for students at CSUF; ranging from job placement to the Pub. You may refer to the University Catalog for information about many of the campus-wide student activities and services. Described below are some of the activities and services available

specifically for Computer Science students. Updated information is posted on the Computer Science Website at: http://cs.fullerton.edu/.

Open Computer Labs

The Computer Science Department maintains one open computer lab, which remains open for most of the standard campus operating hours. Signs posted on the door of the lab list its operating hours.

CS-200/CS-202 contains PCs with Internet access.

The University is equipped with a wireless network, which is accessible almost everywhere on campus except for dead zones such as the Arboretum and some distant parking lots. You can connect your laptop to this network by using your student portal’s login name and password. There is a campus wide computer center located in the basement of the library. This lab contains computers running the Windows and Macintosh operating systems. For more information about the campus computer center, just drop by or call the library at (657) 278-2633.

Computer Accounts

As a Computer Science student, you may get a special Titan computer account. Titan is a Linux based server used throughout the Computer Science Department and connected to the Internet. All functionality from email to surfing the World Wide Web is available through this account. To request a Titan account, just visit the Computer Science office in room CS-522 with your photo ID.

Scholarship Information

Most scholarships have specific requirements based on your GPA, citizenship, or affiliation with a minority group. Often an essay is also required. The money is to be used only for educational expenses.

The Assistant Dean for Student Services, College of Engineering and Computer Science, has current scholarship information and application forms in room CS-501 (phone 657-278-2887). Please see http://www.fullerton.edu/financialaid/scholar/scholarships_default.htm as well for more information.

(32)

Computer Science Organizations

Association for Computing Machinery (ACM)

ACM (Association for Computer Machinery, founded 1947) is an international scientific and educational organization dedicated to advancing the art, science, engineering, and application of information technology, serving both professional and public interests by fostering an open interchange of information and by promoting the highest professional and ethical standards. The ACM student chapter at the University provides a continuing forum for the exchange of ideas and announcements for all the students on campus who share an interest in the diversified aspects of computing. Activities include field trips, programming contests, workshops, symposiums, games and tournaments.

For information on the chapter, you are welcome to drop by the office in room CS-209, to call (657) 278-7165

The ACM chapter is a student-run organization and its activities are open to all interested students. The club is successful only to the extent that students support it and participate in its activities.

CSUF’s Information Security Society (CSUFSec)

CSUF's Information Security Society (CSUFSec) is a community of students enthusiastic about cybersecurity. The organization holds weekly meetings in which students explore cybsersecurity through hands-on activities such as ethical hacking, penetration testing, and analysis of

cyberthreats and their countermeasures. The organization also conducts activities designed to contribute to CSUF and to the broader public through security education, reporting of security vulnerabilities, and promotion of ethical hacking. Active members may earn an opportunity to travel to security-related conferences. The organization strives to establish and maintain ties with cybsersecurity companies and academic institutions; organization membership also helps create opportunities for future internships, jobs, and pursuing of advanced degrees in security.

Interested? Email [email protected] for more information.

The Upsilon Pi Epsilon (UPE)

Upsilon Pi Epsilon is the first and only international honor society in the Computing and Information Disciplines. It has received endorsements from the two largest computer organizations in the world, the Association for Computing Machinery (ACM) and the IEEE Computer Society (IEEE-CS). UPE is a member of the Association of College Honor Societies (ACHS). Members in this club share ideas and experience with other motivated computer science students, learn from computer scientists and professionals from other disciplines, and gain

exposure to diverse and advanced computing and information science topics. As an honor society, UPE only grants membership to students at the top of their class. Some of the activities and benefits of being a member include:

 Field trips to major companies and research facilities

 Guest speakers from industry and academic organizations

(33)

 Meeting with other outstanding computer science students from our own university and from other universities

Every member receives a membership certificate, a carat-clad key pin, and a free one-year ACM student membership (current ACM members receive a one-year extension).

For more information on UPE and eligibility, please visit http://upe.acm.org .

Video Game Design Club

The Video Game Design Club is a university recognized club, open to all CSU Fullerton students who have a passion for creating and playing video games. The club meets regularly during the academic year, organizing special events as well as student projects. To learn more about the club and to see the club calendar, visit the club's website at http://www.vgdc.ecs.fullerton.edu .

(34)
(35)

Full-Time Faculty

This chapter contains an alphabetical listing of all full-time faculty in the Computer Science Department, their educational background, their areas of interest, and their contact information:

Chen, Ning – Ph.D., Colorado State University, Fort Collins, Colorado

Embedded systems, digital signal processing, robotics, real-time systems, and distributed systems;

Email: [email protected]

Choi, James – Ph.D., University of Southern California, California

Software engineering, reverse software engineering, process modeling, and configuration management;

Email: [email protected]

Website: http://ecs.fullerton.edu/~sjchoi

Cong, Bin – Ph.D., University of Texas, Dallas, Texas

Computer network, parallel processing, neural networks, and heuristic search, software process models, and network security;

Email: [email protected]

Website: http://ecs.fullerton.edu/~bcong

Falconer, David (FERP) – Ph.D., University of Texas, Austin, Texas Artificial intelligence, and technical communications;

Email: [email protected]

Gofman, Mikhail – Ph.D., State University of New York at Binghamton

Network security, computer security, formal methods, operating systems, virtualization; Email: [email protected]

Website: http://ecs.fullerton.edu/~mgofman/

Holliday, Floyd – M.A., California State University, Long Beach, California OOP Software engineering, embedded systems, and web-based application; Email: [email protected]

(36)

Jo, Chang-Hyun – Ph.D., Oklahoma State University, Oklahoma

Programming languages, software engineering, and Internet/Web programming; E-mail: [email protected]

Website: http://ecs.fullerton.edu/~jo

Michalopoulos, Demetrios (FERP) – Ph.D., University of Southern California, California Pattern recognition, image processing, graphics, intelligent systems, artificial intelligence application, and web application;

Email: [email protected]

Molodowitch, Mariko (FERP) – Ph.D., University of California, Irvine, California

Design and analysis of algorithms, parallel algorithms, graph algorithms, and probabilistic analysis;

Email: [email protected] Website: http://ecs.fullerton.edu/~mariko

Ryu, Christopher T. – Ph.D., University of Houston, Houston, Texas

Databases, data/text mining, time-series forecasting, evolutionary computation, Internet computing, and software project management with metrics;

Email: [email protected]

Website: http://ecs.fullerton.edu/~tryu

Shafae, Michael – Ph.D., University of California, Irvine Computer graphics & computer games;

Email: see website

Website: http://mshafae.ecs.fullerton.edu/

Tian, Yun – Ph. D., Auburn University, Auburn, Alabama

Storage security, cloudy security, distributed computing, parallel and high performance computing;

Email: [email protected]

Wang, Shawn X. – Ph.D., New Jersey Institute of Technology, Newark, New Jersey Databases, knowledge discovery and data mining, pattern matching, and bioinformatics Email: [email protected]

Website: http://ecs.fullerton.edu/~wang

Wortman, Kevin – Ph.D., University of California, Irvine

(37)

Course Descriptions

Computer Science Courses

CPSC 120 Introduction to Programming (3 units) Corequisite: Math 125

Introduction to the concepts underlying all computer programming: design and execution of programs; sequential nature of programs; use of assignment, control and input/output statements to accomplish desired tasks; use of functions and arrays. Structured programming methodology (1.5 hours lecture, 3 hours laboratory).

CPSC 121 Programming Concepts (3 units)

Prerequisite: CPSC 120 or sufficient score on the Computer Science Placement Exam.

Structure of algorithms; functions; strings and data types; pointers and linked structures; classes and objects; recursion; inheritance; polymorphism; exception handling; documentation. Object-oriented programming methodology. (2 hours lecture, 2 hours laboratory)

CPSC 131 Data Structures Concepts (3 units)

Prerequisites: CPSC 121 or sufficient score on the Computer Science Placement Exam.

Review recursion. Data structures: lists, stacks, queues, linked structures, binary search trees and graphs. Algorithms: Hashing, sorting and searching. Object-oriented implementation and

applying data structures and algorithms. CPSC 223H Visual BASIC Programming (3 units)

Prerequisite: CPSC 131.

Elements of Visual Basic, forms and controls, properties, mouse events, multiple-document interface, processing files, accessing databases, dynamic data exchange, object linking and embedding. (2 hours lecture, 2 hours laboratory)

CPSC 223J Java Programming (3 units) Prerequisite: CPSC 131.

Characteristics of Java: portable, robust, secure, object-oriented, high performance; using the Java environment; server administration; types, expressions, and control flow; classes, interfaces, and packages; threads; exceptions; class libraries; Java for the Internet; tools; the Java Virtual Machine. (2 hours lecture, 2 hours laboratory)

CPSC 223N C# Programming (3 units) Prerequisite: CPSC 131.

Characteristics of C#, object-oriented design concepts, control structures, methods, arrays, classes, objects, inheritance, polymorphism; exception handling; graphical user interfaces, multithreading, characters, strings, files, streams. Software development assignments (2 hours lecture, 2 hours laboratory)

(38)

CPSC 223P Python Programming (3 units) Prerequisite: CPSC 131.

Characteristics of Python: portable, robust, secure, object-oriented, functional, high performance, extensible; types, expressions, and control flow; classes, abstract base classes, modules, and packages; threads; exceptions; Python standard library; the Python interpreter. (2 hours lecture, 2 hours laboratory)

CPSC 240 Computer Organization and Assembly Language (3 units)

Prerequisites: CPSC 131 and either Mathematics 270A or Mathematics 280.

Digital logic and architecture of a computer system, machine level representation of data,

memory system organization, structure of low-level computer languages. machine, assembly, and macro language programming. principles of assembler operation, input-output programming, interrupt/exception handling. Laboratory programming assignments. (2 hours lecture, 2 hours laboratory)

CPSC 253U Workshop in UNIX (1 unit) Prerequisite: CPSC 121 or EGME 205.

Workshop in the use of the UNIX operating systems. (2 hours activity) CPSC 254 Software Development with Open Source Systems (3 units)

Prerequisite: CPSC 131.

Philosophy of open source software development, open source operating systems such as Linux; open source development tools; open source programming languages, such as Python; open source software development processes; open source software licensing issues. (2 hours lecture, 2 hours laboratory)

CPSC 301 Programming Lab Practicum (2 units) Prerequisite: CPSC 131.

Intensive programming covering concepts learned in lower division courses. Procedural and object-oriented design, documentation, arrays, classes, file input/output, recursion, pointers, dynamic variables, data and file structures. Credit/No Credit only.

CPSC 303 Multimedia Concepts (3 units)

Prerequisites: CPSC 121 and completion of the General Education Critical Thinking requirement. Components and issues associated with multimedia technology, applications of multimedia and its evolution. Laboratory activities will include developing a multimedia application using a PC-based authoring tool. (2 hours lecture, 2 hours laboratory)

CPSC 311 Technical Writing for Computer Science (3 units) Prerequisites: ENGL 101 and CPSC 131.

Practice in developing documentation skills as used in the computer field. Topics include proposals, feasibility studies, user guides and manuals, business communication and technical presentation. Case studies in professional ethics. Written and oral reports are required.

(39)

CPSC 313 The Computer Impact (3 units)

Prerequisite: Upper division standing, one course from General Education area B.4.

Effect of computer use on individuals and organizations. Side effects of innovative technology and the resulting changes to organizations, social institutions, and human perceptions of events. Emphasis on personal responsibility, legal ramifications, and educational implications. Hands-on use of e-mail and the World Wide Web.

CPSC 315 Social and Ethical Issues in Computing (1 unit) Prerequisite: CPSC 311.

The course will cover relevant issues that responsible professionals will face in a complex technological society. Issues covered are professional ethics, computer control, encryption, benefits and downside of computers, privacy and computer crimes. Both written and oral reports are required.

CPSC 322L Introduction to Computer Aided Design (3 units) Prerequisite: Adviser Approval.

Introduction to modeling, assembly, design documentation and analysis using typical commercial CAD/CAE software such as Mechanical Desktop, Pro/ENGINEER and ANSYS. Use of online resources in the collaborative design process. Design file transfer protocols. Design project using a technology based team environment. CAD/CAE system selection criteria. (1 hour lecture, 6 hours laboratory). (Same course as Mechanical Engineering 322L)

CPSC 323 Programming Languages and Translation (3 units)

Prerequisites: Examination in Programming Proficiency (EPP) or CPSC 301.

Basic concepts of programming languages and principles of translation. Topics include history of programming languages, various programming paradigms, language design issues and criteria, development of practical translators for modern programming languages.

CPSC 332 File Structures and Database Systems (3 units) Prerequisites: CPSC 131.

Fundamental theories and design of database systems, the Structured Query Language (SQL), and basic concepts and techniques of data organization in secondary storage. Topics include

introduction to database systems, ER model, relational model, index structures, and hashing techniques.

CPSC 333 Introduction to Computer Security (3 units) Prerequisites: CPSC 131.

Security goals, security systems, access controls, networks and security, integrity, cryptography fundamentals, authentication. Attacks: software, network, website; management considerations, security standards in government and industry; security issues in requirements, architecture, design, implementation, testing, operation, maintenance, acquisition, and services.

(40)

CPSC 335 Algorithm Engineering (3 units)

Prerequisites: Examination in Programming Proficiency (EPP) or CPSC 301, Math 270B, and Math 338.

Algorithm design using classical paradigms: exhaustive search, divide and conquer, reduction, dynamic programming and the greedy method. Asymptotic and experimental efficiency analysis. Problem hardness: lower bound, NP-completeness, and decidability. Methods for circumventing hardness. Implementing algorithms to solve practical problems.

CPSC 351 Operating Systems Concepts (3 units) Prerequisite: CPSC 253U or CPSC 254

Corequisite: Examination in Programming Proficiency (EPP) or CPSC 301.

Resource management, memory organization, input/output, control, process synchronization and other concepts as related to the objectives of multi-user operating systems.

CPSC 362 Foundations of Software Engineering (3 units)

Prerequisites: Examination in Programming Proficiency (EPP) or CPSC 301, and CPSC 311. Basic concepts, principles, methods, techniques and practices of software engineering. All aspects of software engineering fields will be covered briefly. Computer-Aided Software Engineering (CASE) tools are used.

CPSC 376 Client / Server Systems with Java (3 units) Prerequisites: CPSC 223J and CPSC 351.

Concepts and architecture of server systems using Java. Techniques for building client-server systems, multi-threading, and network programming.

CPSC 386 Introduction to Game Design & Production (3 units) Prerequisites: CPSC 131.

Current and future technologies and market trend in game design and production. Game technologies, basic tools for building games, and the process of game design, development, and production.

CPSC 431 Database Systems (3 units)

Prerequisite: CPSC 332, and Examination in Programming Proficiency (EPP) or CPSC 301. Database design and application, database programming using SQL and other languages, query optimization. transaction management.

CPSC 433 Data Security and Encryption Techniques (3 units) Prerequisites: CPSC 311, CPSC 351, and MATH 270B.

System security and encryption. Current issues in security, encryption and privacy of computer based systems.

CPSC 440 Computer System Architecture (3 units) Prerequisites: CPSC 240.

References

Related documents

• Fragment shader writes depth to the depth buffer. • discard fragment if depth larger than current depth

Position Velocity Jumps Player Squishable.

distributors, and retailers of consumer products are required to report to the CPSC about product risks. Specifically, these entities must report “immediately” to the CPSC

Mail Sender Protocol flow Email flow mail server user agent Mail Recipient user agent SMTP SMTP POP IMAP Local Mail Server!. The Email

• To make any color, we combine light from three channels, Red, Green, Blue. As pixels get smaller, the

• Use medium fidelity prototyping for the early to middle stages of design. – Identify questions before coding – Be selective with what gets built – Get it right in black and

University of Calgary GraphicsJungle Project CPSC 587 2005.

• A node early in the tree can return Success/Failure. • Terminates