1. CS3114/5040 Introduction

1.1. Role of CS3114/5040 in the Curriculum

  • This course represents a transition between “learning to program” courses (CS 1114, CS 2114) and “CS content” courses.

  • To do well, you must be able to handle both

    • Programming (we focus on projects with dynamic memory allocation and file processing, and they have significant design challenges)

    • Content, theory and analysis

  • The projects test programming and testing proficiencies

  • OpenDSA exercises test knowledge of how algorithms work

  • Exams test understanding of the theory (analysis)

Note

Most graduates from our department will tell you that this is one of the two hardest courses, and also one of the two most important for job preparation. So its both high effort and high value.

1.2. Introduction

  • What we are doing today:

    • Administration stuff and Course mechanics

    • Course introduction (OpenDSA Chapter 1)

1.3. Course Mechanics

  • Course online support:

    • Canvas: Learning Management System

    • OpenDSA: eTextbook

    • Web-CAT: Project submission/automated grader

    • Piazza: Forums

1.4. Canvas

  • Course materials are organized and delivered through Canvas

    • Course syllabus

    • Link to OpenDSA eTextbook (which is a separate Canvas course shell)

    • Access to Project specs and supporting documents

    • Link to Piazza forum

    • Post scores and grades

1.5. OpenDSA

  • Access OpenDSA through a link to Canvas->Modules

  • Lots of visualizations, exercises

  • Mastery-based approach

  • Homework due periodically through the semester

    • Small homework (Chapter 1) due at 11pm this Thursday (in 2 days)

1.6. Web-CAT

  • Must use Eclipse IDE for submissions: Update if older than 2025

  • Get the updated Web-CAT plugin

  • Project submission support

  • Support for junit testing, mutation coverage

  • Auto-grading: Correctness (passes reference tests), style, test suite quality (mutation testing)

1.7. Milestones

  • 4 projects, each with a 3-4 week life cycle

  • Most projects will have 3 milestones

    • Milestones are intermediate deliverables with due dates

    • First due next week (usually about a week or so into the project)

    • Second due about 10 days before due date

    • Third due about 4-5 days before due date

  • Milestones designed to encourage incremental development

  • In previous semesters, milestones had the effect of boosting the final grade of the middle third of the class by about a full letter grade.

1.8. Today’s Homework

  • Look at Canvas, check out the various links

  • Look at Piazza site, make sure you are enrolled there

  • Look at Project 1 spec: We will discuss next time

  • Do Chapter 1 exercises in OpenDSA by 11:00pm Friday (in 3 days)