
Computer Science at
Edmonds Community College
Computer Science Course Descriptions
CMPSC 101 Computing Concepts (5 Credits)
A broad beginning-level survey of computer science concepts.
Topics include history of computing, computerhardware, operating systems,
programming logic, Internet, data management, overview of programming languages,
and social context and ethics of computing.
Prerequisite: MATH 90, MATH 95 or CIS 114 with a grade
of at least 2.5 or permission of instructor.
CMPSC 102 Introduction to Computer Animation (5 Credits)
Introduces some basic techniques and tools of computer animation. Students develop their own short interactive computer animation with accompanying sound and music.
CMPSC 115 Introduction to Programming (5 Credits)
An introductory course in programming using VB.NET.
No previous programming experience is expected.
Topics include designing, creating and debugging interactive, event-driven programs with a graphical user interface and
developing problem-solving skills.
Prerequisite: MATH 90 or MATH 95 with a grade of 2.0 or
higher, or CIS 114 with a grade of 2.0 or higher, or
instructor's permission.
CMPSC 120 Introduction to Windows Operating System (5 Credits)
An introductory course covering current Windows
Operating Systems. Includes command line, customization, disk and file management and optimization, system configuration and
trouble shooting.
Prerequisite: CIS 100 or BSTEC 130 with a grade
of 2.0 or higher, or equivalent experience, or instructor's permission.
CMPSC 121 Intermediate Windows Operating System (5 Credits)
An intermediate course covering the Windows Operating System. Topics include intermediate and advanced
features of the Windows Operating System, with special attention given to the Registry. S/U grade option.
Prerequisite: CIS 125 or CMPSC 120 with a grade
of 2.5 or higher or instructor's permission.
CMPSC 132 Linux/UNIX I (5 Credits)
First of a two-quarter survey of Linux/UNIX operations.
Topics include general operating system functions/principles, Bourne/bash shells, basic commands for
common system operations, Linux installation/setup.
Prerequisite: Some computer experience highlyrecommended.
CMPSC 133 Linux and UNIX II (5 Credits)
Second of a two-quarter survey of Linux/UNIX operations.
Topics include general operating system functions/principles, advanced commands, introduction to regular
expressions and scripting.
Prerequisite: CMPSC 132 with a 2.5 or higher GPA or instructor's permission.
CMPSC 142 C/C++ Computer Programming I (5 Credits)
Introduction to programming for students majoring in computer science, technical or engineering fields.
Covers the fundamental syntax and constructs of the C/C++ programming languages and general concepts of object oriented
programming.
Prerequisite: CMPSC 115 with a grade of 2.5 or higher or instructor's permission.
CMPSC 143 C/C++ Programming II (5 Credits)
Intermediate concepts of object oriented program design and implementation using the C++ language. Topics include
class design, polymorphism, composition, and the general use of object oriented programming principles.
Prerequisite: CMPSC 142 with a grade of 2.5 or higher or instructor's permission.
CMPSC 144 C++ Programming III (5 Credits)
Advanced C++ programming. Topics include data structures such as lists, stacks, queues, and binary trees;
the use of single and multiple inheritance, polymorphism, the Standard Template Library and object oriented design techniques.
Prerequisite: CMPSC 143 with a grade of 2.5 or higher or instructor's permission.
CMPSC 145 C and C++ Review I (5 Credits)
Intermediate concepts of object oriented program design and implementation using the C++ language. Topics include class design, polymorphism, composition, the general use of object oriented programming principles and algorithms for sorts and searches.
Prerequisite: Previous programming experience in C, C++ or Java or departmental permission.
CMPSC 146 C and C++ Review II (5 Credits)
Part II of a two-quarter sequence. Basic characteristics of C/C++ and the use of C++ for Windows graphics
and game programming. Advanced features of C++ such as Template
Library, exception handling, bit operations, and the use of C++
to implement 2D graphics techniques.
Prerequisite: Successful completion of CMPSC 145 or instructor's permission.
CMPSC 151 Java Programming I (5 Credits)
Introduction to Java programming. Topics include
basic Java syntax, data types, control structures, methods,
object representation using classes, graphics, Applets and
arrays, all within a framework of general object oriented
programming principles.
Prerequisite: CMPSC 115 or equivalent with a
grade of 2.5 or higher or instructor's permission.
CMPSC 152 Java Programming II (5 Credits)
Intermediate Java programming. Topics include algorithm development, searching/sorting, complexity/efficiency, recursion, user interface design, class relationships including composition and inheritance, and an introduction to abstract data types.
Prerequisite: CMPSC 151 or equivalent with a
grade of 2.5 or higher or instructor's permission.
CMPSC 153 Java Programming III (5 Credits)
Advanced Java programming. Topics include data structures such as lists, stacks, queues, and binary trees; inheritance and interfaces; using standard collection classes and algorithms; and Generics.
Prerequisite: CMPSC 152 or equivalent with a
grade of 2.5 or higher or instructor's permission.
CMPSC 161 Introduction to Computer Game Development (5 Credits)
Fundamentals of computer game programming,
including a survey of computer game categories and platforms,
major game components, an overview of the game development
process, and an introduction to game graphics programming using
the Windows API. S/U grade option.
Prerequisite: One programming course with a
grade of 2.5 or higher or instructor's permission.
CMPSC 162 Graphics and Game Programming I (5 Credits)
Introduction to the Microsoft DirectX game and
graphics libraries and their use in the development of Windows
based games, animation, and other graphics applications.
Prerequisite: CMPSC 161 with a grade of 2.5 or
higher or instructor's permission.
CMPSC 163 Graphics and Game Programming II (5 Credits)
Fundamental concepts used in 2D graphics and
animation, as well as the techniques and tools needed to create
a game application using the DirectX 2D graphics and animation
library.
Prerequisite: CMPSC 162 with a grade of 2.5 or
higher or instructor's permission.
CMPSC 170 Game Mathematics I (5 Credits)
First of a two-course sequence. Introduction to
the mathematical principles used to represent 2D and 3D space in
game programming. Topics include sets, functions, polynomials,
trigonometry, analytic geometry, and their application to
computer game graphics and physics.
Prerequisite: College algebra or department
permission.
CMPSC 172 Game Mathematics II (5 Credits)
Second of a two-part sequence covering the
mathematical principles used to represent 2D and 3D space in
games. Topics include vectors, linear transformations,
quarternions, analytic geometry, and their application to
computer game programming.
Prerequisite: CMPSC 170 with a grade of a least
2.5 or department permission.
CMPSC 173 Windows Programming Using C++ / SDK (5 Credits)
The development of Windows application programs
using C and C++ with an emphasis on creating Windows based
graphics and animation frameworks.
Prerequisite: CMPSC 142 with a grade of 2.5 or
higher or instructor's permission. Concurrent enrollment in
CMPSC 143 is recommended.
CMPSC 185 2D Game Development Project (5 Credits)
Course covers techniques and tools used to
create non-graphic game components such as joystick I/O, sound,
video, networking, and artificial intelligence. Students
integrate these components into a 2D game project.
Prerequisite: CMPSC 161 or instructor's
permission.
CMPSC 194 3D Graphics and Computer Animation I (5 Credits)
General principles of representing and animating
3D objects, and application to 3D computer animation. Students
model, texture, animate, and render objects using Maya, a
commercial animation software package, producing a final short
animation sequence.
Prerequisite: A working familiarity with
computers is recommended.
CMPSC 195 3D Graphics and Computer Animation II (5 Credits)
A continuation of CMPSC 194.
General concepts and techniques of texturing, animating and rendering 3D computer models
as well as their implementation using Maya 3D animation software.
S/U grade option.
Prerequisite: CMPSC 194 with a grade of 2.5 or better, or instructor's permission
CMPSC 199 Special Projects (5 Credits)
Special study to be arranged by student and supervising instructor. S/U grade option. Note: Credit available with approval. For information contact the division secretary in ALD 218A or phone 425-640-1679.
CMPSC 210 Game Physics (5 Credits)
Application of the laws of physics to the
creation of computer games with physics-based realism.
Prerequisite: MATH 132, CMPSC 143, and College
Level Physics, each with a grade of at least 2.5, or equivalent
experience.
CMPSC 215 Intermediate Visual Basic.NET (5 Credits)
Course introduces intermediate topics of visual
program design and implementation using Visual Basic.NET. Topics
include arrays, object-oriented programming, files and streams,
error handling and debugging, SQL, database programming with
ADO.NET, and multimedia.
Prerequisite: CMPSC 115 with a grade of 2.5 or
higher or instructor's permission.
CMPSC 216 Advanced Visual Basic.NET Programming (5 Credits)
Introduces advanced topics of visual program
design and implementation using Visual Basic.NET. Topics include
database programming and SQL, ADO.NET, data structures and
collections, ASP.NET and Web services, and networking.
Prerequisite: CMPSC 215 with a grade of at
least 2.5 or permission of instructor.
CMPSC 217 Internet Programming with .NET (5 Credits)
Learn to design, program and deploy
applications, web services, and components in an enterprise
environment using the latest tools and languages supported by
the .NET framework.
Prerequisite: CMPSC 115 with a grade of 2.5 or
higher.
CMPSC 225 Introduction to C# (5 Credits)
Introduces the C# programming language.
Addresses the basic principles of object oriented programming
using C#, and the development of Windows and Web programming
applications.
Prerequisite: CMPSC 115 or equivalent with a
grade of 2.5 or instructor's permission.
CMPSC 233 UNIX Shell Programming (5 Credits)
An intermediate course that extends previous
experience with the Bourne/bash shells to program scripts used
to automate system administrative tasks. Topics include
environment/user defined variables, branches, loops, menus, user
interaction, and functions.
Prerequisite: CMPSC 132 or instructor's
permission.
CMPSC 234 Advanced UNIX: Perl (5 Credits)
An introduction to the Perl language and its use
in UNIX operating system scripting. Topics include scalar,
array/hash variables, control structures, formats, regular
expressions, file and process input/output, subroutines, Perl's
relationship to other languages.
Prerequisite: CMPSC 132 or instructor's
permission.
CMPSC 245 Telecommunications and Computer Networks (5 Credits)
A foundational, hands-on course working with
network operating systems and local area networks. Designed to
demystify personal computers as well as foster improved
efficiency. Topics include: how data is transmitted and
received, servers, clients, and packet communication.
Prerequisite: A general familiarity with
personal computers is recommended.
CMPSC 255 Special Topics (5 Credits)
Current topics of interest to students of
computer science. Topics will change from offering to offering.
Prerequisite: A minimum of four computing
related courses.
CMPSC 262 Intro to 3D Graphics Programming (5 Credits)
Introduction to the fundamental concepts of 3D
graphics and animation, including an investigation of the 3D
rendering pipeline and the use of the Microsoft Direct 3D
library to implement a working 3D application.
Prerequisite: CMPSC 185 with a grade of 2.5 or
higher or instructor's permission.
CMPSC 270 Game Programming Seminar (1-5 Credits)
An on-campus support course for students taking
on-line game programming courses. This course will involve
focused study of a variety of game programming topics, based on
the student's needs, under the guidance of an instructor.
Prerequisite: Concurrent enrollment in another
game programming class is recommended.
CMPSC 271 3D Game Programming I Directx (5 Credits)
First of a three-course sequence. Introduction
to 3D game programming using the latest version of the Microsoft
3D API. Topics include a review of 3D mathematics,
transformation pipeline, initializing Direct 3D, vertex and
index buffers, and single and multi-texture effects.
Prerequisite: CMPSC 143 or 145 or departmental
permission. CMPSC 161 highly recommended.
CMPSC 272 3D Game Programming II Directx (5 Credits)
Second of a three-course sequence covering 3D
game programming using the latest version of the Microsoft 3D
API. Topics include camera management systems, texture
compression, advanced texturing and alpha blending, loading
GILES levels, and advanced 3D rendering techniques.
Prerequisite: CMPSC 271 with a grade of at
least 2.5 or departmental permission.
CMPSC 273 3D Game Dev III Directx (5 Credits)
Third of a three-course sequence covering 3D
game programming using the latest version of the Microsoft 3D
API. Topics include D3DX meshes, progressive meshes,
hierarchies, and frame based and mesh hierarchy based animation.
Prerequisite: CMPSC 272 with a grade of at
least 2.5 or departmental permission.
CMPSC 274 3D Game Dev IV Directx (5 Credits)
Course covers 3D game programming using the
latest version of the DirectX API. Topics include particle
systems, shadows, reflections, curved surface representations,
collision detection and spatial partitioning.
Prerequisite: CMPSC 273 with a grade of at
least 2.5 or equivalent experience.
CMPSC 275 3D Programming with OpenGL (5 Credits)
Introduction to 3D game programming using the
latest version of the OpenGL API. Course topics include 3D
geometry, the transformation and lighting pipeline, and
texturing and shading a 3D game world.
Prerequisite: CMPSC 143 or 145 or departmental
permission. CMPSC 271 recommended.
CMPSC 280 Sony PS2 Linux Programming (5 Credits)
Introduction to Playstation2 game programming
using the Linux Kit for Playstation2. Topics include Linux
installation and configuration, game development tools and
techniques, graphics API's, 3D geometry, shading and texturing,
and game pad input.
Prerequisite: Introductory C/C++ (CMPSC 142 or
CMPSC 145 ) or equivalent experience.
CMPSC 283 Artificial Intelligence for Game Developers (5 Credits)
Data structures and algorithms used in computer
game AI. Includes a discussion of the two most general aspects
of game AI including pathfinding and decision making.
Pathfinding topics include grid traversal and search algorithms,
pathfinding with A , and waypoint networks. Decision making
topics include finite state machines, scripting, and squad level
AI.
Prerequisite: CMPSC 143 or 145 or departmental
permission. CMPSC 161 and 271 highly recommended.
CMPSC 285 3D Game Development Project (5 Credits)
Application of basic 3D game concepts,
techniques, and tools to the design and creation of a 3D game.
Prerequisite: CMPSC 161 or instructor's
permission.
CMPSC 289 RealTime 3D Terrain Rendering (5 Credits)
Introduction to the concepts of 3D landscape
rendering. Topics include terminology, Rottger and ROAM
algorithms, data structures, texture mapping, and lighting.
Prerequisite: CMPSC 275.
CMPSC 290 Intro to Software Testing and Quality Assurance (5 Credits)
Covers the fundamental concepts and techniques
of software testing and quality assurance. Topics include goals
of testing and quality assurance, classification of bugs,
testing categories and techniques, test design, metrics and
complexity.
Prerequisite: CMPSC 115 with a grade of 2.5 or
higher or instructor's permission.
CMPSC 293 Game Testing (5 Credits)
Commercial tools and techniques used for testing
games, including testing using console company "technical
checklist". For students wishing to embark on careers in game
testing or expand existing testing skills to meet the
specialized requirements of the game industry.
Prerequisite: CMPSC 290 recommended or
instructor's permission.
CMPSC 299 Special Projects (5 Credits)
Special study to be arranged by student and supervising instructor. S/U option. Note: Credit available with approval. For information contact the division secretary in ALD 218A or phone 425-640-1679.



