Immersive, collaborative and designed to unlock your creativity—for over 130 years Cogswell has been helping people turn their passion into their professions. Today, it’s your turn. Explore our program offerings to help you develop the skills you need for the job you’ll love.
Pairing business, technology and creativity, our students come to the heart of Silicon Valley to deepen and grow their passions. The result? A skilled and dynamic community with a social life that is surprisingly robust.
Software Development Concentration
B.S. in Game Design Engineering
B.S. Software Engineering:
Web and Mobile Concentration | 127 Credits
Remedial classes are required when a placement test is not passed.
Second Academic Year (Fall, Spring, and Summer)
Third Academic Year (Fall, Spring, and Summer)
Topics include principles and applications of factoring, rational expression, radicals, solutions and graphs of linear, quadratic equations and inequalities; polynomials, rational,exponential, trigometric, and logarithmic functions; matrices, determinants, complex numbers.
Prerequisite: Placement Test or Intermediate Algebra (MATH003)
Intermediate Algebra including exponents and polynomials, equations and systems of equations in one and two variables, functions and graphs, and exponential and logarithmic functions.
Credit earned does not count towards a degree.
Extensive written work stressing correct spelling, accurate sentence structure, and logical paragraph development.
Credit earned does not count toward a degree.
This course develops written communication and critical thinking skills. It explores techniques and practices of expository and argumentative writing. Students learn to generate ideas for writing based on readings, learn to organize and support their ideas, and learn to apply techniques of revision to produce polished, professional work. Content, format and correct grammatical structures are emphasized.
Prerequisite: Passing grade on English Placement Test or Grammer and Composition (ENG050)
Students should consult with their faculty adviser or staff adviser when selecting or registering for any general education or elective course to ensure that the course meets the requirements of the program. Students must meet prerequisites in order to register in any course.
Students should consult with their faculty adviser or staff adviser when selecting or registering for any general education or elective course to ensure that the course meets the requirements of the program.
Graphics is at the core of many applications, and is the outward facing aspect of the application. The Graphics Mobile Programming course is designed to teach students how to program graphics using OpenGL from writing basic graphic shapes to the use of shaders and 3d effects. Learn how to program the graphics pipeline using shaders, add colors, shading, 3D projections, touch interaction, and more. Advanced effects involving particles, lighting models, and the depth buffer, debugging your program, and what to watch out for when deploying to the market will also be covered.
Prerequisite: Mobile Programming for iOS (SWE375) or Mobile Programming for Android (SWE376)
Animation and ActionScript programming to create interactive animations, applications and games. First covered are basic digital animation concepts such as tween, masking, frame-by-frame and key-frame animation. ActionScript is introduced initially in time-line context. Using AS code to control movement on stage and timeline for simple game applications. Using AS to load external content such as text, images, and sound. Finally, publishing to the web and mobile devices.
Mobile is everywhere, and programming for mobile devices has specific characteristics that put it apart from traditional setting. Small displays, small code footprint, adherence to View-Control-Model architecture, availability on different platforms, use of location-aware services and other sensors, and so forth. This course will involve hands-on application implementation for mobile platform.
Prerequisite: Java Programming (SWE212) or C++ Programming: Object Oriented Programming (SWE285)
Prerequisite: Java Programming (SWE212) 0r C++ Programming: Object Oriented Programming (SWE285)
Academic internships are online three-credit classes that run concurrently with external work-based experiential learning. As a faculty run course, students are required to complete academic assignments specifically designed to enhance the learning experience through in-depth reflection and critical analysis of the work environment. Students are expected to log on to canvas and/or meet weekly to complete assigned activities and interact with faculty assigned to the course. Along with the faculty interaction and assignments students are required to complete 135 hours contact hours with the internship site.
Prerequisite: Junior Status
Implementing the project plan, and delivering a working solution. Being a real-world project, this involves iterative refinement process of the approach to solution, and tradeoffs according to constraints. In addition, this part will emphasize the proper documentation of the whole project, and will combine parts from the previous session with a full description of the solution and the process.
Prerequisite: Senior Project I: Planning (SWE484)
General Multitasking operating system. Scheduling Algorithms. Deadlocks. Concurrency problems and solutions. Process management. Thread management. Disk management. Memory management. Virtual memory. File system organization. Security. Students learn how UNIX, LINUX, and Windows operating systems are designed. Students practice data structures in operating system design.
Prerequisite: Linux Programming Environment and Data Structures and Algorithms
Selecting a relevant problem or task to address in this project. Building the project plan, acquiring the knowledge needed for the specific task, and possibly generating a few 'proof-of-concept' cases to demonstrate the viability of the suggested solution. At the conclusion of this phase the project should have a clear written product specifications, engineering specifications, and a project plan.
Prerequisite: Senior Status
Project management is the discipline of planning, organizing, and managing resources to bring about the successful completion of specific project goals and objectives. Project teams will gain practical experience in completing an assigned project by organizing it, assigning tasks, and developing a sequence of activities. Students will become fluent in MS Project and Excel through the creation and management of timetables, schedules, project completion, progress tracking and results evaluation.
Multiple Inheritance. Virtual base class. Virtual functions. Smart pointers. Run time type information. Template Meta Programming. Generic Programming. Concurrency in C++. Applications to game engine.
Prerequisite: C++ Programming: Object Oriented Programming
The software life cycle. Software development methods top-down and bottom-up. Reusability and portability. Documentation development: analysis, specification, design, implementation, testing, operational documents. Inspection walk-through and design review. Students practice project management through software life cycle. Object oriented analysis and design. Managing complexity with abstraction.
Prerequisite: C++ Programming: Object Oriented Programming
Technologies used in the design and implementation of embedded systems. Introduction to software tools such as compilers, schedulers, code generators, and system-level design tools. Introduction to computer organization: CPU, I/O, Memory. INTEL/MIPS Assembly language. Linking C and Assembly Language.
Prerequisite: C Programming (SWE110) and Calculus I (MATH143)
Introduction to generic computer architecture. The Processing Units; ALU, CPU. Instruction cycle behavior and sequencer. Microprogrammed Control. Main Memory. Memory Management. I/O subsystem, disk controller. A complete simple computer design. Computer Arithmetic Algorithms. Principles of pipelining. Discuss CISC and RISC Architectures.
Prerequisite: Data Structures and Algorithms (SWE295)
Fundamentals of sound, light electricity and magnetism, and modern physics, including illumination, reflection, refraction, interference, diffraction, polarization, DC and AC circuits, magnetism, electrochemistry and electronics. Illustrative work to compliment theory. Students are introduced to physics concepts for science and engineering.
Prerequisite: College Physics I (SCI145)
Descriptive geometry: points, lines, planes, intersections, spatial relationships. Transformations. Projective Geometry: plane transformations, homogeneous coordinates, space transformations, perspective projection. Differential Geometry: Theory of curves and surfaces. Quaternions and rotation sequences.
Prerequisite: Calculus II (MATH144)
Non-object oriented features of C++. Constructors and Destructors. Type Coversions. Friends. Overloading functions and operators. References. Polymorphisms. I/O streams. Multiple Inheritances. Templates. Memory Management. Students practice the object oriented paradigm.
Prerequisite: Introduction to Scripting: Python (SWE100), C Programming (SWE110), or Java Programming (SWE212)
Structure of UNIX/LINUX file systems. Shell programming. Discuss different shells. Filters. UNIX/LINUX system calls. Documentation Preparation. Standard I/O Library. AWK programming language. SED editor. Students practice programming in the UNIX/LINUX environment.
Prerequisite: C Programming
Logic. Set theory. Functions. Relations. Proofs by mathematical induction. Recursion and program correctness. Fundamentals of counting, and discrete probability. Elementary graph theory. Introduction to analysis of algorithms.
Development and improvement of effective oral communication skills in formal and informal settings. Emphasis on preparation of topics, development of student as effective communicator, and clear presentation of research.
Prerequisite: English Composition (ENG100)
Primitive types. Strings. Classes. Objects. Methods. References. Polymorphisms. Inheritance. Exception handling. Streams and file I/O. Arrays. Vectors. Applets and Introduction to threaded programming. Students are introduced to the object oriented paradigm.
Vectors. Lines. Planes. Quadratic surfaces. Polar. Cylindrical and spherical coordinates. Partial derivatives. Directional derivatives. Gradient. Divergence. Curl. Chain rule. Maximum-minimum problems. Multiple integrals. Parametric surfaces and curves.
Technical and Professional Writing prepares students to communicate effectively with stakeholders who may not be technically savvy. Emphasis is on improving basic writing skills through the creation of technical and non-technical documents. Creating clear and concise sentences and paragraphs, using correct punctuation and mechanics, using graphs and figures and the citation of sources are stressed. To support these writing tasks, the course guides students through the drafting and revision processes, and ensures readability and accessibility for technical and non-technical audiences.
Mobile is everywhere, and programming for mobile devices has specific characteristics that put it apart from traditional setting. Small displays, small code footprint, adherence to View-Control-Model architecture, availability on different platforms, use of location-aware services and other sensors, and so forth. This course will involve hands-on application implementation for mobile platform. We will focus on native programming (using Objective C) on iOS platforms.
Introduction to hardware and software tools. CPU, memory, disks and files. Program development flow. Introduction to C programming: lexical elements, operators, fundamental data types, flow of controls, functions, recursions, arrays, pointers, strings, bit-wise operators, structures, unions, file manipulation. Students learn structured programming paradigm.
Prerequisite: College Algebra and Trigonometry (MATH115) or Pre-Calculus (MATH116)
Fundamentals of mechanics, fluids, and heat, including vectors, translation and equilibrium, acceleration, projectile motion, Newton's Laws, work, energy, power, impulse, momentum, uniform circular notion, rotation of rigid bodies, simple changes, elasticity, simple harmonic motion, fluid statics and dynamics, temperature, thermal expansion, heat units, heat transfer, thermal properties of matter, the thermodynamics and wave motion. Illustrative laboratory work to complement theory. Students are introduced to physics concepts for science and engineering.
Prerequisite: Calculus I (MATH143)
Integration by trigonometric substitution, by parts, and by partial fractions. Arc length. Indeterminate forms. Improper integrals. Taylor’s Theorem including a discussion of the remainder. Sequences. Series. Powerseries. Separable differential equations. First order linear differential equations. Homogeneous second order linear differential equations with constant coefficients.
This class is a practical introduction to programming using the Python programming language. Topics include the concepts of declarative (“what”) versus imperative (“how”) programming, problem breakdown, and solution techniques. Basic subjects and terms in computer science will be introduced, such as data structures, efficiency of a program and object oriented programming. Emphasis is put on the syntax of the programming language, and the process of starting with a problem and writing a program to solve it. Students will implement several small programming projects during the course.
Functions. Limits. Derivatives. Curve sketching. Mean Value Theorem. Trigonometric functions. Related rates. Maximum-minimum problems. Inverse functions. Definite and indefinite integrals. Logarithmic, exponential, and hyperbolic functions. Applications of integration. Simple differential equations.
Prerequisite: Pre-Calculus (MATH116)