https://www.uwplatt.edu/csse

Department Chair: Dr. Lisa M. Landgraf
Office: 208 Ullrich
Phone: 608.342.6064
E-mail: landgraf@uwplatt.edu

Software Engineering Program Coordinator: Dr. Lily Chang
Office: 223 Ullrich
Phone: 608.342.1557
E-mail: changl@uwplatt.edu

Majors

Computer Science

  • Computer Technology Emphasis
  • Computer Information Systems Emphasis

Software Engineering

  • Digital Application Domain Sequence
  • Engineering Management Application Domain Sequence

Applied Computing (Distance Learning Only)

Minors

Computer Science

About the Department and Majors

The UW-Platteville Department of Computer Science and Software Engineering offers two majors: one in computer science and one in software engineering. Students may also earn a minor in computer science from this department. Computer science is concerned with the theory and practice involved in the feasibility, design, implementation and evaluation of every aspect of computing. In addition to the valuable practical skills acquired in the study of computer science, the concepts and theories in the field provide exposure to some of the most imaginative and challenging ideas in the history of human intellectual development. The program is committed to blending the theory of computer science with the arts of programming and analysis, while providing attention to the business, ethical and moral aspects of computing in our society. Graduates are prepared for such positions as systems and applications programmers, analysts and various computer specialist positions.

Computer Science

https://www.uwplatt.edu/ems/computer-science

Department Chair: Dr. Lisa M. Landgraf
Office: 208 Ullrich
Phone: 608.342.6064
E-mail: landgraf@uwplatt.edu

Computer Science Mission Statement

The mission of the computer science program is to provide a quality computer science education with significant hands-on and laboratory experience that will enable our graduates to practice their profession with proficiency and integrity.

Computer Science Goals

Graduates are expected to have:

  1. the ability to apply the principles of analysis and design to software development
  2. knowledge of data structures, databases, algorithms, computer architecture and operating systems
  3. the ability to develop effective software tests at the unit and system level
  4. knowledge about the tools and environments used for software development
  5. written and oral communication skills, ethics and professionalism to function effectively on software development teams, and in society in general
  6. the ability to engage in lifelong learning and recognize its importance

Computer Science Outcomes

  1. Foundation: Graduates will have a solid foundation in computer science. These graduates will be able to apply this fundamental knowledge to both their immediate professional software development tasks, as well as to acquiring new professional skills throughout their lifetime.
  2. Development: Graduates will be able to engage in effective software development practices over the entire system lifecycle. This includes design, implementation and testing.
  3. Professionalism: Graduates will conduct themselves ethically, honestly and professionally in all work environment activities. These activities include all interactions with employers, team members and peers, as well as customers.
  4. Presentation: Graduates will be capable of effective written and oral communication. Graduates will be capable of preparing and publishing the necessary project documents involved in the specification, design, testing and deployment of software. Graduates will also be capable of actively participating in customary project discussions, walk-throughs, reviews and inspections.
  5. Growth: Graduates will be able to provide themselves with lifelong learning capabilities, such as the ability to learn new tools, study new language processes and generally adapt to new surroundings throughout their careers.

Computer Science Major

The computer science major leads to a Bachelor of Arts or Bachelor of Science degree in two emphases: computer information systems and computer technology. The department offers a general minor. In addition, selected course sequences form emphases in computer science for a variety of other majors in the university.

Bachelor of Science Degree

Course Title Credits
Total for graduation120
General education53
Major67

Bachelor of Arts Degree

Course Title Credits
Total for graduation120
General education 153
Major67

Students completing a Bachelor of Science degree in computer science need only to complete the coursework specified for their chosen emphasis and university requirements. All computer science majors must complete at least 37 credits in computer science (not including COMPUTER 1130, COMPUTER 1810 or COMPUTER 1830) and the requirements in one of the emphasis areas of computer information systems or computer technology.

Academic Standards

All computer science majors must earn at least a “C-” in each computer science or software engineering course listed as a requirement in the emphasis selected and each computer science course listed in the core requirements. Computer science majors must earn a “D” or better in all corequisites unless otherwise stipulated by the offering department. Students must have a GPA of 2.00 or higher in all Computer Science and Software Engineering courses.

Software Engineering

https://www.uwplatt.edu/ems/software-engineering

Coordinator: Dr. Lily Chang
Office: 223 Ullrich Hall
Phone: 608.342.1557
E-mail: changl@uwplatt.edu

University of Wisconsin Platteville’s B.S. program in Software Engineering is accredited by the Engineering Accreditation Commission of ABET (https://www.abet.org).

Software Engineering Mission Statement

The mission of the software engineering program is to provide a quality software engineering education with significant hands-on and laboratory experience that will enable graduates to practice their profession with proficiency and integrity.

SOFTWARE ENGINEERING PROGRAM EDUCATIONAL OBJECTIVES

Within two to five years after graduation, our graduates are expected to

(1) be effective team members, who aware of cultural diversity and conduct themselves ethically and professionally

(2) use effective communication and technical skills to assure production of quality software on time and within budget

(3) build upon and adapt knowledge of science, mathematics and engineering to take on more expansive tasks that require an increased level of self-reliance, technical expertise and leadership.

Software Engineering STUDENT Outcomes

By graduation, students in our program are expected to attain the following student outcomes:

(1) an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics

(2) an ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors

(3) an ability to communicate effectively with a range of audiences

(4) an ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts

(5) an ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives

(6) an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions

(7) an ability to acquire and apply new knowledge as needed, using appropriate learning strategies.

Academic Standards

Software engineering majors must earn a “C-” or better in all required software engineering and computer science courses. Software engineering majors must earn a C- or better in MATH 2730 and a “D” or better in all other corequisites unless otherwise stipulated by the offering department. For example, a “C-” or better is required in PHYSICS 2240 in order to proceed to PHYSICS 2340. However, a “D” in PHYSICS 2340 would satisfy the software engineering requirement for that course. Likewise, a “D” would satisfy the software engineering requirement for computer science courses for which there is an option: COMPUTER 3030COMPUTER 3520COMPUTER 3630 and COMPUTER 3920. A software engineering major may repeat any given engineering course only one time. Students must have a GPA of 2.00 or higher in all software engineering and computer science courses.

 Bachelor of Science Degree

Course Title Credits
Total for graduation120
Major90-91

Majors



 Subjects in this department include: Computer Science (COMPUTER), Software Engineering (SOFTWARE) and Applied Computing (APC)1

Computer Science (COMPUTER)

COMPUTER 1130 Introduction to Programming 3 Credits

An introduction to programming for students with no previous computer programming experience. Covers control structures, procedures, programming environments, and problem solving.
Components: Laboratory, Class
Typically Offered: Fall/Spring/Summer

COMPUTER 1430 Programming in C++ 3 Credits

A technical course in computing, algorithms, data representation, and procedural programming. Modularity and abstraction stressed in algorithm development. Style and documentation stressed in program development. Weekly lab programs engrain the syntax and semantics of C++. A few larger, out-of-class programs tie the concepts together.
Components: Laboratory, Class
Prereqs/Coreqs: P: previous programming experience, such as that provided by COMPUTER 1130 is recommended
Typically Offered: Fall/Spring

COMPUTER 1810 Microsoft Excel for Business 1 Credit

Course Description: This course is designed to teach students basic to advanced functionality of Microsoft Excel. An emphasis is placed on working with larger data sets. Topics covered include but are not limited to:* simple to advanced formatting* simple to advanced formulas using relative and absolute cell referencing and Excel functions* business charts and pivot tables* sort and filter techniques used with tabular data* importing and exporting datasets
Components: Class
Typically Offered: Fall/Spring/Summer

COMPUTER 1830 Microcomputer Applications 3 Credits

A course recommended for all non-computer science majors that need to know how to use the microcomputer. The major emphasis will be on using microcomputers with the most popular kinds of computer software used in business and education today including word processing, spreadsheets and database management. (Not open to computer science majors.)
Components: Laboratory, Class
Typically Offered: Fall/Spring

COMPUTER 2230 Programming in COBOL 3 Credits

To develop an understanding of, and provide practice in the use of proper strategies and techniques for business program design and development. To develop ability to apply the COBOL language to implement problem solutions. To gain the background for further study of software design and computer programming in a business environment. Emphasis on structured programming and program style.
Components: Class
Prereqs/Coreqs: P: COMPUTER 1430
Typically Offered: Spring

COMPUTER 2340 Programming in VB.NET 3 Credits

An introduction to event-driven, object-oriented programming techniques using Visual Basic in the .NET Framework. Students will design, code, and debug Graphical User Interface (GUI) programs applicable to business applications.
Components: Class
Prereqs/Coreqs: P: COMPUTER 1430
Typically Offered: Fall

COMPUTER 2430 Object-Oriented Programming and Data Structures I 3 Credits

An introduction to object-oriented programming. Emphasis on building and testing classes using software engineering techniques. Includes study of a standard class library and use of inheritance and polymorphism for building subclasses and extensibility. Coverage of the stack and queue classical data structures. Discussion of searching, sorting, and hashing techniques. Introduction to linked lists.
Components: Laboratory, Class
Prereqs/Coreqs: P: COMPUTER 1430 with a C- or better
Typically Offered: Fall/Spring

COMPUTER 2630 Object-Oriented Programming and Data Structures II 3 Credits

Continuation of the object-oriented programming and data structure topics from CS 2430. Coverage of pointers, templates, linked lists, trees, recursion, graphs, and algorithm analysis. Use of software engineering techniques within a group-based project environment.
Components: Class, Laboratory
Prereqs/Coreqs: P: COMPUTER 2430
Typically Offered: Fall

COMPUTER 2990 Computer Science Special Topics 1-3 Credits

The subject matter and instructor for each instance of this class will be listed in the class schedule. Students should check with the instructor for details.
Components: Class
Typically Offered: Occasional

COMPUTER 3030 Artificial Intelligence 3 Credits

A study of knowledge representation, search techniques, expert systems, predicate calculus, and natural languages. Discussion of the successes and limitations of past and current AI programs. Programming assignments in one or more AI programming languages.
Components: Class
Prereqs/Coreqs: P: COMPUTER 2630 and MATH 2730
Typically Offered: Spring-ODD

COMPUTER 3130 Systems Analysis and Design 3 Credits

Provide an understanding of the duties of the systems analyst and the specific methods and techniques for system development (preliminary survey through system design) with an introduction to utilizing CASE software throughout the entire process.
Components: Class
Prereqs/Coreqs: P: COMPUTER 2230
Typically Offered: Fall

COMPUTER 3230 Computer Architecture/Operating Systems 3 Credits

This course combines the strengths of two areas: Assembler Language Programming and Operating Systems. The major areas of Assembler such as Architecture, Data Types, Logic and Control and Interrupts will be covered. The major areas of Operating Systems including Processes, Mutual Exclusion, Critical Sections, Parallel Processing, Real and Virtual Storage and Job Scheduling will be emphasized.
Components: Class
Prereqs/Coreqs: P: COMPUTER 2430
Typically Offered: Spring

COMPUTER 3340 Windows Programming 3 Credits

Continuation of Windows programming techniques. Discussion of the Component Object Model (COM), Dynamic Link Library (DLL), and the Windows Application Programming Interface (API). Study also includes the Windows common controls, some Internet controls, and Dynamic HTML (DHTML).
Components: Class
Prereqs/Coreqs: P: COMPUTER 2630 or (COMPUTER 2340 AND COMPUTER 2430)
Typically Offered: Spring

COMPUTER 3520 Programming Language Structures 3 Credits

A study of programming language topics which include data objects, data types, storage management, syntax, BNF descriptions, semantics, lexical analysis and parsing. Examples taken from traditional languages as well as more modern languages.
Components: Class
Prereqs/Coreqs: P: COMPUTER 2630
Typically Offered: Fall

COMPUTER 3530 Systems Development and Implementation 3 Credits

Strategies and techniques of analysis and design for producing logical methodologies for dealing with complexity in the development and implementation of information systems. Use of software tools, file access methods and operating system facilities.
Components: Class
Prereqs/Coreqs: P: COMPUTER 3130
Typically Offered: Spring

COMPUTER 3630 Database Design and Implementation 3 Credits

This course will explore fundamental concepts necessary for the design, use, and implementation of database systems. Study of database modeling and design, languages and facilities provided by the database management systems, and techniques for implementing database systems will be examined. Major database models will be discussed with primary focus on the relational database model and query languages.
Components: Class
Prereqs/Coreqs: P: COMPUTER 2430 and MATH 1630 or MATH 2730
Typically Offered: Spring

COMPUTER 3830 Data Communications and Computer Networks 3 Credits

An introduction to data communications and computer networks. Study of the basic principles with a focus on the layers, protocols, and security used in the Internet. Socket-based and other programming projects.
Components: Class
Prereqs/Coreqs: P: COMPUTER 2430
Typically Offered: Fall

COMPUTER 3840 Introduction to Computer Security 3 Credits

An introduction to the principles of computer security. Topics include computer and system security, authentication, access control, malicious software, and software security. The course also examines how system designs, network protocols, and software engineering practices can result in vulnerabilities. The course explores how to design and implement systems to mitigate vulnerabilities. In addition, the course explores how to detect and mitigate vulnerabilities in existing systems.
Components: Class
Prereqs/Coreqs: P: COMPUTER 2430
Typically Offered: Spring

COMPUTER 3870 Web Protocols, Technologies and Applications 3 Credits

The course will introduce the students to Protocols and Technologies in Web applications. The Client/Server concept and some advanced database concepts will also be covered. The emphasis of the course will be using tools such as ASP.NET for rapid development of Web Applications and Web Services. JavaScript and C# will also be employed.
Components: Class
Prereqs/Coreqs: P: COMPUTER 3340; C: COMPUTER 3630
Typically Offered: Fall

COMPUTER 3920 Computer Graphics 3 Credits

An introduction to computer graphics including transformations; modeling; viewing and projection; color, lighting and shading; texture mapping; interaction; and animation. Use of a pipeline-based graphics library such as OpenGL. Several programming assignments, including some games-based projects.
Components: Class
Prereqs/Coreqs: P: COMPUTER 2630 and MATH 2640
Typically Offered: Fall-ODD

COMPUTER 4110 Seminar 1 Credit

The course consists of lectures/discussions presented by both computer science faculty and students enrolled in the class.
Components: Seminar
Prereqs/Coreqs: P: Computer Science major/minor and junior/senior standing
Typically Offered: Fall/Spring

COMPUTER 4230 Applications in Information Systems 3 Credits

Applications of computer programming and system development concepts, principles and practices to a comprehensive system development project. A team approach is used to design and develop a realistic system of moderate complexity. Also includes coverage of advanced features of the COBOL language.
Components: Class
Prereqs/Coreqs: P: COMPUTER 3530
Typically Offered: Fall

COMPUTER 4830 Special Topics in Computer Science 1-3 Credits

The subject matter and instructor for each instance of this class will be listed in the class schedule. Students should check with the instructor for details.
Components: Laboratory, Class
Prereqs/Coreqs: P: junior or senior standing
Typically Offered: Occasional

COMPUTER 4930 Independent Study in Computer Science 1-3 Credits

For the student who wishes to delve more deeply into a specific area of study topics not available through the scheduled classes.
Components: Independent Study
Typically Offered: Fall/Spring

COMPUTER 4990 Internship 1-6 Credits

Enhancement of the educational experience through specific work and observation with computers in a business, industry or institution. Prerequisites: upper-class standing,
Components: Field Studies
Prereqs/Coreqs: P: junior or senior standing; 18 or more hours of computer science credit
Typically Offered: Fall/Spring/Summer

Software Engineering (SOFTWARE)

SOFTWARE 2730 Introduction to Software Engineering 3 Credits

An introduction to software engineering principles, including discussions of development methodologies, requirements analysis, project planning, software design, software construction, software management, software quality, and CASE tools. Students gain experience, via a team project, in the life-cycle development of software systems.
Components: Class
Prereqs/Coreqs: P: COMPUTER 2430
Typically Offered: Fall/Spring

SOFTWARE 3330 Intermediate Software Engineering 3 Credits

A more detailed discussion of several software engineering topics included in previous courses including requirements engineering, software modeling, user-interface design, development processes and process improvement. Moderate size GUI-based group project.
Components: Class
Prereqs/Coreqs: P: COMPUTER 2630 and SOFTWARE 2730
Typically Offered: Spring

SOFTWARE 3430 Object Oriented Analysis and Design 3 Credits

Requirements engineering, analysis, and specification using the object-oriented paradigm. Object-oriented architectural and detailed design. Use of an OOAD modeling language such as UML. Investigation of OOAD patterns. Moderate size, group project.
Components: Class
Prereqs/Coreqs: P: COMPUTER 2430; C: SOFTWARE 2730
Typically Offered: Fall

SOFTWARE 3730 Software Quality 3 Credits

Study of the topics related to producing quality software, including software quality assurance, quality metrics, configuration management, verification validation, reviews, inspections, audits, and software process improvement models. Individual and team projects.
Components: Laboratory, Class
Prereqs/Coreqs: P: COMPUTER 2630 and SOFTWARE 2730
Typically Offered: Fall

SOFTWARE 3860 Software Maintenance and Reengineering 3 Credits

Study of the topics related to maintaining large-scale software systems. Study of software engineering topics such as estimation, software quality assurance, metrics, configuration management, verification validation, inspections, and personal and team software process as they relate to software maintenance projects. Coverage of traditional analysis and design methods such as structured analysis and design. Students gain experience via semester-long, team-based project(s) in software maintenance and reengineering.
Components: Class
Prereqs/Coreqs: P: COMPUTER 2630, SOFTWARE 2730 and SOFTWARE 3430
Typically Offered: Spring

SOFTWARE 3950 Software Engineering Cooperative Education 2 Credits

Work experience in industry under the direction of the College of Engineering, Mathematics and Science Cooperative Education and Internship Program. During co-op the student is expected to be away from his/her studies at UW-Platteville and work for an industry for a semester and summer. Credits do not fulfill graduation requirements.
Components: Field Studies
Typically Offered: Fall/Spring

SOFTWARE 3970 Software Engineering Internship 1 Credit

Work experience in industry under the direction of the College of Engineering, Mathematics and Science Cooperative Education and Internship Program. NOTE: This program is separate and distinct from the cooperative education program and is principally designed to cover the summer work experience. Internship is designed to provide experiential learning experience to the student during the summer period. Credits do not fulfill graduation requirements.
Components: Field Studies
Prereqs/Coreqs: P: Junior standing
Typically Offered: Summer

SOFTWARE 4110 Software Engineering Seminar 1 Credit

The course consists of lectures/discussions presented by both software engineering faculty and students enrolled in the class.
Components: Seminar
Prereqs/Coreqs: P: Software Engineering major and junior/senior standing
Typically Offered: Fall/Spring

SOFTWARE 4130 Real-Time Embedded Systems Programming 3 Credits

An exploration of programming techniques and constructs used to develop reliable software systems capable of responding in real time to environmental changes. An overview of the platforms, tools, and processes used in developing software for embedded systems. Hands-on lab projects experimenting with real-time embedded systems programming details.
Components: Discussion, Class, Laboratory
Prereqs/Coreqs: P: COMPUTER 2630 and SOFTWARE 3430 and (ELECTENG 3780 or COMPUTER 3230)
Typically Offered: Spring

SOFTWARE 4330 Software Engineering Project I 3 Credits

Emphasis in applying software engineering knowledge learned in this course and previous courses to a large, team-based, capstone project that spans two semesters. In-depth study of several software engineering topics introduced in earlier courses, such as agile development; computer aided software engineering tools; analysis and design methods; and risk management. An introduction to formal methods for specification and design.
Components: Laboratory, Class
Prereqs/Coreqs: P: MATH 2730 and SOFTWARE 3330 and SOFTWARE 3430
Typically Offered: Fall

SOFTWARE 4730 Software Engineering Project II 3 Credits

The project started in SOFTWARE 4330 is continued and carried to completion. In-depth study of several software engineering topics introduced in earlier courses, such as agile development, computer aided software engineering tools, review, testing and maintenance. The course will also introduce current research issues in software engineering.
Components: Discussion, Laboratory, Class
Prereqs/Coreqs: P: SOFTWARE 3730 and SOFTWARE 4330
Typically Offered: Spring

SOFTWARE 4980 Current Topics in Software Engineering 1-4 Credits

In-depth study of a current topic of interest to the software engineering profession. The topic to be covered will be identified in the course title.
Components: Class
Typically Offered: Occasional

SOFTWARE 4990 Independent Study 1-3 Credits

Advanced study in area of specialization selected by student and approved by faculty member.
Components: Independent Study
Typically Offered: Fall/Spring

applied computing (apc)1

APC 3000 Programming I 3 Credits

This course offers an introduction to history of computing, fundamental computer concepts and structured programming techniques. Java will be used to teach the basic concepts of program analysis, design, implementation, debugging and testing. It provides hands-on coverage of simple data types, problem solving, program design, conditional execution, loops, and basic user defined methods.
Components: Class
Typically Offered: All

APC 3100 Math for Computer Science 3 Credits

This course covers important topics that serve as a foundation for many computer science courses. These topics may include logic, sets, functions, mathematical reasoning, counting, probability, relations, graphs, trees, Boolean algebra, and algorithms.
Components: Class
Typically Offered: All

APC 3200 Introduction to Business 3 Credits

This course introduces the student to the major functional areas of business including the roles of accounting, finance, human resources, marketing, information systems, and operations in the organization. In addition, the role of business in a free enterprise system, business ethics, leadership, leading change and the competitive global business environment will be covered.
Components: Class
Typically Offered: All

APC 3300 Technical and Professional Communication 3 Credits

This course covers technical and professional communication skills and techniques. Practice in creating effective memos and reports, developing technical material, delivering presentations, and developing team communication skills will be the focus of the course.
Components: Class
Typically Offered: All

APC 3400 Legal and Ethical Responsibilities of the IT Professional 3 Credits

This course explores a range of legal, regulatory, ethical and compliance issues associated with developing software and using information systems in an organization. Topics include the ethical and legal issues associated with data privacy and intellectual property, compliance with regulatory requirements such as Sarbanes Oxley, and other related contemporary subjects.
Components: Class
Prereqs/Coreqs: C: APC 3200
Typically Offered: All

APC 3500 Programming II 3 Credits

Components: Class
Prereqs/Coreqs: P: APC 3000 and APC 3100
Typically Offered: All

APC 3600 Database Management I 3 Credits

This course covers design and implementation of relational database management systems to support computer-based information systems. Topics include: data modeling techniques such as entity-relationship modeling, extended entity-relationship modeling, database normalization techniques, and basic and advanced features of database query language SQL.
Components: Class
Prereqs/Coreqs: P: APC 3000 and APC 3100
Typically Offered: All

APC 3700 Systems Analysis and Design 3 Credits

This course explores the first five phases of the Systems Development Life Cycle including scope definition, problem analysis, requirements analysis, logical design and decision analysis with the goal of determining an effective system solution. Topics covered include Use Case development, gap analysis, financial analysis of IT investments, and feasibility analysis.
Components: Class
Prereqs/Coreqs: P: APC 3000, APC 3200 and APC 3300
Typically Offered: All

APC 3800 Project Management Techniques 3 Credits

This course is an introduction to project management tools and techniques including project selection and life cycle, stakeholder management, scope management, budget control, scheduling, quality management, risk identification, and procurement management.
Components: Class
Prereqs/Coreqs: P: APC 3700
Typically Offered: All

APC 3900 Object Oriented Programming 3 Credits

This course offers an introduction to Object-Oriented Programming techniques using the Java programming language. Students will gain skills in using Classes and Interfaces, Exception handling, Programming by Contract, Inheritance, Polymorphism, Overloading, Abstract Classes and Methods, Serialization, Generics, and an Introduction to Recursion.
Components: Class
Prereqs/Coreqs: P: APC 3500
Typically Offered: All

APC 4000 Applied Communication Networks 3 Credits

This course covers fundamental concepts in the design, configuration, and problem solving of computer networks. Topics include: TCP/IP and OSI architecture, application layer (Web, FTP, remote connection, email, client and server interaction), transport layer (TCP/UDP), network layer (IP), data link and physical layers.
Components: Class
Prereqs/Coreqs: P: APC 3500
Typically Offered: All

APC 4100 Database Management II 3 Credits

This course covers architecture and use-cases of non-relational (NoSQL) based on four types of databases including document, Graph, Key-value, and wide column store. Topics include: data types, create/update/delete data, query, cursors, indexing, dynamic schema design, scalability (scale-out) over scale-up of RDBMS, analysis of massive unstructured and semi-structured data and data security.
Components: Class
Prereqs/Coreqs: P: APC 3600
Typically Offered: All

APC 4200 Computer Security I 3 Credits

This course covers contents spanning security and risk management, security engineering, identity and access management, and security operations. Specific topics include cryptography, access control models, malicious software and counter-measures, security policy, security model, trust, vulnerability assessment, security standards and evaluation, administration and auditing, and secure storage.
Components: Class
Prereqs/Coreqs: P: APC 3500
Typically Offered: All

APC 4300 Applied Data Structures and Algorithms 3 Credits

This course covers fundamental concepts and the application of data structures and algorithms. Topics include abstract data types, dynamic arrays, iterators, linked lists, generics, stacks, queues, binary search trees, collections, maps, hashing, graphs, and sorting. It introduces a variety of application scenarios including graphics, web programming and user interfaces.
Components: Class
Prereqs/Coreqs: P: APC 3900
Typically Offered: All

APC 4400 Web Development 3 Credits

This course teaches students how to create advanced and interactive websites web sites using technologies like HTML 5, CSS, JavaScript, Bootstrap, XML, web services, and database integration within the ASP.Net platform. The class also introduces principles of good user interaction design to the creation of effective web pages.
Components: Class
Prereqs/Coreqs: P: APC 3600; C: APC 4000
Typically Offered: All

APC 4500 Operating Systems Theory and Practice 3 Credits

This course provides an introduction to important operating systems concepts such as processes, threads, scheduling, concurrency control and memory management. The students will learn these concepts via systems programming using POSIX API.
Components: Class
Prereqs/Coreqs: C: APC 4300
Typically Offered: All

APC 4600 Software Engineering Practices 3 Credits

This course covers basic software development methodologies and tools. Methodologies include the waterfall, iterative, and agile approaches. Tools include integrated development environments (IDEs), unified modeling language (UML), and testing frameworks. Other topics include requirements analysis, object-oriented analysis, test-driven development, and design patterns. Students will work on a team software project.
Components: Class
Prereqs/Coreqs: P: APC 3700 and APC 3900
Typically Offered: All

APC 4700 IS Strategy and Management 3 Credits

This course begins with an exploration of organizational strategy and how Information Systems strategy is developed to support the attainment of organizational goals. The course then explores the management of the IS function using a capability maturity model approach to topics such as budgeting, acquisition, service management, change management, and personnel management.
Components: Class
Prereqs/Coreqs: P: APC 3800; C: APC 4600
Typically Offered: All

APC 4800 Computer Security II 3 Credits

This course covers subjects spanning communication and network security, security assessment and testing, software development security, and asset security. Specific topics include operating system security, network security (e.g. firewalls, tunneling, intrusion detection, and wireless networking), browser security, and application security (e.g. database security, email security, payment system security, and digital-rights management).
Components: Class
Prereqs/Coreqs: P: APC 3600, APC 4200, APC 4000, and APC 4500
Typically Offered: All

APC 4900 Capstone Prep 1 Credit

The purpose of this course is for students to choose a capstone project, create an initial plan with specific deliverables identified, and receive approval. This course covers review of key concepts necessary for success in the Capstone (APC 495) course, including software engineering practices, project management techniques, system analysis, and communicating with technical or non-technical audiences (CTO, IT, staff, etc.). May include additional topics specific to anticipated capstone projects.
Components: Class
Prereqs/Coreqs: P: APC 3800; C: APC 4600
Typically Offered: All

APC 4950 Capstone Project 3 Credits

The purpose of this course is for students to complete the project that was approved in APC 490. This course covers the development, management and delivery of an applied computer science project for a client, including communication of project requirements and status to a non-technical audience.
Components: Class
Prereqs/Coreqs: P: APC 4900
Typically Offered: All

Faculty and lecturers

Additional information about the Faculty and Lecturers below may be found in the Faculty and Academic Staff section of this catalog.

Alkhushayni, Suboh

Chang, Lily

Gavin, Donna

Landgraf, Lisa

Lindahl, Gary

Shi, Yan

Yang, Qi

Yue, Songqing (Joshua)