Skip to main content

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…

  1. Design, implement, and test programs which use object-oriented language features of inheritance, abstract classes, interfaces, and polymorphism;

  2. Employ the phases of the software development life cycle (requirements, design, implementation, and test) in developing software;

  3. Use UML class diagrams to propose a design to satisfy requirements;

  4. Use design patterns (e.g., model-view-controller and the state pattern) to solve development problems;

  5. Design effective system and unit tests and implement automated unit test code;

  6. Navigate and extract information from the Java API, and employ the Javadoc tool to construct internal documentation of source code;

  7. 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.

  8. Design, implement, and test a finite state machine;

  9. Design, implement, and test simple recursive data structures;

  10. 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 main branch 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