Bachelor of Science in Civil Engineering

The Bachelor of Science in Civil Engineering program prepares students for a wide variety of careers including the design, inspection, and management of structures, transportation systems, and environmental systems. The program offers two tracks. Students can pursue a traditional civil engineering program allowing students to specialize in transportation, structures, or advanced project modeling. Students can also earn a concentration in environmental engineering. The distinguishing feature of all our engineering programs is the careful balance between teaching theory and hands-on experience. Our goal is to prepare students to use the latest technology to meet the demands of the Commonwealth and to be practical engineers throughout their career.

Transfer Students

The first two years of the proposed program were carefully designed to include courses that are offered at many, if not all, of our sister institutions within the State System as well as at Pennsylvania’s Community Colleges. Students can complete their first two years at any of these institutions and can then transfer to Ship to complete their mechanical engineering degree.

Engineering Versus Engineering Technology Degrees

Engineering programs present a focus on engineering theory and design, supported through advanced science and higher-level mathematics through advanced calculus and differential equations. Engineering Technology programs typically focus on applied sciences and mathematics such as algebra and applied calculus. Graduates of an engineering program may be called engineers; graduates of a four-year engineering technology program are called engineering technologists. Graduates of an engineering program are prepared to continue on to advanced study at the master’s or doctoral level. Graduates of an engineering program may work to earn the professional engineer license; whereas the National Society of Professional Engineers opposes acceptance of engineering technology. ABET provides a good summary that describes the differences.

Shippensburg University has the only civil engineering program in Pennsylvania's State System of Higher Education and only one of twelve in the Commonwealth of Pennsylvania.

Civil engineering students will benefit from the department's faculty expertise and strengths, especially pertaining to their focus on first-year student success. In addition to expert faculty committed to providing students with learning experiences they can use in the real world, students will also have access to resources unique to the department:

Inter-Connections - Students in the Civil Engineering program will learn to work on interdisciplinary teams of students from our other engineering programs (Mechanical, Software, Computer, and Electrical Engineering), they will share the common Engineering Core, get advisement from a diverse faculty, and collaborate on interdisciplinary research and development projects.

Crews - In an effort to increase student to student interaction, every student is assigned a crew when they arrive. They earn points for their crew all year long by participating in extra-curricular activities, helping faculty, doing work beyond course requirements, and through crew competitions.

CS & Engineering Deck Living-Learning Community (LLC) - Students enrolled in computer science and engineering programs can choose to live in an LLC in one of the new suite-style residence halls. First-year students in the LLC are enrolled in three courses together, and benefit from living with upper-class computer science and engineering majors. Students who choose to live in the LLC will also receive additional support and programming from faculty and staff.

Student Organizations - Student clubs and organizations can help you develop relationships with your peers and help to build a stronger campus community. Computer science and engineering student clubs include: Women in Computer Science and Engineering, the Software Engineering Club, and the Programming Team, which participates in annual programming competitions.

BROADSIDE Center - The department continually works with local businesses to place students in internships, and also provides consulting involving faculty and students, through its BROADSIDE Center. Computer science and engineering graduates find employment across the region and nationally.

Demand for civil engineers is continues to be strong. Graduates will have the skills necessary to work as civil engineers or go on to earn the Professional Engineer license. The Commonwealth is forecasted to need 14,640 civil engineers by 2024, with an expected 8.3% growth rate. The situation in the Mid-Atlantic region calls for an additional 5,980 engineers (13% increase), which will put additional competitive pressure on the Commonwealth’s employers. This makes civil engineering one of the most in-demand fields. The same report identifies civil engineering as one of the top demand gaps for the South Central Pennsylvania region

Graduates will be prepared and encouraged to take the Fundamentals of Engineering exam, the first step to earning their Professional Engineering certificate. Some of our graduates will be expected to go onto earn master's and doctoral degrees in engineering, while others may choose a career track towards project management and work towards a Master of Business Administration.

Ultimately, graduates of this program must be able to analyze and solve complex problems, work to deadlines and under pressure, communicate with others across disciplines, and identify cost/value trade-offs within the social, cultural, economic, environmental, health and safety, and ethical aspects of a project.

To gain admission to the program, students must meet the criteria for admission to Shippensburg University and must be ready to start Calculus 1 as demonstrated through previous completion of advanced math courses, SAT scores, or placement tests. Students who are not ready to start Calculus 1 are placed into the "Computer Science & Engineering General" category and are given courses that will prepare them to meet the challenges and rigors of an engineering program. When they meet the math requirement, they can declare the major. There are no waiting lists.

CIVE110 Measurements and CAD

Credits: 3Description: The course introduces the principles and methods for measuring different quantities in the lab and in the field. Students will collect data and then using a CAD tool, such as AutoCAD Civil, create a site plan and then make a presentation of the prepared plan. Students will work in small teams to complete these tasks.

CIVE200 Mechanics of Materials

Credits: 4Description: The course provides an introduction to the strength of different materials. Students will learn about different types of stresses, how to analyze and measure those stresses and find the limits of the materials. Students will design and build models to test how well their designs can meet project requirements.

CIVE310 Design of Steel Structures

Credits: 3Description: The design and behavior of steel structures. Course analyzes the strength and limits of steel members including girders, beams, and columns. The course will also study the behavior and design of different joining techniques, including welding, bolting, and gusset plates. Mixed concrete and steel structures will also be introduced. Students will also learn about relevant safety considerations and code requirements for building steel structures.

Prerequisites: CIVE300 Structural Analysis with C or better.

CIVE320 Construction Methods and Materials

Credits:3Description: This course provides an introduction to a variety of construction methods and the materials used in them. Students learn about the material properties, such as hardness, torsional strength, and tensile strength. Students will also study the long-term mechanical and non-mechanical properties of various building materials and the physical properties that act on them, such as corrosion, cold and work hardening, and fatigue. Students will also study different construction methods and the applicability of materials to those techniques. Students will carry out lab experiments on materials and will work to design and test scale models.

Prerequisites: CIVE200 Mechanics of Materials C or better

CIVE330 Environmental Engineering

Credits: 3Description: An introduction to topics in environmental engineering. The course provides an introduction to environmental chemistry, air and water pollution, environmental mass and energy balances, and interactions between the air-water interface. The course also studies topics in sustainability, including waste management, risk assessment, and impact human activity has on the environment.

Prerequisites: CHM121 - Chemical Bonding with C or better

CIVE340 Reinforced of Concrete Structures

Credits: 3Description: Introduces topics related to reinforced concrete structures. Specifically, the different types of loads that they experience including flexure, shear, axial loads, and torsion, strategies for designing using different types of concrete and targeting different types of structures, including beams, columns, and slabs.

CIVE420 Transportation Engineering

Credits: 3Description: An introduction to transportation engineering. Topics include planning and design to operation of transportation systems. The course will explore the various modes and complexity of various transportation systems as both a human activity and as an engineering discipline.

Prerequisites: Junior or senior standing

CIVE430 Project Modeling

Credits: 3Description: Introduction to site data collection and modeling site characteristics. The course also introduces the finite element method for modeling physical system and its application to structural analysis.

Prerequisites: CIVE300 Structural Analysis with C or better

CIVE440 Water and Wastewater Treatment

Credits: 3Description: This course introduces theory and practice used to treat water into either safe drinking water or wastewater that is safe to reintroduce to the environment. Topics include different types of pollutants, processes to treat those pollutants, and measuring the impacts of those processes on the performance of a treatment system.

Prerequisites: CIVE330 Environmental Engineering - C or better.

CIVE450 Waste Management

Credits: 3Description: Introduces topics around solid and hazardous waste management engineering. Topics include technology for collection and disposal, health and policy issues, regulations, distribution of contamination into the environment, and impacts on public health and safety.

Prerequisites: CIVE330 Environmental Engineering - C or better.

CIVE499 Civil Engineering Capstone

Credits: 3Description: The goal of the capstone project is to provide students with an opportunity to work on a real-world engineering project and provide valuable experience to the students. Under the supervision of faculty, students will work on teams with other engineering students to lead the design and development, and ultimately the final approval of the project.

CMPE220 Computer Organization

Credits: 4Description: Introduces organization and architecture of computer systems from the standard von Neumann model to more recent architectural concepts. Internal structure and organization of a computer leads to significant differences in performance and functionality, giving rise to an extraordinary range of computing devices from hand-held computer to large-scale, high performance machines. To gain a better understanding of exactly how a computer functions, students will write programs in a common assembly language.

Prerequisites: CSC 111 for level with C or better or ELEC 100 with C or better) AND MAT 225 with C or better

CMPE320 Operating Systems

Credits: 4Description: An operating system provides an abstract interface with which programmers can control hardware. The study of this area includes both the use of operating systems (externals) and their design and implementation (internals). This course will include laboratories to simulate or experiment with operating system concepts. Topics include overview of operating systems, processes and concurrency, memory management, scheduling, input/output and file systems, system performance evaluation, ethics, and security.

Prerequisites: CMPE 220 with C or better

CMPE322 Microcontrollers & Interfaces

Credits: 4Description: Students will use basic microprocessors and TTL logic components to created embedded solutions to real-world problems including: basic device control, serial and wireless communications, EEPROM storage and retrieval, and interfacing with analog sensors. Students will use assembly and C languages for software development, and will use basic electronics skills to connect components. COREQUISITE: PHY313 Intermediate Physics 2

Prerequisites: (CMPE 220 or CSC 220 with C or better) AND PHY 355 with C or better

CMPE410 Real-Time and Mobile Computing

Credits: 4Description: Students will develop applications for real-time operating systems and today's hand-held devices. Students will learn about hard and soft real-time systems, differences between general purpose operating systems and real-time operating systems (RTOS), how to identify and meet real-time goals in an application. Students will also learn how to design, develop, and deploy applications to a mobile operating system, such as a modern smartphone, PDA, or table computer.

Prerequisites: CMPE 320 with C or better.

CMPE420 Digital and Reconfigurable Computing

Credits: 4Description: Students will develop solutions using high performance digital circuits based on embedded processors and Field Programmable Gate Arrays (FPGA). Students will use Verilog to create, simulate, and test their solutions, and to ensure they meet the timing and packaging constraints of the problem. Students will also write code for portable computer systems, such as PDAâ€™s and cell phones.

Prerequisites: CMPE 320

CMPE498 Engineering Research Methods

Credits: 2Description: Computer and Electrical Engineering students enrolled in this course will work under the direction with faculty to conduct directed research in an area related to Computer and/or Electrical Engineering. Students will use basic research strategies, including literature reviews, designing experiments, and conducting tests to complete a research project. Students are expected to produce results that lead to external publication at a conference or in a journal. This course is designated as a capstone course for Computer and Electrical Engineering. Although the course is two credit hours, students should expect to work considerably more to complete their projects.

Prerequisites: CMPE 322 with C or better

CMPE499 Engineering Design and Development

Credits: 2Description: Computer and Electrical Engineering students will work together in development teams to complete a development task. Starting from a given problem, they will plan and design a solution to that problem, and then go on to implement and test their plan. Students demonstrate their capabilities by using the engineering method to analyze the problem to develop requirements, estimate time and costs, perform safety and risk analysis, and develop an implementation plan. The team will then follow that implementation plan to develop their solution and demonstrate their final product. This course is designated as a capstone course for both Computer and Electrical Engineering. Although the course meets for 2 credit hours per week, students should expect to work substantially more hours with their team, outside of class. Graduate students are not permitted to take this course.

Prerequisites: CMPE 322 with C or better

CSC106 Computer Science I Lab

Credits: 1Description: An introduction to computer programming from an object-oriented perspective. Students will complete several programs with an emphasis placed on good software engineering principles and development of good programming skills. Students will implement complete programs using an object-oriented programming language and development environment. Programming assignments will address the implementation and use of fundamental programming techniques including algorithm design, documentation, style, and debugging; fundamental program constructs including simple data types, and control structures; fundamental object oriented techniques including classes, abstraction, polymorphism, inheritance, and encapsulation; and fundamental software engineering principles.

Prerequisites: None

CSC107 Computer Science I Lab

Credits: 1Description: An introduction to computer programming from an object-oriented perspective. Students will complete several programs with an emphasis placed on good software engineering principles and development of good programming skills. Students will implement complete programs using an object-oriented programming language and development environment. Programming assignments will address the implementation and use of fundamental programming techniques including algorithm design, documentation, style, and debugging; fundamental program constructs including simple data types, and control structures; fundamental object oriented techniques including classes, abstraction, polymorphism, inheritance, and encapsulation; and fundamental software engineering principles.

Prerequisites: None

CSC110 Computer Science I

Credits: 3Description: An introduction to computer programming from an object-oriented perspective. Students will complete several programs with an emphasis placed on good software engineering principles and development of good programming skills. Students will implement complete programs using an object-oriented programming language and development environment. Topics include: fundamental programming techniques including algorithm design, documentation, style, and debugging; fundamental program constructs including simple data types, and control structures; fundamental object oriented techniques including classes, abstraction, polymorphism, inheritance, and encapsulation; and fundamental software engineering principles.

CSC111 Computer Science II

Credits: 4Description: Students will reinforce their proficiency with core programming techniques by developing more challenging programs than in CS1. Students will apply new techniques such as pointers, structures and unions to create advanced programs and solutions. Students will also need to improve their solutions to enhance efficiency and soundness. Topics include intermediate programming techniques; using advanced data types including multi-dimensional arrays, queues, stacks, linked lists, recursion , sorting and searching algorithms.

Prerequisites: CSC 110 with C or better.

CSC310 Design and Analysis of Algorithms

Credits: 4Description: Examines various techniques for designing algorithms and analyzing their efficiencies, and examines and compares their efficiency of execution. Studies the theoretical foundations for analysis of algorithms and the ramifications of design strategies on efficiency.

CSC361 Video Game Programming

Credits: 4Description: This course will look at the key concepts needed to build 2D and 3D video games using an existing game engine. The course will look at asset management, animation, collision detection physics, and user input. Additionally, It will look at some key design patterns related to game programming.

Prerequisites: SWE 200 with C or better.

CSC371 Database Management Systems

Credits: 4Description: Detailed examination of theory and practical issues underlying the design, development, and use of a DBMS. Topics include characteristics of a well-designed database; high-level representation of an application using ER modeling; functional dependency theory, normalization, and their application toward a well-designed database; abstract query languages; query languages; concurrency; integrity; security. Advanced topics may be included (e.g., distributed databases; object-oriented databases). Theory to practice is applied in a number of projects involving the design, creation, and use of a database.

Prerequisites: (CSC11 with C or better and CMPE320 with C or better) or GPRE level 1

CSC434 Web Programming

Credits: 4Description: Teaches how to set up a website typical of one used in an online business. Includes preparing web pages in HTML, writing client-side scripts in Vbscript or JavaScript for active web pages, writing server-side scripts in Vbscript for active server pages, learning to set up and access a database for processing online ordering and searches, and some web server administration. Students will establish a website for an imaginary business of their choosing.

CSC462 Artificial Intelligence

Credits: 4Description: Overview of artificial intelligence. Emphasis on basic tools of AI, search and knowledge representation, and their application to a variety of AI problems. Search methods include depth-first, breadth-first, and AI algorithms; knowledge representation schemes include propositional and predicate logics, semantic nets and frames, and scripts. Planning using a STRIPS-like planner will also be addressed. Areas that may be addressed include natural language processing, computer vision, robotics, expert systems, and machine learning.

Prerequisites: SWE 200 with C or better, GPRE level 1.

CSC463 Introduction to Robotics

Credits: 4Description: Introduces the science of robotics from the perspective of artificial intelligence. Emphasizes various robot control architectures and their implementations using mobile robots. Topics include history of robotics; hierarchical, reactive, and hybrid architectures; Braitenberg vehicles; integration and calibration of sensors; construction techniques and considerations; and implementation of various types of behaviors.

Prerequisites: CMPE 220 with C or better or GPRE level 1.

CSC498 Research Methods

Credits: 2Description: Students will learn basic research strategies including conducting literature reviews, designing experiments, defining hypotheses, and writing proposals. The course will include topics including finding and evaluating sources of information, defining topics, developing and supporting a hypotheses, and acceptable research and experimental practices. Students will develop a proposal for a research project to be completed in CSC 499. Graduate students are not allowed to take this course.

Prerequisites: CS Major with Junior Status and C or better in five computer science courses.

CSC499 Senior Research and Development

Credits: 2Description: Students will independently, but under the direction of the instructor of record, execute the proposal developed in CSC 498. Students will conduct the experiments outlined in their testing / implementation plan. Students will then analyze the results and determine if their hypothesis was supported or not. The goal of this course is to gain experience with a formal development process and understand how the scientific method, mathematical reasoning, logic, and algorithmic thinking will generate concrete answers to problems. Pre-requisite: Completion of CSC 498 with a C or better. Graduate students are not allowed to take this course

Prerequisites: CSC 498 with C or better.

ELEC210 Signals and Systems

Credits: 4Description: Signals and systems covers the basic concepts of signals and system modeling. Students will learn about the differences between time-domain and frequency domain representation of a signal and modes of analysis. Students will also learn about continuous and discrete signals analysis using a number of different techniques (e.g. Fourier Analysis). Students will use state of the art tools (e.g. MATLAB) to simulate and analyze systems that use signals propagation.

Prerequisites: MAT 212 with C or better.

ELEC230 Instrumentation

Credits: 3Description: This course provides an overview of the different mechanisms and instruments used to measure physical values such as temperature, pressure, flow, and force; that are common in modern industrial processes. The course provides background in the sources of measurement error and methods to compensate for them.

Prerequisites: PHY206 or PHY222 with C or better.

ELEC300 Foundations of Electronic Systems

Credits: 4Description: Foundations of electronic systems including basic circuit theory, and fundamental and composite devices. Advanced circuit theory includes circuit analysis laws including KVL and KCL, lumped matter approach, and isomorphic analysis. Basic devices (e.g., resistors and capacitors) will be modeled and used to construct composite devices (e.g., transformer is constructed from two mutual inductors). Non-linear devices (e.g., transistors and diodes) will also be modeled and used to construct other basic systems (e.g., amplifiers, voltage regulators). Students will use and extend PSPICE to model the ideal behavior of these systems.

Prerequisites: MAT212 with C or better and PHY221 with C or better.

ELEC323 Electronic Design and Processes

Credits: 4Description: Students will learn the principles of designing advanced circuits using state-of-the-art CAD tools to create a schematic within given engineering constraints, including factors such as functionality, physical limitations, cost, standard parts inventories, reliability, verifiability, signal integrity, and manufacturing complexity. Students will use advanced simulation tools to verify their designs. Students will learn about Printed Circuit Boards (PCBs), and will create a PCB layout for their schematic. Students will then use the lab facilities to manufacture their board, from blank copper plates to populated board. This board will then be inspected, verified, and reworked as needed. Finally, the student will learn how to use system programmers and debuggers to load their software onto the board, and deliver a completed system.

Prerequisites: CMPE 322 with C or better.

ELEC330 Control Systems

Credits: 3Description: This is a study of the design and implementation of control systems used across a wide range of modern mechanical and electrical systems. This course explores the theory behind control systems allows us to effectively model their behavior, including frequency and time domain models of these systems. Both open- and closed-loop control systems are developed, with a special emphasis on the PID controller. Students will ultimately learn how to take measurements from a physical system and build a model of that system, develop a control system that meets engineering requirements, and then actually implement that control system using MATLAB. Finally, students will compare the theoretical results and the actual results of their control systems.

Prerequisites: ELEC 230 with C or better or CMPE 322 with C or better

ELEC360 Communications Systems

Credits: 4Description: Introduction to analog and digital communication systems. Emphasis on engineering applications of theory to communication system design. Students will study the basics of sampling quantization, coding, signal detection, and digital modulation schemes including AM, FM, PAM, and PCM. Transmission of information and system performance in the presence of noise will be covered. Students will use state of the art tools such as MATLAB to analyze communication systems limited by bandwidth and noise.

Prerequisites: ELEC 210 with C or better.

ELEC422 High Speed Circuits

Credits: 4Description: Students will learn about analog and mixed-signal circuits including high-speed clocks, phase-lock- loops, A/D and D/A converters, and amplifiers. Students will also learn about principles of high-speed communications, including energy and band-width constrained waveforms, and various forms of signal modulations, and data encodings (e.g. 8/10b encoding).

Prerequisites: CMPE322 with C or better.

ENGR100 Engineering Seminar 1

Credits: 1Description: The goal of this course is to prepare the student for study in an engineering discipline. This will include general skills for achieving success in college in addition to an introduction to the engineering disciplines and the engineering development process.

ENGR110 Modeling and Simulation

Credits: 3Description: An introduction to modeling physical systems and simulating them using scientific computation software. Topics will include modeling dynamic systems, the basic mathematics of modeling physical systems, including difference equations, arithmetic and geometric series, spring-damper systems, open- and closed- loop systems. To support these topics, students will learn to use the MATLAB and Simulink systems, including basic expression evaluation, scalar, vector, and multi-dimensional variables, conditionals, repetition, and writing basic functions.

Prerequisites: Math placement 6.

ENGR120 Programming for Engineers

Credits: 3Description: An introduction to programming for electrical engineers. This course is a highly focused introduction to programming in C language. It covers the basics of programming including procedures, variables, types, loop, and control structures. The course introduces basic computing resources, and introduces algorithmic solutions to common engineering and numerical problems.

Prerequisites: Math placement 6

ENGR200 Engineering Seminar 2

Credits: 1Description: This course is focused on the tools that teams use to engineer solutions together. Participation in a team project will help the students learn about and apply current team coordination tools for project management, configuration management, and personal improvement.

ENGR300 Engineering Seminar 3

Credits: 1Description: The goal of this course is to prepare the student for upper class courses and entering the workplace. Career preparation will include strategies for finding internships and full-time positions and preparing for the hiring process (building a resume, writing a cover letter, and interviewing). Academic preparation will be focused on how to find and read journal publications on a given topic.

ENGR310 Statistical Process Control

Credits: 3Description: The course will develop the studentsâ€™ understanding of statistical process control. A variety of control charts will be used for assessing process stability and estimation of process capability. Â We will also study how engineers design experiments based on statistical quality control for the purpose of controlling, improving, and optimizing the engineering process.

MECH200 Statics

Credits: 3Description: Statics is the analysis of forces acting on physical systems that remain at rest. Students will extend their knowledge of classical mechanics and calculus to two and three dimensional systems of particles and rigid bodies. The goal of this course is to study mechanical systems that must hold their shape or position under some sort of load, such as frames, structures, beams, trusses, and cables.

Prerequisites: MAT 212 with C or better, PHY 206 or PHY222 with C or better.

MECH210 Dynamics

Credits: 4Description: Dynamics is the study of systems in motion. Topics include study velocity and acceleration in three dimensions, introduction to frames of reference rotation matrices, angular momentum, impact, and work-energy analysis.

Prerequisites: MECH 200 with C or better.

MECH220 Fluid Mechanics

Credits: 4Description: Fluid Mechanics is the study of the flow of fluids. This course extends the topics of statics and dynamics to fluids. Topics include dimensional analysis, density, viscosity, surface tension, control volume analysis, differential fluid flow, laminar and turbulent flow, and a study of flow in pipes.

MECH300 Engineering Materials

Credits: 4Description: This course examines how materials perform under different types of mechanical loads. This includes deformation, yielding, fracture, fatigue, and wear. The course also analyzes how materials change with heat, age, and repeated loading. Students will learn about possible failure modes and develop maximum safety specifications. Students will learn about the basic materials science that influences materials the properties of materials. Students will also learn how to engineer different materials to meet design specifications.

MECH400 Design Methods

Credits: 4Description: This course is designed to provide a mechanical design experience, moving from general product ideas to completed product. The course is structured around a series of design experiences, moving from user descriptions through design documents, actual design and simulation, user-acceptance, production plans, and final delivery. Students will learn about the different phases of the design process, how to select materials for a project, differences between developing a prototype versus preparing for efficient mass-production, how test and verify the component complies with its design specifications.

Prerequisites: MECH 300 with C or better and MAT 322 with C or better.

MECH410 Thermodynamics

Credits: 4Description: This course is a study of the relationship between machines and thermodynamics. The course reviews the basic thermodynamic concepts and provides an emphasis on the relationships between work, energy, and efficiency. Students will model various mechanical devices and develop heat transfer models. Students will study nozzles, diffusers, throttles, engines, heat exchangers, pistons, refrigeration, compressors, and chemical thermodynamics.

Prerequisites: MECH 300 with C or better and MAT 322 with C or better.

SWE200 Design Patterns

Credits: 4Description: Provides an advanced study of the concepts of object-oriented programming, with an emphasis on applying those concepts to software development. Many object design patters have emerged as proven ways to structure object-oriented solutions to a wide range of key problems. This course provides hands-on experience with using object design patterns to solve a number of problems that recur in computer science. Students will develop a number of medium to large programms individually.

Prerequisites: CSC 111 with C or better.

SWE300 Crafting Quality Code

Credits: 4Description: This course will explore the differences between code that works and good code. This will include: designing during development, characteristics of interfaces, naming conventions, defensive programming, selecting data types, organizing code, controlling loops, unusual control structures, table driven methods. Students will explore open source projects to practice evaluating the quality of code.

Prerequisites: SWE 200 with C or better and CSC 371 with C or better or GPRE Level 1.

SWE415 Interdisciplinary Development

Credits: 4Description: The course is focused on building a product for a non-engineering customer. The class will be paired with another course or activity on campus which will act as the customer. The students will work with that customer initially to define a product and then throughout the semester, they will revise that definition and use agile development techniques to deliver the product to the customer

Prerequisites: SWE 300 with C or better or CSC 371 with C or better or GPRE level 1.

SWE420 Extreme Programming

Credits: 4Description: The capstone experience of product development using agile development techniques. Topics include iteration planning, configuration management, communication tools, customer management, retrospectives and revising the development project. Students will work in teams to develop or enhance a product for a customer.