Edmonds College Logo

Computer Science Course Descriptions

CS 102: Introduction to Computer Animation

Credits: 5.0

Introduces some basic techniques and tools of computer animation and sound production. Students develop their own unique computer character sprites, and create a short computer animation with accompanying sound and music.

Course Level Objectives

  1. Use software to perform basic image manipulations including resizing, color adjustment, and positioning to create images suitable for use in a group animation.
  2. Use drawing and character modeling techniques to modify a unique character representation that can be used as a basis for a digital sprite in a group project.
  3. Write a computer program that displays animated images on the screen.
  4. Include meaningful sounds and music within an animated program.
  5. Work as an effective team member to accomplish common animation project goals in a timely fashion.
  6. Make an oral and visual presentation to a the class, summarizing their final project results.

CS 103: Artificial Intelligence for Everyone

Credits: 2.00

In this class students will learn what Artificial Intelligence (AI) is and how it impacts our lives. We will also learn how it comes to decisions and its strengths and weaknesses. Additionally we will focus on AI ethics and how it affects business and culture. Prerequisite(s): Prerequisite: Placement into ENGL& 101 or higher is required to take this course.

Course Level Objectives

  1. Define AI and explain how AI uses algorithms to solve problems, perform computations, and automate reasoning. 
  2. Explain the basic components of AI algorithms to a person unfamiliar with AI.
  3. Identify and utilize basic AI tools to solve a problem. 
  4. Recognize and analyze the usage of AI in our society.
  5. Identify and discuss various ethical, regulatory, and policy implications resulting from the integration of AI in our society.

CS 115: Introduction to Programming

Credits: 5.0

Prerequisite(s): MATH 090 or MATH 097 or ETEC 150 with a minimum grade of 2.0 or placement above MATH 097 or instructor permission.

Course Level Objectives

  1. Use correct syntax and structure of the Visual Basic language.
  2. Design an appropriate User Interface for a simple Visual Basic application.
  3. Analyze problems typical of the business, scientific or home environment and to formulate solutions in quantitative terms capable of computer solution.
  4. Design algorithms typically used in computer programming.
  5. Lay out a flow chart for a typical algorithm.
  6. Utilize Sequence, Selection and Iteration constructs in the design of solutions.
  7. Design, code, correct, test, and execute a Visual Basic program.

CS 119: Introduction to Database Data Processing

Credits: 3.0

An introduction to retrieving data from a database with a query language and processing it with a spreadsheet program. Topics include designing queries that sort, filter and aggregate data and using spreadsheets to clean, calculate, summarize and chartdata. Prerequisite(s): Admission into the Data Analytics Certificate (Beginner/Early Career) program or permission from the instructor.

Course Level Objectives

  1. Recognize and be able to describe how a database stores information via tables.
  2. Compose database queries to retrieve data stored in multiple tables/collections from a database.
  3. Compose and troubleshoot database queries that join, sort, filter and aggregate data across multiple tables/collections.
  4. Construct formulas in spreadsheet softwares, including the use of built-in functions, and relative and absolute references (e.g. VLookUp, Find)
  5. Developand modify charts.
  6. Explore datasets and apply consolidation andde-duplication strategies.
  7. Use pivot tables to calculate, summarize and analyze data.

CS 122: Introduction to Statistical Analysis and Experimentation

Credits: 4.0

Apply statistical techniques to datasets to produce useful and non-biased results. Topics include probability theory, central tendancy, characterizing ditribution types, hypothesis testing, statistical significance and cognitive bias. Prerequisite(s): Admission into the Data Analytics Certificate (Beginner/Early Career) program or permission from the instructor.

Course Level Objectives

  1. Demonstrate the application of the basics of probability theory and apply conditional probability and Bayes' Theorem to determine likelihood of outcomes.
  2. Define concepts in Central Tendency, and examine its applications in interpreting data skewness and kurtosis.
  3. Illustrate how to describe data and its variability through summary statistics such as mean, median, variance and quantiles.
  4. Characterize similarities and differences between various probability distributions including probability density functions and cumulative density functions.
  5. Define hypothesis testing and statistical significance, and evaluate how these are relevant in A/B testing.
  6. Analyze cognitive biases using case studies.

CS 123: Introduction to Machine Learning

Credits: 4.0

An exploration of machine learning models with a focus on identifying when each is best used and data ethics. Models discussed include supervised learning, unsupervised learning and classification. Prerequisite(s): CS 122 with a minimum grade of 2.0 or instructor permission.

Course Level Objectives

  1. Explore types of machine learning models including supervised andunsupervised learning, and classify when to use these general models.
  2. Compare supervised learning models, and examine differences between regression andclassification models.
  3. Formulate linear regression models, evaluate its assumptions, and interpret its applications.
  4. Design classification models using Logistic Regression andDecision Trees, and compute their performance.
  5. Recognize when to use unsupervised learning models and applyclustering algorithms such ask-means to group data.
  6. Explore Data Ethics in Machine Learning using case studies.

CS 124: Introduction to Data Processing with Scripting

Credits: 4.0

Introduction to performing data analysis tasks by writing code in a scripting language. Tasks include, ingesting data in various formats, using existing libraries to clean, organize and manipulate data and using programming constructs to accomplish project-specific tasks. Prerequisite(s): Admission into the Data Analytics Certificate (Beginner/Early Career) program or permission from the instructor.

Course Level Objectives

  1. Compose code in a scripting language to ingest data files in various formats (such R or Python)
  2. Useexisting libraries such as pandas and dataframe concepts, cleannumerical andcategorical data including imputation of missing values.
  3. Design and formulate techniques to store andmanipulate data using common data structures, conditionals, loops, and built-in functions.
  4. Write basic custom functions for repeatable analysis.

CS 125: Linux and UNIX I

Credits: 5.0

First of a two-quarter survey of Linux/UNIX operations. Topics include base Linux commands; combining commands to create utilities; managing files, software and processes; creating partitions and Logical Volumes; editing text; managing users and groups; extended attributes and basic networking. Prerequisite(s): Some computer experience highly recommended.

Course Level Objectives

  1. Install and manage OS configuration settings on current Linux operating systems.
  2. Parse system logs for any relevant data and present it in a readable fashion.
  3. Manage local and networked files using Linux command line tools.
  4. Handle backing up files to compressed archives using tar and various compression algorithms.
  5. Create dynamically resizable disk volumes and optimize filesystem formatting.
  6. Manage users and permissions using groups and inheritable access control lists.
  7. Describe the pros and cons of various open source licenses.
  8. Identify best use cases for Linux and other types of open source software.

CS 126: Linux and UNIX II

Credits: 5.0

Second of a two-quarter survey of Linux/UNIX operations. Topics include Boot process, process management, RPM, creating/optimizing RAID, encryption, managing user access, configuring dynamic/static networks, Bash scripting, Apache secure virtual hosts, Samba/NFS, Postfix mail server, SSH and NX. Prerequisite(s): CS 125 with a grade of 2.5 or higher or instructor permission.

Course Level Objectives

  1. Restrict user logins based on location, time of day, and other criteria.
  2. Create software packages from source and manage remote package repositories.
  3. Create and optimize advanced disk systems, including disk encryption.
  4. Configure Linux networking configuration using Bash shell scripts.
  5. Configure Web, dns, mail, and file servers securely.
  6. Manage secure remote graphical and cli logins.
  7. Explain various server configuration strategies to management personnel.

CS& 131: Computer Science I C++

Credits: 5.0

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 programming. Prerequisite(s): CS 115 with a grade of 2.5 or higher or instructor permission.

Course Level Objectives

  1. Display a knowledge of the basic syntax and constructs of the 'C' programming language.
  2. Specify, design, code and debug programs which solve common scientific, technical and business problems.
  3. Perform necessary tasks using various programming tools such as an editor, compiler, debugger and profiler.
  4. Display an ability to use the concepts of procedural and functional abstraction to organize a program.
  5. Test a 'C' program for correctness and usability.
  6. Properly document code in a prescribed standard format.

CS 132: Computer Science II C++

Credits: 5.0

Intermediate concepts of object-oriented program design and implementation using the C++ language. Topics include class design, polymorphism, composition, common algorithms, and the general use of object-oriented programming principles and algorithms for sorts and searches. Prerequisite(s): CS& 131 with a grade of 2.5 or higher or instructor permission.

Course Level Objectives

  1. Develop complex abstract data types, and corresponding C++ classes, including overloaded operators.
  2. Code and utilize common algorithms and analyze them for efficiency using Big-O and Big Omega notation.
  3. Use the basic constructs of the C++ programming language to write a correct, efficient and maintainable applications program.
  4. Describe the concepts of abstracting, encapsulation, inheritance, and polymorphism and explain how they have been incorporated within the C++ language.
  5. Be able to work cooperatively in small groups to produce a correct, efficient and maintainable program.

CS 133: Computer Science III C++

Credits: 5.0

C++ Data Structures. Topics include data structures such as list, stacks, queues, various binary trees and iterators; single, multiple, and virtual inheritance, polymorphism, the STL and object-oriented design techniques. Prerequisite(s): CS 132 with a grade of 2.5 or higher or instructor permission.

Course Level Objectives

  1. Design and implement a class representation of an abstract type.
  2. Use inheritance, multiple inheritance and virtual inheritance in designing and coding class structures.
  3. Apply polymorphism and virtual methods to generalize programming solutions.
  4. Design and code implementations of types such as stacks, queues, lists, and multiple form of trees.
  5. Use the Standard Library features to implement standard program components.
  6. Develop medium to large scale programs.
  7. Work in a small group to develop complex projects.

CS 134: Introduction to Data Visualization and Storytelling

Credits: 4.0

An introduction to how to effectively communicate the results of data analysis. Topics include effective design and creation of charts, graphs and dashboards as well as presenting data findings to an audience. Prerequisite(s): CS119 or CS 122 with a minimum grade of 2.0 or instructor permission.

Course Level Objectives

  1. Construct basic graph andchart designs that maximize impact of displayed data.
  2. Review Tufte's principles of data visualizations and examine graphs andcharts for better cognitive understanding.
  3. Discover how to build custom interactive dashboards using Tableau.
  4. Use the Pyramid Principle to develop a compelling narrative using data.
  5. Developa presentation that pitches a new idea or shares recommendations based on data analysis.

CS& 141: Computer Science I Java

Credits: 5.0

Introduction to Java programming. Topics include basic Java syntax, data types, control structures, methods, object representation using classes, graphics and arrays, all within a framework of general object oriented programming principles. Prerequisite(s): CS 115 or equivalent with a grade of 2.5 or higher or instructor permission.

Course Level Objectives

  1. Use the basic constructs of the Java programming language to write a correct, efficient and maintainable application program.
  2. Analyze real-world problems in quantitative terms and formulate programming solutions.
  3. Describe object-oriented concepts and structures in Java.
  4. Design and implement algorithms typically used in computer programming.
  5. Work cooperatively in small groups to design, implement and test a program.

CS 142: Computer Science II Java

Credits: 5.0

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(s): CS& 141 or equivalent with a grade of 2.5 or higher or instructor permission.

Course Level Objectives

  1. Design and implement Java programs creating a hierarchy of classes with inheritance, composition and interface implementation.
  2. Create highly useable graphical user interfaces using Java tools.
  3. Write Java programs utilizing recursion and various searching and sorting algorithms.
  4. Work cooperatively in small groups to produce and test correct, efficient and maintainable programs.

CS 143: Computer Science III Java

Credits: 5.0

Java Data Structures. Topics include data structures such as lists, stacks, queues and various binary trees, inheritance and interfaces, using standard collection classes and algorithms and Generics. Prerequisite(s): CS 142 or equivalent with a grade of 2.5 or higher or instructor permission.

Course Level Objectives

  1. Design, implement and test programs properly utilizing multiple data structures.
  2. Analyze algorithms for efficiency (big O and big Omega).
  3. Produce and test complex n-tier programs in a professional manner.
  4. Work cooperatively in small groups to produce correct, efficient and maintainable program.

CS 161: Introduction to Computer Game Development

Credits: 5.0

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(s): One programming course with a grade of 2.5 or higher or instructor permission.

Course Level Objectives

  1. Categorize games according to common game genres.
  2. Describe diverse game components.
  3. Enumerate the general computer game platforms and the strength and weaknesses of each.
  4. Describe the game development process.
  5. Prepare a design document for a simple game.
  6. Describe some basic concepts, features, and techniques of graphics programming including the representation and display of points, colors, lines, polygons, and bitmaps, the translation, scaling and rotation of images, sprite creation and animation, scrolling, and simple collision detection.
  7. Create an optimized game that includes geometric transformations, multilevel scrolling, sprite animation, and collision detection using Visual Basic.NET and the Windows GDI+ (Graphics Device Interface).
  8. Independently research an aspect of computer game development.
  9. Describe general characteristics common to all games.
  10. Complete a project as part of a team or group programming effort.
  11. Present a reasoned opinion on a current social controversy involving the nature of computer games.

CS 162: Graphics and Game Programming I

Credits: 5.0

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(s): CS 161 with a grade of 2.5 or higher or instructor permission.

Course Level Objectives

  1. Describe the general purpose of programming libraries and application programming interfaces (APIs).
  2. Describe various graphics and multimedia programming libraries available for the Windows environment.
  3. Describe the general principles of the COM (Component Object Model) architecture.
  4. Describe the various components of the DirectX programming library including DirectDraw, DirectSound, DirectMusic, DirectInput, Direct3D, DirectShow, DirectPlay, DirectMedia, and Direct Animation.
  5. Enumerate the hardware and software requirements needed to both develop and run DirectX applications.
  6. Make DirectX function calls from within Visual Basic.NET, C#, or C++ programs.
  7. Create an application using .NET and DirectDraw which will allow a user to smoothly scroll through a tiled world.
  8. Describe some common programming problems associated with smooth animation.
  9. Complete a project as part of a team or group programming effort.

CS 163: Graphics and Game Programming II

Credits: 5.0

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(s): CS 162 with a grade of 2.5 or higher or instructor permission.

Course Level Objectives

  1. Install, configure, and utilize Visual Studio and the DirectX software development kit.
  2. Create, debug, and test a program using appropriate DirectX components, image buffering, timers, and user input.
  3. Describe the representation of colors in Windows programs in palletized and non-palletized modes.
  4. Describe and implement various line drawing and fill algorithms.
  5. Describe the representation of colors in Windows programs in palletized and non-palletized modes.
  6. Implement fundamental algorithms to perform pixel, line, bitmap clipping, and 2D matrix transformations of points, lines, and polygons.
  7. Complete a project as part of a team or group programming effort.

CS 185: Two-Dimensional Game Development Project

Credits: 5.0

Techniques and tools used to create nongraphic game components such as joystick I/O, sound, video, networking, and artificial intelligence. Students integrate these components into a 2D game project. Prerequisite(s): CS 161 or instructor permission.

Course Level Objectives

  1. Write an application with sound that retrieves, interprets and handles data from and to multiple devices.
  2. Create and edit a sound sample that can be used in a game.
  3. Utilize basic fundamentals of game physics.
  4. Define various fundamentals of working with sound and sound files.
  5. Create and present a design document for a game.
  6. Work on a team to create, debug and test a 2D video game which incorporates graphics, sound, input and physics modeling.

CS 194: Three-Dimensional Graphics Animation

Credits: 5.0

General principles of representing and animating 3D objects, and application to 3D computer animation. Students model, texture, animate, and render objects using Maya, a high-end animation software package, producing a final short animation sequence. Prerequisite(s): A working familiarity with computers is recommended.

Course Level Objectives

  1. Apply common modeling techniques such as extrusion, revolution, deformation, and fractal generation to create simple volumetric objects.
  2. Describe how motion can be represented as translation, rotation and change of scale, and demonstrate their understanding by applying these transformations using 3D animation software.
  3. Describe orthographic and perspective/camera views, and demonstrate an understanding by navigating and manipulating objects in these views using 3D animation software.
  4. Describe how multiple world objects can be represented as a hierarchy, and animate multiple objects using this knowledge and 3D animation software.
  5. Apply common modeling techniques such as extrusion, revolution, deformation, and fractal generation to create simple volumetric objects.
  6. Use various techniques to generate and apply surface textures to 3D objects.
  7. Use key frame and function curve animation techniques to animate a 3D object.
  8. Render, shade and optimize a scene.
  9. Create and complete final editing for a movie file.
  10. Set various camera views and scene light sources and be able to render the final scene using a commercial 3D graphics program.

CS 199: Special Project: Computer Science

Credits: 5.0

Special study to be arranged by student and supervising instructor. S/U grade option. Credit available with approval. For information contact the division secretary in Alderwood Hall 218A or phone 425.640.1679.

Course Level Objectives

  1. Successfully complete a project related to the specified topic.

CS 200: Capstone Project I

Credits: 4.0

Apply skills learned in other Data Analytics courses to real world data and produce a portfolio-worthy analytics report. Prerequisite(s): Completion of at least three other Data Analytics Early Career Certificatecourses.

Course Level Objectives

  1. Integrate and apply what was learned in previous courses to a real world scenario.
  2. Construct individual analytics projects to simulate application of learnings with full ownership, responsibility, and engagement from the student.
  3. Demonstrate collaboration techniques with others on a larger project as needed.
  4. Produce a completed analytics project suitable for publishing in astudents' portfolio using a tool such as Github or Tableau Public.

CS 215: Intermediate Visual Basic.NET

Credits: 5.0

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(s): CS 115 with a minimum grade of 2.5 or instructor permission.

Course Level Objectives

  1. Use the basic constructs of Visual Basic to write a correct, efficient and maintainable application program.
  2. Use Visual Basic to access files and databases.
  3. Use Visual Basic to link applications.
  4. Work cooperatively in small groups to produce a correct, efficient and maintainable program including error-handling and debugging.
  5. Produce well written and easily understood documentation of program code.

CS 216: Advanced VIsual Basic.NET Programming

Credits: 5.0

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(s): CS 215 with a minimum grade of 2.5 or instructor permission.

Course Level Objectives

  1. Write substantive, efficient, and maintainable application programs using the advanced tools of Visual Basic.NET.
  2. Build reusable and dynamic data structures, such as linked lists, queues, stacks utilizing classes, inheritance and composition.
  3. Create Web services applications and distinguish usage of ASP.NET among clients and servers.
  4. Implement VB.NET networking applications using sockets.
  5. Explain the essentials of accessing a relational database with SQL and ADO.NET from within an application program.
  6. Demonstrate appropriate implementation of classes and collection hierarchies.
  7. Work cooperatively in small groups to produce significant and practical Windows and Web application programs.

CS 217: Internet Programming with .NET

Credits: 5.0

Design, implementation and deployment of applications, Web services, and components in an enterprise environment. Uses the latest tools and languages supported by the .NET framework. Prerequisite(s): CS 115 with a grade of 2.5 or higher.

Course Level Objectives

  1. Convert an existing VB or C++ program to a web service.
  2. Design and implement an ASP.NET based program utilizing relational databases and SQL.
  3. Use existing web controls and create new Web controls to implement a web based application.
  4. Integrate a data source with a web control or Web service.
  5. Work cooperatively in small groups to design, program, and deploy applications, Web services, and components.

CS 218: Introduction to C#

Credits: 5.0

Introduces the C# programming language. Topics include basic C# syntax, data types, control structures, methods, object representation using classes and arrays, all within a framework of general object-oriented programming principles. Prerequisite(s): CS 115 or equivalent with a minimum grade of 2.5 or instructor permission.

Course Level Objectives

  1. Design and implement programs with multiple classes using accepted object-oriented techniques.
  2. Develop an object-oriented Windows application that uses C# syntax, constructs, structures and multiple classes.
  3. Work with a team to design, implement and test a C# program.

CS 219: Advanced Database Data Processing

Credits: 3.00

Advanced programming features allowing students to make more complex selections in databases, manipulate, clean and process data in more advanced ways with a high level scripting language like R or Python and optimize code to improve performance on very large datasets. This course is part of the Data Analytics for Professionals program.

Course Level Objectives

  1. Review basic database commands such as join, select, join, filtering, and union operations.
  2. Apply advanced SQL commands to curated data including aggregate functions, common table expressions, subqueries, and window functions.
  3. Compose code using R or Python to extract, transform and load data, and use libraries to update, insert into, aggregate and synthesize information using common data structures such as lists, tuples and dataframes.
  4. Examine standard techniques in exploring, cleaning, and transforming data for analysis including imputing missing data, binning of data, and one hot encoding.
  5. Assess performance of queries and scripts, and enhance code for optimal runtime.
  6. Describe and articulate differences between relational databases and NoSQL databases.

CS 222: Advanced Statistical Methods for Data Analysis

Credits: 3.00

Students will build on their current probability and statistics skills to allow them to analyze and interpret complex data. This course is part of the Data Analytics for Professionals program.

Course Level Objectives

  1. Review basic probability theory including law of total probability, conditional probabilities, probability distribution functions and cumulative distributive functions.
  2. Practice designing experiments including determining number of variants, holdout strategy, sample sizes.
  3. Practice evaluating experiments and testing for significance in cases of large versus small samples or skewed data.
  4. Discover pitfalls of A/B testing. Examine Type I and Type II errors, and how to assess trade-offs between the errors when evaluating experiments.
  5. Identify when to use causal inference, and evaluate data for causality when experimentation at scale is not possible.
  6. Explore how to design objective functions when examining errors between predicted and modeled outputs for numerical data.
  7. Tabulate confusion matrices for categorical data, and compare various performance metrics to assess performance of models.
  8. Describe bias-variance trade-off, and its importance in analyzing data results.
  9. Recognize standard approaches for survey design and analysis.

CS 223: Supervised Learning Models

Credits: 2.00

Compare and apply supervised machine learning models (such as classification models versus regression models) using popular modeling techniques including linear regression, decision trees, random forests etc. This course is part of the Data Analytics for Professionals program. Prerequisite(s): Successful completion of CS 222 or instructor permission.

Course Level Objectives

  1. Review linear regression, pitfalls and how to compare predicted values to actuals.
  2. Compare and contrast techniques to apply when datasets are small or when overfitting might occur such as cross-validation, bootstrapping, and bagging. 
  3. Use supervised models for numerical data prediction using decision trees, random forest, neural networks and gradient boosting trees.
  4. Evaluate regression models with error measurements. 
  5. Classify categorical outputs using tree-based models, logistic regression, Naive Bayes and Linear SVM models. 
  6. Evaluate classification models using confusion matrices, plotting ROC, precision and recall curves, and calculating other performance metrics

CS 224: Unsupervised Learning Models

Credits: 2.00

Compare and apply unsupervised machine learning models using modeling and analysis techniques such as clustering, dimensionality reduction, and association. This course is part of the Data Analytics for Professionals program. Prerequisite(s): Successful completion of CS 222 or instructor permission.

Course Level Objectives

  1. Characterize when dimensionality reduction may be needed and use common techniques such as Principal Components Analysis, Latent Dirichlet Analysis and Singular Value Decomposition.
  2. Apply key types of unsupervised learning and popular clustering methods such as k-means, k-modes, hierarchical clustering, and Gaussian Mixture Model.
  3. Describe reinforcement learning and when it should be used.

CS 225: UNIX Shell Programming

Credits: 5.0

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(s): CS 125 or instructor permission.

Course Level Objectives

  1. Design and implement useful shell scripts utilizing AWK programming language statements.
  2. Utilize shell variables, environment variables, shell language constructs and advanced file commands within shell scripts.
  3. Compare and contrast the Bourne, C and Korn Shells.
  4. Describe the responsibilities of the UNIX system administrator and perform the common tasks performed by a system administrator.
  5. Relate UNIX specific features to generalized operating system principles.

CS 226: Advanced UNIX:Perl

Credits: 5.0

Introduction to the Perl language and its use in UNIX scripting. Topics include scalar, list, hash and reference variables, control structures, formats, regular expressions, file and process input/output, subroutines, Object-Oriented Perl, and Perl's relationship to other languages. Prerequisite(s): CS 125 or instructor permission.

Course Level Objectives

  1. Design and implement PERL programs for common system administration tasks.
  2. Utilize the UNIX-specific features of PERL.

CS 227: Data Communication and Authoring Research

Credits: 3.00

Evaluate business domains to which data analytics can be applied, translate business questions into data questions, and formulate analysis plans. Demonstrate communication techniques used to influence business stakeholders including authoring presentations to a leadership audience, and writing technical papers to convey research & analytics findings. This course is part of the Data Analytics for Professionals program.

Course Level Objectives

  1. Integrate end-to-end the scientific method of answering business questions with data and machine learning models. Evaluate frameworks such as the Cross-Industry Standard Process for Data Mining (CRISP-DM).
  2. Use the Pyramid Principle to structure communications and to influence stakeholders to make data-informed decisions.
  3. Exercise data visualization skills including design of static graphs and charts, and interactive dashboards.
  4. Practice developing presentations and writing papers to convey information from analyses, models and research.

CS 228: Programming for Text Analytics

Credits: 2.00

Students will learn to process natural language using a high level programming language like Python or R. This course is part of the Data Analytics for Professionals program. Prerequisite(s): Completion of CS 219 Advanced Data Processing or instructor permission.

Course Level Objectives

  1. Extract, transform and load raw text data files into Python development environment.
  2. Convert raw text data into meaningful components for word frequency analysis and other relational analyses (e.g. parse data into phone numbers, email addresses etc.)
  3. Use natural language processing libraries to extract meaning out of text data including use of lemmatization to detect topics and evaluate sentiment.

CS 240: Android Applications Development

Credits: 5.0

An introduction to Android app development using the Kotlin programming language. Students explore the Android software development kit, agile methodologies, data storage options, and user-friendliness and accessibility issues by developing their own working Android app. Prerequisite(s): CS 115 or other college-level programming course with a grade of 2.5 or higher or instructor permission.

Course Level Objectives

  1. Develop and test multiple-activity applications within the Android environment.
  2. Design user-friendly and accessible human interfaces.
  3. Store and retrieve application data using various available technologies.
  4. Access core Android applications from within an app, such as email, messaging, calendars, maps, browsers, contacts, and others.

CS 255: Special Topics in Computer Science

Credits: Maximum of 5.0 possible

Current topics of interest to students of computer science. Topics will change from offering to offering. Prerequisite(s): A minimum of four computing related courses or instructor permission.

Course Level Objectives

  1. Understand basic principles involved in the topic of consideration.
  2. Implement a small program or system that makes use of principles involved in the topic.

CS 285: Three-Dimensional Game Development Project

Credits: 5.0

Application of basic 3D game concepts, techniques, and tools to the design and creation of a 3D game. Prerequisite(s): CS 161 or instructor permission.

Course Level Objectives

  1. Utilize 3D objects in 3D space.
  2. Incorporate Collision concepts in a 3D environment.
  3. Implement sound and music attributes.
  4. Develop and use Art assets.
  5. Present a design for a 3D game and answer questions about it.
  6. Work cooperatively and efficiently in a team to complete a working 3D game.

CS 290: Intro to Software Testing and Quality Assurance

Credits: 5.0

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(s): CS 115 with a minimum grade of 2.5 or instructor permission.

Course Level Objectives

  1. Complete a standardized bug report.
  2. Distinguish between black box and white box testing and between structural and functional testing.
  3. Create black box test plan for a program.
  4. Describe the overall goals and limitations of testing and software quality assurance.
  5. Describe the key components of a testing model including the project, environment, program, bug, and tests.
  6. Describe tactics for finding and analyzing both reproducible and nonreproducible coding errors and be able to find and analyze such errors in a program.
  7. Describe regression testing and its general purpose.
  8. Describe the purpose, domain, and limitations of automated testing.

CS 299: Special Project: Computer Science

Credits: 5.0

Special study to be arranged by student and supervising instructor. S/U grade option. Note: Credit available with approval. For more information contact the division secretary in Alderwood Hall 218A or phone 425.640.1679.

Course Level Objectives

  1. Successfully complete a project related to the specified topic.

TOP