CSE 5022
Transcript Abbreviation:
(N/A)
Course Description:
Intellectual foundations of software engineering; design-by-contract principles; mathematical modeling of software functionality; component-based software from client perspective; layered data representation. Previous programming experience in any language required.
Course Levels:
Graduate
Designation:
Elective
General Education Course:
(N/A)
Cross-Listings:
(N/A)
Credit Hours (Minimum if “Range”selected):
3.00
Max Credit Hours:
(N/A)
Select if Repeatable:
Off
Maximum Repeatable Credits:
(N/A)
Total Completions Allowed:
(N/A)
Allow Multiple Enrollments in Term:
No
Course Length:
14 weeks (autumn or spring)
12 weeks (summer only)
Off Campus:
Never
Campus Location:
Columbus
Instruction Modes:
(N/A)
Prerequisites and Co-requisites:
Prereq: At least one term of Calculus.
Electronically Enforced:
No
Exclusions:
Not open to students with credit for 2221, 2231, 4221, 321, or 502. Not open to students enrolled in a CSE or CIS major.
Course Goals / Objectives:
Reasons it is important that software be "correct", i.e., why "good enough" is not good enough when it comes to software quality.
Reasons for designing software to minimize the impact of change, and why it is difficult to achieve this.
Be competent with using design-by-contract principles to write software that uses existing software components based on their interface contracts.
Be competent with using interface contracts that are described using simple predicate calculus assertions with mathematical integer, string, finite set, and tuple models.
Be competent with extending existing software components by layering new operations on top of existing operations.
Be competent with layering new software components' data representations on top of existing software components.
Be competent with using simple recursion.
Be competent with using simple techniques to test application software, layered implementations of extensions, and layered data representations, including developing and carrying out simple specification-based test plans.
Be competent with using simple techniques to debug application software, layered implementations of extensions, and layered data representations.
Be exposed to using basic algorithm analysis techniques and notations to analyze and express execution times of operations whose implementations involve straight-line code and simple loops.
Be competent with writing Java programs in a procedural style using the basic control structures, primitive value types, character strings, and input/output.
Be familiar with writing Java programs using core language features including interfaces, classes, inheritance, and assertions.
Be familiar with writing Java programs that use software components similar to (but simplified from) those in the Java collections framework.
Be familiar with using an understanding of the difference between value types and reference types to trace the execution of simple Java code in situations involving both flavors of types, including their use as parameters to method calls.
Be familiar with testing using JUnit.
Be familiar with illustrating key dependencies between software components using UML class diagrams (or similar).
Be familiar with using the most important features of a modern IDE, e.g., Eclipse.
Check if concurrence sought:
No
Contact Hours:
Topic | LEC | REC | LAB | LAB Inst |
---|---|---|---|---|
Total | 0 | 0 | 0 | 0 |
Grading Plan:
Letter Grade
Course Components:
Lecture
Lab
Grade Roster Component:
Lecture
Credit by Exam (EM):
No
Grades Breakdown:
Aspect | Percent |
---|---|
No Grade Breakdown Entered. |
Representative Textbooks and Other Course Materials:
Title | Author | Year |
---|---|---|
No Textbooks and Other Course Materials Entered. |
ABET-CAC Criterion 3 Outcomes:
Outcome | Contribution | Description |
---|---|---|
1 | Significant contribution (7+ hours) | Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions. |
2 | Significant contribution (7+ hours) | Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline. |
3 | Some contribution (1-2 hours) | Communicate effectively in a variety of professional contexts. |
4 | Some contribution (1-2 hours) | Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles |
6 | Substantial contribution (3-6 hours) | Apply computer science theory and software development fundamentals to produce computing-based solutions. |
ABET-ETAC Criterion 3 Outcomes:
(N/A)
ABET-EAC Criterion 3 Outcomes:
Outcome | Contribution | Description |
---|---|---|
1 | Significant contribution (7+ hours) | an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics |
2 | Significant contribution (7+ hours) | 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 | Some contribution (1-2 hours) | an ability to communicate effectively with a range of audiences - pre-2019 EAC SLO (g) |
4 | Some contribution (1-2 hours) | 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 |
6 | Some contribution (1-2 hours) | an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions |
7 | Some contribution (1-2 hours) | an ability to acquire and apply new knowledge as needed, using appropriate learning strategies |
Embedded Literacies Info:
Attachments:
(N/A)
Additional Notes or Comments:
(N/A)
Basic Course Overview:
CSE_5022_basic.pdf
(11.44 KB)