skip to content
  • Calendar
  • Maps

Course Offerings

Spring 2025

Course

CRN*

Instructor

CS 1010 31759 Cody Squadroni
CS 1030 31795 Marrie Mack
CS 1400 31843 Alison Sunderland
CS 1410 31852 Robert Kumar
CS 2130 31860 Yong Zhang
CS 2420 31882 Kyle Feuz
CS 2550 31896 Marrie Mack
CS 2810 31985 Kim Murphy
CS 3230 32007 Robert Kumar
CS 3550 32019 Rich Fry
CS 3620 32021 Cody Squadroni
CS 3100 34915 Yong Zhang
WEB 1430 35196 Rich Fry

* There are additional sections of these courses that provide a later start date. These can be used to maintain progress in the program. For example, when you complete a course early in the semester you can begin a new course. If you are interested in a non-traditional start date, please contact Julie Christensen, the Academic Coach for assistance. You can email Julie at csflex@weber.edu or set up an appointment using the Academic Coach Appointment Scheduler. 

 

CS 1010 - CA Introduction to Interactive Entertainment

This course examines and analyzes the history, philosophy, and impact of digital entertainment (video and computer games along with simulations) on an individual and society. Students take a critical look at the artistic, but also the cultural, economic and social aspects of this expressive medium. Students imagine and articulate their own ideas and work through a series of projects helping them understand the creative challenges behind interactive entertainment design. Implications of certain values embedded in games will be discussed. Elements of the ethical code of conduct for a game creator will be formulated. The issue of balancing individual creativity vs. socio-cultural impact will also be discussed. Students will be required to play video games outside of the regularly scheduled class times. A lab fee is required for this class.

CS 1030 - Foundations of Computing

Computers are an essential part of every occupation. Having a basic understanding of computers will help students become more confident users.  This course is taught at an introductory level and presents a broad overview of topics in computing such as personal digital security, ethical behaviors in education and business, how computers work and communicate with one another, how data is stored and used in a computer, and how to create a website and write a computer program.

CS 1400 - Programming I

Most technology, such as airplanes, laptops, smartphones, and appliances, depends on computer programming to function. This course introduces students to computer programming using a modern programming language.  Designed for students with little or no programming experience, it covers topics including logical problem solving, basic input/output, conditionals, loops, functions, arrays, classes, utilizing language libraries, development environments, and program debugging. Students will gain a basic understanding of how to create software for all computing environments.
 

CS 1410 - Object-Oriented Programming

An introduction to the C++ language. Topics will include data types, control structures, functions, pointers, arrays, I/O streams, classes, objects, encapsulation, overloading, inheritance and use of these concepts in problem solving.
Pre-requisites: CS 1400 or CS 2250 and ENGL 1010 or ENGL 2010.

CS 2130 - Computational Structures

An overview of the fundamentals of algorithmic, discrete mathematics applied to computation using a contemporary programming language. Topics include sets, functions, logic, matrices, relations, graphs, trees, regular expressions, grammars, finite state machines, and data encoding.
Pre-requisite(s): CS 1400.

CS 2350 - Client Side Web Development

This course provides an introduction to client-side programming and Web page development. Subjects covered include responsive Web page design and dynamic Web page development. The course will explore various technologies such as HTML5, CSS3, JavaScript client-side programming, and an introduction to a JavaScript framework.
Pre-requisite: CS 1400.

CS 2420 - Introduction to Data Structures and Algorithms

General principles of common data structures and design of efficient algorithms. Topics include: arrays, linked-lists, stacks, queues, trees, graphs, tables, storage and retrieval structures, searching, sorting, hashing, and algorithmic analysis. Emphasis will be on abstraction, efficiency, re-usable code, and object-oriented implementation.
Pre-requisite: CS 1410.
Pre-requisite/Co-requisite: MATH 1080 or MATH 1050 and MATH 1060.

CS 2450 - Software Engineering I

An Object Oriented Analysis and Design course which provides practical guidance on the construction of object-oriented systems. Its specific goals are to provide a sound understanding of the fundamental concepts of the Software Development Life-Cycle, to teach quality design and development style through applications of object-oriented project development within a variety of problem domains, and provide coverage of current Software Engineering models and diagramming techniques.
Pre-requisite: CS 1410.

CS 2550 - Introduction to Database Design and SQL

This course is an introduction to databases, specifically focusing on the relational database model, database design and modeling and the structured query language (SQL). Students will become proficient at formulating data query requests using SQL and will also gain experience in database normalization and entity-relationship modeling.

CS 2705 - Network Fundamentals and Design

Provide an understanding of the basic networking terminology.  This will cover the theory of networking, types of network protocols, and wide and local area networks.  The student should have a good understanding of network terminology at the completion of the course.
Pre-requisites: CS 1030 and CS 1400.

CS 2810 - Computer Architecture/Organization

Computers are essential to modern life, yet most people use them with no understanding of how they accomplish everything they do. This course will explore how computers function from a technical perspective, allowing students to see why they work and are designed the way they are. The course will focus on Von Neumann computers, covering a variety of topics including logic gates, basic digital circuit concepts, number and data representation, the processor implementation, BIOS, buses, interrupts, addressing, memory management, and storage. The practical implementation of this knowledge will be examined by introducing assembly language code.

Pre-requisite(s): CS 1410 or (CS 1400 and NET 2210).

CS 3100 - Operating Systems

An overview of computer operating system from the programmer’s point of view. Input-output hardware, interrupt handling, properties of external storage devices, associative memories and virtual address translation techniques, optimizing programs for performance, concurrent programming with threads, and network programming.

Pre-requisite(s): CS 2420 and CS 2810.

CS 3280 - Object Oriented Windows Application Development

This course is designed to teach students how to write Windows programs in C# using the .NET environment. The student will learn how to develop programs based on Windows Applications and the .NET Framework. They will also be introduced to APIs and MFC/AFX styles of Windows programming and to become familiar with various data sharing methods and .NET services. 

Pre-requisite(s): CS 2420

CS 3030 Scripting Languages

 This course addresses the design of scripting languages and their applications. Scripting languages can be used to manipulate text and data using subtle and complex coding to automate many tasks. Students will learn to write simple scripts to automate system administration tasks using appropriate languages. This course explores the nature of scripting, the role of scripting languages, introduces some of the popular scripting languages and their applications, and provides skills in scripting language design.

Pre-requisite(s): CS 1400 and CS 2705 or CS 1400 and NET 2210.

CS 3230 Object Oriented User Interface Development with Java

An intermediate programming course that covers the "core" features of the Java programming language with the goal of preparing students to focus on specialized uses of Java. Topics include object-oriented programming and polymorphism, graphics, event handling, building graphical user interfaces with Swing, multithreading and synchronization, and error handling.

Pre-requisite: CS 2420.

CS 3550 Adv Database Programming

Students will build upon the basic database knowledge and skills gained in the introductory database course. Advanced database knowledge will be gained through the design and implementation of an enterprise-level database. Students will perform database programming techniques such as stored procedures, user-defined functions, cursors, triggers, and distributed queries. Various database paradigms will be used in the course including RDBMS and NoSQL.

Prerequisties: CS 2550 with a minimum grade of C and (CS 1410 with a minimum grade of C or CS 3030 with a minimum grade of C or WEB 3200 with a minimum grade of C)

CS 3620 - Server-Side Web

An introduction to server-side web architectures using current server-side technologies. General web development principles such as usability, reliability, maintainability, security, and scalability will be taught. Students will also learn how to architect and apply server-side technology to create both dynamic websites, and API's at scale using industry best practices.

Pre-requisite(s): Cs 2550 and (CS2350 or WEB 1430).

CS 3750 - Software Engineering II

This course emphasizes teamwork in small groups on a substantial software engineering project that will be performed for a real customer in the community. It is the intent of the course to provide a capstone experience that integrates the material contained in the CS curriculum through work on a software project that applies this material. Projects are chosen so as to provide an interdisciplinary service learning component with project proposals being solicited from the community at large. Projects that integrate students and faculty from other disciplines are also encouraged. Lectures will be directed towards the software development lifecycle, requirements gathering and design documentation, as well as software project management. Each team member will contribute to all phases of the project as well as the development of a project prototype.

Prerequisites:

CS 2350 with a minimum grade of C and CS 2450 with a minimum grade of C and CS 3550 with a minimum grade of C and CS 2899 with a minimum grade of CR and (CS 3230 with a minimum grade of C or CS 3280 with a minimum grade of C) and (ENGL 3100 with a minimum grade of C or ENGL 2250 with a minimum grade of C or PHIL 1250 with a minimum grade of C or NTM 3250 with a minimum grade of C or PS 3250 with a minimum grade of C)

CS 4110 - Concepts of Formal Languages and Algorithms for Computing

Concepts of formal language definition, automata theory, Turing theory, and solvability, with an introduction of algorithms and computational methods used in advanced computer science courses.

Pre-requisite(s): CS 2420 and either Math 1630 or CS 2130.

ETC 2001 - SS/DV Engineering Culture

Engineering Culture describes the culture of engineering and the social and scientific practices as well as beliefs that engineers ascribe to in pursuing their profession. It also describes how culture is shaped by engineering and by the technologies that engineers make and maintain.  This course examines the professional cultures that engineers inhabit as well as the way that a wider culture is shaped by engineering.

Web 1430 - Client Side Programming

This class introduces the JavaScript language, with a focus on advanced language features and client-side web programming. Topics covered include basic syntax, object-oriented programming, higher-order functions, the DOM, and AJAX. This class will also introduce JQuery.

Pre-requisite(s): (Web 1400 or CS 1030) and CS 1400