CSE 2231
Transcript Abbreviation:
SW 2: Dev & Dsgn
Course Description:
Data representation using hashing, search trees, and linked data structures; algorithms for sorting; using trees for language processing; component interface design; best practices in Java.
Course Levels:
Undergraduate (1000-5000 level)
Designation:
Required
Elective
General Education Course:
(N/A)
Cross-Listings:
(N/A)
Credit Hours (Minimum if “Range”selected):
4.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
Lima
Marion
Instruction Modes:
In Person (75-100% campus; 0-24% online)
Prerequisites and Co-requisites:
Prereq: 2221. Concur: 2321.
Electronically Enforced:
No
Exclusions:
Not open to students with credit for 2231.01.
Course Goals / Objectives:
Be competent with using design-by-contract principles and related best practices, including separation of abstract state from concrete representation
Be competent with using interface contracts, representation invariants, and abstraction functions 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 familiar with simple linked data representations, including why and when it is (and is not) appropriate to use them rather than layered data representations
Be competent with using simple recursion
Be competent with using simple techniques to test application software, layered implementations of extensions, and layered or linked 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 typical data representations
Be familiar with using basic algorithm analysis techniques and notations to analyze and express execution times of operations whose implementations involve straight-line code, simple loops, and simple recursion (e.g., in manipulating binary trees)
Be competent with writing Java programs using core language features including interfaces, classes, inheritance, and assertions
Be competent with writing Java programs that use software components similar to (but simplified from) those in the Java collections framework
Be familiar with using many industry-standard "best practices" for Java design and development
Be familiar with working as part of a team on a software project with multiple milestones
Be exposed to using a version control system, e.g., CVS or SVN
Be exposed to the client-server model of distributed computing.
Check if concurrence sought:
No
Contact Hours:
Topic | LEC | REC | LAB | LAB Inst |
---|---|---|---|---|
Set and Map representations using an array of Queues with hashing | 3.0 | 0.0 | 0 | 1.0 |
BinaryTree component; Set representation using a BinaryTree with binary search tree algorithms | 2.0 | 0.0 | 0 | 2.0 |
Linked representations of Stack/Queue/List components and variations; singly-linked and doubly-linked lists | 4.0 | 0.0 | 0 | 4.0 |
Tree component; language processing using trees; elaboration of small programming language compiler team project (with related programming lab assignments continuing beyond this module); introduction to version control | 6.0 | 0.0 | 0 | 6.0 |
Component interface design principles and practices | 4.0 | 0.0 | 0 | 4.0 |
Advanced Java language constructs and uses; best practices in Java | 8.0 | 0.0 | 0 | 8.0 |
Total | 27 | 0 | 0 | 25 |
Grading Plan:
Letter Grade
Course Components:
Lecture
Lab
Grade Roster Component:
Lecture
Credit by Exam (EM):
No
Grades Breakdown:
Aspect | Percent |
---|---|
Homework and Class Participation | 8% |
Closed Labs | 12% |
Programming Lab Assignments | 30% |
Midterm Exam | 20% |
Final Exam | 30% |
Representative Textbooks and Other Course Materials:
Title | Author | Year |
---|---|---|
On-line reference materials |
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 |
5 | Substantial contribution (3-6 hours) | Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline |
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 |
5 | Substantial contribution (3-6 hours) | 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 | 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_2231_basic.pdf
(12.13 KB)