CSC 216: Programing Concept – Java

DELTA staff collaborated with Sarah Heckman to create materials for a TA-led lab component of CSC 216 Programming Concepts – Java. Students learn foundational knowledge about software engineering life cycle, best practices, and tools not only through text content, but also by applying them to guided projects and lab activities that involve application development. Guided project descriptions and lab manuals were designed with clear indication of software engineering life cycle stages in each activity or task. Students learn relevant software engineering best practices and development tool in context of the guided projects, which are intended to prepare them for more complex labs later in the semester. The complexity of the guided projects was also reduced to ease the transition from CSC 116 to CSC 216.

Instructional Challenges

  • Many students didn’t complete the technology tutorials early on in the semester, which were supposed to help them learn the development tools used in this class. Students who did not complete the tutorials were more likely to encounter learning challenges and end up failing the course. The original technology tutorials were presented as long web pages which needed to be reorganized into smaller project instructions.
  • Computer science students should learn the development tools but also the software engineering lifecycle and best practices supported by those tools. The textbook of this course does not get into the details of the lifecycle and best practices. Supplemental materials should be developed and integrated into projects and lab exercises.
  • Students felt a big leap between CSC 116 and CSC 216 because of the increased complexity in programming concepts and projects. Both courses should have redesign components that help students transition more easily.

Highlights and Solutions

  • Software Engineering Overview Materials: Web pages were developed using GitHub Pages and CSS styles to present the foundational concepts of software engineering. A software engineering life cycle diagram was created to color-code each stage and show their inter-connections.
  • Guided Projects: Project instructions were developed using the same style as the software engineering overview materials. Color-coded icons from the life cycle diagram were used to tag each project activity or task, making students aware of where they are in the software engineering process. Callout boxes of best practices and development tools were integrated in the project instructions to support situated learning.
  • Lab Exercises: Lab exercises were redesigned to extend the applications developed in the guided projects (e.g., a class registration system) while integrating new concepts and skills (e.g., adding a waiting list to the system), giving students more real-world development experience. Software engineering life cycle icons were used in the lab instructions to reinforce those concepts.
  • Moodle Block Layout: Large labels were used to divide up the block into lab tasks and lab resources. Sub-labels were used to categorize materials such as in-lab vs. after-lab tasks and different types of resources(readings, lecture notes, and example code).

Evaluation Findings

  • Students in partial and fully redesigned versions of the course evidenced higher average completion rates on assignments compared to those pre-redesign.
  • A majority of students agreed that the lecture and lab format was more engaging and helped them learn better than a traditional lecture only format. Students also felt that labs provided a solid foundation for completing the course projects and were clearly connected to real-world applications.
  • Students reported a high level of confidence in their ability to complete course related tasks/course related learning objectives.
  • Differences in performances between traditional and redesigned sections was observed only for the first semester of the redesign.

For more information about DELTA services, please contact LearnTech.