.. This file is part of the OpenDSA eTextbook project. See
.. http://opendsa.org for more details.
.. Copyright (c) 2012-2020 by the OpenDSA Project Contributors, and
.. distributed under an MIT open source license.

.. avmetadata::
   :author: Alex Hicks

CSC 201 Introduction
========================

Role of CSC 201 in the Curriculum
---------------------------------

.. revealjs-slide::

* This course represents a transition between "learning to
  program" courses (CSC 111, CSC 112) 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::

   This is an incredibly important class. It can be difficult, but very rewarding.
   It is one of the most important for job preparation as well.
   It is both high effort and high value.


Introduction
------------

.. revealjs-slide::

* What we are doing this week:

  * Administration stuff and Course mechanics
  * Course introduction (OpenDSA Chapter 1)
  * Project 1 Introduction


Course Mechanics
----------------

.. revealjs-slide::

* Course online support:

  * Canvas: Learning Management System
  * OpenDSA: eTextbook
  * Web-CAT: Project submission/automated grader


Canvas
------

.. revealjs-slide::

* Course materials are organized and delivered through Canvas

  * Course syllabus
  * OpenDSA eTextbook
  * Access to Project specs and supporting documents
  * Post scores and grades


OpenDSA
-------

.. revealjs-slide::

* Access OpenDSA eTextbook

* Lots of visualizations, exercises

* Mastery-based approach


Web-CAT
-------

.. revealjs-slide::

* Must use Eclipse IDE for submissions: Update if older than 2025
* Install the updated Web-CAT plugin

  * Be sure you use this semester's link to see the starter kits from
    the "Download Assignment" link

* Read OpenDSA Module 2.4 for details on setting up with Eclipse
* Web-CAT provides project submission support

  * Support for junit testing validation, mutation coverage
  * Auto-grading: Correctness (passes reference tests), style, test
    suite quality (mutation testing)


Projects and Milestones
-----------------------

.. revealjs-slide::

* 3 projects, each with a 4 week life cycle
* Most projects will have 3 milestones

  * Milestones are intermediate deliverables with due dates
  * First due typically due about a week or so into the project (your
    first milestone is due **this week**)
  * Second due typically about two weeks before due date
  * Third due typically about one week before due date

* Milestones designed to encourage incremental development
* In similar courses, milestones had the effect of boosting the final
  grade of the middle third of the class by about a full letter grade.


Today's Homework
----------------

.. revealjs-slide::

* Look at Canvas, check out the various links
* Make sure that you have Web-CAT access
* Look at Project 1 spec. Start setting up Eclipse.
* Do Chapter 1 exercises in OpenDSA

