CMPE220 Computer Organization
Credits: 4
Description: 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: 4
Description: 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
ENGR100 Engineering Seminar 1
Credits: 1
Description: 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.
ENGR120 Programming for Engineers
Credits: 3
Description: 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: 1
Description: 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: 1
Description: 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: 3
Description: 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.
Prerequisites: MAT 375 with C or better.
CSC106 Computer Science I Lab
Credits: 1
Description: 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: 3
Description: 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.
Prerequisites: Math placement level 4 or higher, concurrently enrolled in CSC106 or CSC107.
CSC310 Design and Analysis of Algorithms
Credits: 4
Description: 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.
Prerequisites: CSC 111 with C or better and MAT 225 with C or better
CSC371 Database Management Systems
Credits: 4
Description: 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: SWE200 with C or better
CSC431 Computer Networks
Credits: 4
Description: Studies protocol suites, emphasizing the TCP/IP 4-layer model. Topics included are network addresses, sub netting, client/server network programming via the sockets API, network utilities, architecture of packets, routing, fragmentation, connection and termination, connection-less applications, data flow, and an examination of necessary protocols at the link layer, particularly Ethernet. Other topics may include FDDI, wireless, ATM, congestion control, and network security.
Prerequisites: (CSC11 with C or better and CMPE320 with C or better) or GPRE level 1
SWE200 Design Patterns
Credits: 4
Description: 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 programs individually.
Prerequisites: CSC 111 with C or better.
SWE300 Crafting Quality Code
Credits: 4
Description: 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: CMPE 220 with C or better.
SWE400 Large Scale Architectures
Credits: 4
Description: This course will cover the issues associated with enterprise size systems including: layered and tiered architectures, view patterns, input controller patterns, concurrency, session states, distribution strategies, domain logic patterns, object-relational patterns, web presentation patterns, and distribution patterns.
Prerequisites: SWE 200 with C or better and CSC 371 with C or better or GPRE Level 1.
SWE415 Interdisciplinary Development
Credits: 4
Description: 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: 4
Description: 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.
Prerequisites: SWE 300 with C or better