CSC 217 Software Development Fundamentals Lab - Credit-by-Exam
The CSC 217 Software Development Fundamentals Lab Credit-by-Exam (CBE) process requires the implementation and testing of several utility classes to demonstrate skills related to the learning outcomes listed below. A grade of 70 or higher is required on the CBE to receive credit for CSC 217. Additionally, you must earn at least 10 points on each of the sub-areas to receive credit, assuming a total of 70 or higher is earned.
Course Description
Laboratory course to accompany CSC 216 lecture course. Application of the software processes and practices to design, implement, and test the development of software solutions requiring composition; inheritance; finite state machines; and linear data structures, including recursive linked lists.
Learning Outcomes
Upon successful completion of this course, a student will be able to…
-
Design, implement, and test programs which use object-oriented language features of inheritance, abstract classes, interfaces, and polymorphism;
-
Employ the phases of the software development life cycle (requirements, design, implementation, and test) in developing software;
-
Use UML class diagrams to propose a design to satisfy requirements;
-
Use design patterns (e.g., model-view-controller and the state pattern) to solve development problems;
-
Design effective system and unit tests and implement automated unit test code;
-
Navigate and extract information from the Java API, and employ the Javadoc tool to construct internal documentation of source code;
-
Use software engineering best practices like pair programming, test-driven development, code coverage, static analysis, version control, continuous integration, and documentation with supporting tooling to design, implement, and test object-oriented systems.
-
Design, implement, and test a finite state machine;
-
Design, implement, and test simple recursive data structures;
-
Implement, test, and use a stack, queue, array-based list, and linked list.
CSC 217 CBE Overview
The CSC 216 CBE will be completed in the following steps:
- Setup
- Finite State Machines
- ArrayLists
- LinkedLists and Iterators
- Stacks and Queues
- Recursive LinkedLists
- Deploy
Timeline
You will have two weeks to complete the CSC 217 CBE activities. The course coordinator will provide the specific deadline for your CBE.
Resources
You will be provided the following:
- GitHub repository: You must use the provided GitHub repository for completing your work. All code must be pushed to the
mainbranch by the given deadline for evaluation. - Jenkins job: Most of your work will be automatically assessed via Jenkins. You can use the feedback to improve your work.
Evaluation
You will be evaluated on the following components:
Rubric
| Phase | Grade Item | Points | Details |
|---|---|---|---|
| Finite State Machines | 20 | ||
| ArrayLists | 20 | ||
| LinkedLists | 20 | ||
| Stacks and Queues | 20 | ||
| Recursive LinkedLists | 20 | ||
| Total Points | 100 |
Overall Deductions
| Grade Item | Points | Details |
|---|---|---|
| Static Analysis Notifications | -10 | any unresolved static analysis notifications will lead to points off up to 10 points off |
| Poor State Pattern Implementation | up to 20 points off | not utilizing the state pattern |
| Poor ArrayList Implementation | up to 20 points off | not following expectations |
| Poor LinkedList and Iterator Implementation | up to 20 points off | not following expectations |
| Poor Stacks and Queues Implementation | up to 20 points off | not following expectations |
| Poor Recursive LinkedList Implementation | up to 20 points off | not following expectations or not using recursion |
