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
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