Curriculum and Handin: Difference between pages

From Computer Science at Indiana State University
(Difference between pages)
Jump to navigation Jump to search
wiki_previous>Jkinne
 
m 1 revision imported
 
Line 1: Line 1:
This page is used to keep track of currently proposed curriculum changes for computer science. The page was last updated in the fall of 2021.
== The handin program ==
Handin is a program for checking out and handing in assignments. There is an online manual entry for handin and all associated programs, so you can type:
<pre>
man handin
</pre>


=Undergraduate=
at your prompt if you need to refer to the documentation.


==Math 320==
=== Displaying Outstanding Assignments ===
'''Status: already approved'''
By itself, executing handin with no additional command line parameters will display all the class assignments and their due dates.  It will also display the last time a specific assignment was submitted, so that you can check your submissions.


Math asked if we would count Math 320 as a prereq in place of CS 303 for CS courses they are including in their proposed Data Science BS. We approved updating CS 457&L, CS 475&L, CS 557, CS 575 to allow Math 320 as a prereq in place of CS 303.  Those are already approved and will be in effect for fall 2022.  The proposed Data Science BS in curriculog: https://indstate.curriculog.com/proposal:3970/form
<pre>
handin
  Assignments:
  h1, due 2020-01-17 23:59:59
    - Last submitted on Sun Jan 12 13:16:16 2020
  h2, due 2020-01-24 23:59:59
</pre>


==High Impact Practice==
If your account is not a class account (does not start with something like cs151 or cs500), you can still check, checkout and handin assignments for a specific class using the <code>-c</code> (equivalently, <code>--class</code>) option followed by the class name in question:
'''Status: approved by department, being considered by foundational studies'''
<pre>
handin -c cs456
</pre>


We have proposed to add CS 499 to the new High Impact Practice (HIP) category.  The proposal in curriculog: https://indstate.curriculog.com/proposal:5688/form
would select the cs456 class and then display the assignments for the class.


==Math 241==
=== Checking Out an Assignment ===
'''Status: needs department vote'''
Assignments can be copied to your directory using the <code>-C</code> or <code>--checkout</code> option followed by the name of the assignment, i.e.
<pre>
handin -C h4
</pre>
would copy the h4 assignment directory to your account where you can then begin working on your assignment.


Proposed change is to require Math 241 for the CS BSCurrently the CS BS requires either Math 241 or Math 341Since Math 241 is a prereq for Math 341, it is simpler to just require Math 241.
=== Submitting Your Assignments ===
When you have done some work on your assignment, you an submit your assignment using handin followed by the name of the assignment directory i.e.:
<pre>
cd ~
handin h4
</pre>
will submit the h4 assignmentNote that this should be done in the parent directory where the assignment directory isIf you are using your class account for the assignment (e.g., you are logged in with your cs151 account and working on an assignment for cs151), you can also submit from with your assignment working directory:
<pre>
cd ~/h4
submit
</pre>


==CSS courses==
You can submit your assignment as many times as you like until the due time has passed.  If an assignment allows late submissions, they will be submitted into the late submissions directory.  You should submit early and often, as submitting your assignments can be used as a form of backup.
'''Status: needs department vote, Crim has indicated support'''


Proposal to create new courses CS 210, CS 211, CS 331 that are cross-listed with the CSS versions. This would allow us to schedule our own sections of these classes without needing to wait on the School of Criminology to schedule them for us.  Note that the rules for cross-listed courses (at https://www.indstate.edu/academic-affairs/curriculum/caps2013/policies-rules-guidelines) - both departments would need to approve the proposal and then any changes to the courses later on.
=== Grading Notes ===
Once your assignment has been graded, you may be able to check the grading notes for the assignment using the -g option which will print the grading notes for the assignment, assuming they have been submitted by your professor.
<pre>
handin -g h4
</pre>


==CS 470, UDIE==
=== Checking Your Work With --hwcheck ===
'''Status: being worked on in the department'''
Some assignments may allow auto-checking, which can be accessed using the --hwcheck switch to handin.
<pre>
handin --hwcheck h4
</pre>
would check your work for the h4 assignment.  You need to be in the assignments parent directory for the option to work, for that reason there is a helper script called 'check' that streamlines auto-checking your work while you are in the assignment directory.
<pre>
cd ~/h4
check
</pre>
runs the hwcheck on h4 w/o needing to be in the parent directory.  It will also attempt to run make if applicable to build any programs that require building.


R.B. Abhyankar is working on potentially submittting CS 470 as an Upper Division Integrative Elective.  Information on UDIE's is here - https://www.indstate.edu/foundational-studies/upper-division-integrative-electives and information about proposing Foundational Studies courses is here - https://www.indstate.edu/academics/foundational-studies/advisors/propose-a-course
In either case, the program checks the output of your program against the output of the instructor's solution on various inputs. If your program is incorrect on any test inputs, this information is printed.
 
==CS 151, prereq==
'''Status: needs discussion'''
 
Placement test was not technically required for fall but was strongly recommended, and Jeff hounded the students who registered for CS 151 to have them take the placement test to make sure they would be ready.  The placement test is in Canvas and was a series of auto-graded quizzes that has them: read about python and answer a few super easy questions, read about linux terminal and answer super easy questions, install python / run a program / put the result into the quiz, install putty/terminal / use a few commands on the system to get info to put into quiz, checkout and handin an assignment on the server.
 
Some data of what happened to the students who were enrolled in CS 151 to begin the semester and what things looked like by Nov 11. 
* 70 enrolled at the start of term or during first week
* 38 passed placement
** 4 switched to 101 (current 101 grades - 97, 94, 68, 69), rest have average grade that is +10% points (full letter grade) compared to their section average (and 23 have B- or higher, 5 C, 3 D, 3 F)
* 5 had between 90 and 100% on placement but did not fully complete
** 2 switched to 101 (current 101 grades - 78%, 11%), 1 dropped 151 after 2nd week, 1 is in 151 and grade is B, +12% compared to their section average
* 16 started placement, not close to finishing
** 5 dropped 151 before 2nd week (CS 101 grades - 70, 80, 87), 1 dropped 151 after 2nd week, other 10 still in 151 and have average grade that is 11% points lower than their section average (2 Bs, 3 Ds, 5 Fs)
* 11 never started placement
** 7 dropped 151 before 2nd week (CS 101 grades - 85, 20, 88, 78), 1 dropped after 2nd week, other 3 have grade that is -63% compared to their section average (none are passing)
* A handful of students withdrew for the semester or changed majors (so were enrolled in CS 151 but not enrolled in CS 151 or CS 101 currently).
* Conclusions...
** Passed or close to passing the placement test who stayed in CS 151: 24/36 have B- or higher
** Did not take or not close to finishing placement test who stayed in CS 151: 2/15 have C or higher
 
==CS BS, Core Sequence==
'''Status: needs discussion'''
 
Discuss and reevaluate what goes in each of the courses in the core CS sequence (CS 101, 151, 201, 202, 303, 351).  Starting point for discussion...
* CS 101 Fundamentals of Computing - 1/3 python, 2/3 other (linux, base systems, number formats, computing vocab)
* CS 151 Introduction to Computer Science - 2/3 python, 1/3 other (linux, base systems, number formats, searching (linear/binary), sorting)
* CS 201 Programming Structures - 2/3 python (with focus on object-oriented), 1/3 other (searching/sorting, theoretical understanding of python data structures)
* CS 202 Data Structures and Algorithms - use python (but python is not the primary focus), 1/2 good understanding of how various DS & algs work, 1/2 "theory" (proofs of correctness / run-time, big O analysis, correct use of asymptotic notation)
* CS 303 Discrete Structures and Computing Theory - 1/2 structures (integers, integers mod p, graphs, automata/ regular expressions, matrices, grammars), 1/2 "theory" (proofs of all of these, some overlap with CS 202, probability/counting), some programming (to build confidence)
* CS 351 Computer Organization  - 3/4 assembly/C, 1/4 other (architecture, memory, ...)
 
See also learning outcomes for those courses.
 
Some additional thoughts...
* cumulative placement test, assignment 0 at the beginning of any course that has another as a prereq
* every course that is a prereq for something else, pick 3 things they need to be able to do at the start of the next class, make up that part of assignment 0
* example: CS 458 has the following as prereqs - 101, 151, 201, 202, 303, so assignment 0 is the 3 things from each of those
* CS 201 should be a course where we are honest at the end whether they can continue or not, use something like an end of semester assessment
* prereqs - consider updating some of them to be B or higher, in particular for CS 201 going into other courses
* CS 202 - use python rather than C, focus is on the algorithms / data structures, not on the programming
* consider final exam or assessment graded collectively, so it's not the instructors "fault" when a student can't move on
 
=Graduate=
 
==MS Data Science==
'''Status: needs discussion'''
 
Data science concentration: CS 501, 557, 575, MATH 503, 540.  Half of credits have to be 600 level, currently 33 credits. No room for any 500-level electives, but want them to take CS 500 as well.
 
Solutions: (a) they don't have to take CS 500, (b) they have to take CS 500 and will end up taking 36 credits, (c) drop one of the required 500 level courses, (d) change degree to be 30 credits, so 15 credits of 600 is enough, they ed up taking 33 credits.
 
Discussion of requiring CS 500 - yes, they should all take it.
 
Make a proposal for what it would look like.
 
Other option - change MATH 503, 540, make them 600 level or not required.  Check with Math. Math says 503 is being used in their BS, so definitely don't want to make 600 level, didn't express opinion about 540.
 
Or, drop CS 575, make CS 601 a two semester sequence.
 
==Certificate==
'''Status: needs discussion'''
 
The thought is to have a graduate CS certificate for those who want to do some CS coursework but don't need a whole degree.  The university suggests 12-18 credits, the cert must be distinguished somehow from the MS itself, can use 12 credits shared with the MS.  The rules are at https://www.indstate.edu/academic-affairs/curriculum/caps2013/policies-rules-guidelines
 
A starting point for discussion...
* Applied Computer Science: CS 500 or CS 501, choose combination of other courses that are applied and more doable for people without a CS BS, include CS 600 or not
 
=Non-Degree=
'''Status: university is supportive, working through details, needs discussion/feedback'''
 
Notes/plan so far - [[CS Training]]

Latest revision as of 13:22, 17 August 2025

The handin program

Handin is a program for checking out and handing in assignments. There is an online manual entry for handin and all associated programs, so you can type:

man handin

at your prompt if you need to refer to the documentation.

Displaying Outstanding Assignments

By itself, executing handin with no additional command line parameters will display all the class assignments and their due dates. It will also display the last time a specific assignment was submitted, so that you can check your submissions.

handin
  Assignments:
  h1, due 2020-01-17 23:59:59
    - Last submitted on Sun Jan 12 13:16:16 2020
  h2, due 2020-01-24 23:59:59

If your account is not a class account (does not start with something like cs151 or cs500), you can still check, checkout and handin assignments for a specific class using the -c (equivalently, --class) option followed by the class name in question:

handin -c cs456

would select the cs456 class and then display the assignments for the class.

Checking Out an Assignment

Assignments can be copied to your directory using the -C or --checkout option followed by the name of the assignment, i.e.

handin -C h4

would copy the h4 assignment directory to your account where you can then begin working on your assignment.

Submitting Your Assignments

When you have done some work on your assignment, you an submit your assignment using handin followed by the name of the assignment directory i.e.:

cd ~
handin h4

will submit the h4 assignment. Note that this should be done in the parent directory where the assignment directory is. If you are using your class account for the assignment (e.g., you are logged in with your cs151 account and working on an assignment for cs151), you can also submit from with your assignment working directory:

cd ~/h4
submit

You can submit your assignment as many times as you like until the due time has passed. If an assignment allows late submissions, they will be submitted into the late submissions directory. You should submit early and often, as submitting your assignments can be used as a form of backup.

Grading Notes

Once your assignment has been graded, you may be able to check the grading notes for the assignment using the -g option which will print the grading notes for the assignment, assuming they have been submitted by your professor.

handin -g h4

Checking Your Work With --hwcheck

Some assignments may allow auto-checking, which can be accessed using the --hwcheck switch to handin.

handin --hwcheck h4

would check your work for the h4 assignment. You need to be in the assignments parent directory for the option to work, for that reason there is a helper script called 'check' that streamlines auto-checking your work while you are in the assignment directory.

cd ~/h4
check

runs the hwcheck on h4 w/o needing to be in the parent directory. It will also attempt to run make if applicable to build any programs that require building.

In either case, the program checks the output of your program against the output of the instructor's solution on various inputs. If your program is incorrect on any test inputs, this information is printed.