Jeff Kinne Course Policies and CS accounts: Difference between pages

From Computer Science at Indiana State University
(Difference between pages)
Jump to navigation Jump to search
 
 
Line 1: Line 1:
=Jeff Kinne Course Policies=
This page gives information about logging into and using the CS server (cs.indstate.edu). For help about getting started with using the terminal once you can login, see [[Linux and CS Systems - Getting Started]].
Note that many of my course policies are changing for the 2025-2026 academic year. In particular, I will be trying out allowing the use of AI on assignments, but then also focusing a much higher percentage of points on exams and interviews / demonstrations.


To see what my course policies were previously, see [[Jeff Kinne Course Policies 2024]].
=Logging In=
==Summary==
The CS server is a Linux server. The primary ways you will login to the server is either (a) with a terminal (aka shell) that allows you to type text commands, or (b) with sftp to transfer files between your computer and the server. In either case, you need a username (aka login) and password. There are two types of accounts on the system - ISU portal accounts, and local accounts.
* '''Assignments''' - frequent, required header section with citations (0 credit if missing), allowed to use AI or work together (but you will not be prepared for exams if you don't do your own work), graded pass/fail for participation (but with some comments on your code/solutions). I will go through my solutions soon after the assignment is due (many times, the next lecture day). The focus is on you learning quickly; the focus is not the grades.
* '''Exams''' - every 3 weeks, on paper for face to face students, lockdown browser with follow-up interview for distance students, very much based on assignments (so if you understand how to do the assignments, you should do well).
* '''Code review / demo''' - at least every few weeks, maybe more frequent - will be based on submitted assignments and will explain to the class and/or during office hours. You will do well if you can do the assignments on your own.
* '''Project''' - at least one per semester, multiple check points, required header section with citations (0 credit if missing), graded based on code review / demo. The goal is to do something "real", interesting, and/or exciting, and have something you can use in your portfolio (i.e., github).
* '''Academic misconduct''' - leaving out a citation from assignment or project, using anything not allowed on exams (not allowed to use anything other than paper/pencil on the exams). Penalty - F for the course and academic misconduct form filed.
* '''AI''' - allowed for assignments and projects, you will get 0 points for code review/demo if you don't actually understand what you are handing in. Some assignments may require using AI, learning using AI, finding and fixing problems with AI solutions. The goal is to learn to use AI responsibly and see potential pitfalls.
* '''Total course grade''' - will be 60% exams, 30% code review/demos, 10% participation (assignments marked pass/fail). The goal is to assign a grade based on what you can do on your own (fine to learn using AI or others, but the grade should be what you can do on your own after all of that). (Note: for ECT 437/438, the breakdown is different - 50% code review/demos, 50% participation.)
* '''400/500 level courses''' - courses that are offered as a combined section with a 400 level for undergraduates and a 500 level for graduates (e.g., CS 473 and CS 573) will have some learning outcomes that are required for graduate students that are not required for undergraduates.


Note - all CS [[Policies]] are in effect.
==ISU Portal Accounts==
Any student/faculty/staff who is involved in CS courses or programs (enrolled in a course, teaching a course, etc.) can login to cs.indstate.edu using their full ISU email address and portal password. The first time you login to the system, an account is created on the system that you can use. It will set your home directory on the system to <code>/home/SID@isuad.indstate.edu/</code> where <code>SID</code> is your portal id (aka sycamore id - for students it is the part before the @sycamores in your email address). After logging in, you can run the <code>pwd</code> command to see this.


More details are in the rest of this page.
Note that there is not currently "finger information" about ISU portal account users. In fact, trying to run something like "finger jkinne@isuad.indstate.edu" will fail. Note that instructors of current courses can get a class list (aka roster) of accounts for their course; see below.


==400/500 Level Courses==
==Local Accounts==
For courses that are offered simultaneously at the 400 and 500 level (e.g., CS 473 and CS 573), the course is normally managed as a single course. The 400 level course is for undergraduates, and the 500 level course is for graduate students.  
Some users will have accounts on the CS server that are not tied to their ISU portal accounts. For example, CS faculty have local accounts, and a number of users of the server prior to 2025 have local accounts. These are accounts with username and password that were created just on the server (the ability to login to the server with ISU portal credentials was added in 2025). Any new instructor teaching a CS course can ask for a local account if you do not have one already - write to root@cs.indstate.edu.


Note that graduate students who previously took the 400 level version should NOT take the corresponding 500 level version because in this case the 500 level course does NOT count as credits towards graduating.
=Student Use and Course Account=
For courses that are currently being offered, if the course uses the server, a class account is created that the instructor of the course can use if they like. This is explained with two examples: CS 151 Intro to Computer Science, and CS 473/573 Computer Networks.


For 400/500 level courses, the course is supposed to have some content/learning outcomes/assignments/etc. that are for the graduate students and not required for the undergraduate students. The course syllabus will indicate course learning outcomes that are for the graduate students. These outcomes will be assessed by having some assignments (or parts of assignments) that are required for graduate students and not for undergraduates (undergraduates might be able to complete them for extra credit).
==Course Account==
An account on the system is created where files for the class can be kept that are to be shared with the students. For CS 151, the account created has username <code>cs151</code>. For CS 473/573, a single account, <code>cs473</code>, is created that is to be used for both courses.


==Attendance==
==Student Use==
I will record attendance (a count of how many lectures you were present and on time for). This does not count towards the grade, but it does give me information about who is at least showing up. You are supposed to attend lecture. For online students who have a conflict with the lecture time, I will count attendance based on you send a message or email after watching the lecture whether you have any questions or not.
For students who are currently enrolled in a CS course that uses the server, the first time you login to the system with your ISU portal account, a directory should be created within your account for the course. For example, students in CS 151 will have a directory <code>cs151</code>, and students in CS 473/573 will have a directory <code>cs473</code>.  


==AI Learning Unit==
Permissions are set on the system so that instructors of the course have read access to the files within student's course directories for their courses. The instructor for CS 151 will have read access to the <code>cs151</code> directories of the students enrolled in CS 151; the instructor for CS 473/573 will have read access to the <code>cs473</code> directories of the students enrolled in CS 473/573; etc. The instructor of the course might have the students submit their work on the server within these directories. Each instructor can choose how they would like to do this.
I plan to take one unit of material and have us do a test to compare learning the material using lecture versus using AI. The basic plan will be to split the class in half; half of the class participates in lectures like normal; half of the class interacts with AI rather than participating in lecture (for an equal amount of time). I will make to catch people up from both sections after we do the test period. Why will we do this? We should be trying to figure out what types of learning might be improved by using AI more, so this will give us some information about this.


==Grades==
The course account for each course also has read access to the directories for that course. For example, the <code>cs151</code> account will have read access to the <code>cs151</code> directories within any student enrolled in CS 151.
Your overall course grade will be computed as: exams 60%, participation 10%, demonstrations/interviews 30%. (Note: for ECT 437/438, the breakdown is different - 50% code review/demos, 50% participation, with no exams.)


'''Exams''' - These will be roughly every 3 weeks (4 exams during the term plus 1 final exam). Each exam will normally be worth a little bit more than the previous one. The lowest exam score (but not the final exam) will be dropped. There will be no makeup exams; if you miss an exam, then that is your dropped exam. Online students will take the exam at the same time as the rest of the class, in a lockdown browser, and will schedule an interview followup soon after the exam to confirm that this was your own work. For all students (online and face to face), for exams you are not allowed to use anything except yourself - no internet, phone, calculator, AI, communicating with other people, etc.
==Course Account - Instructor Private Files==
The course account is created with a <code>~/private</code> directory that is not accessible to other users (i.e., not accessible to students). The class list (aka roster) of students and their accounts is put into this directory (<code>classlist_brief.csv</code> with the most important information for each student, and <code>classlist_full.csv</code> with more information). The instructor could keep other files in this <code>private</code> directory that is meant to be private (e.g., model solutions or grading information).


'''Participation''' - There will be frequent assignments. For most assignments, they will be graded strictly pass/fail based on whether you made some reasonable attempt to complete the assignment. Late work will not be accepted. My solutions will be shared with the class soon after the due date. The goal is to have frequent assignments that you do your best on, and then see my solutions so that you can more quickly learn. I will not do detailed grading on these assignments so that more of our time is spent working new problems than focusing too much on grading them. After you see my solution to a problem, you should go back to your work after class and fix your work so it is also correct.
Inside the <code>~/private/</code> directory of the course account, there is also a <code>students</code> directory that has symbolic links to each of the student's course directories in the course. For example, if the course is cs151, and if the user jdoe12345@isuad.indstate.edu is a student in the course, then there will be a link <code>/home/cs151/private/students/jdoe12345@isuad.indstate.edu</code> that is a link to the cs151 directory for this student (<code>/home/jdoe12345@isuad.indstate.edu/cs151/</code>). The instructor for the course can quickly get into the students' directories for the course (but not their home directory) by going to the private/students/ directory and going from there.


'''Demonstrations/interviews/projects''' - Some assignments will be to demonstrate your code/solutions to the class. For some assignments, I will interview you to confirm your solutions. Some assignments will be to work on a project that is more open-ended or in-depth (and that will have a demo or interview). These are all things that give you practice on soft skills, and also allow me to confirm your understanding. You will be graded based on the understanding that is demonstrated during the demo/interview.
The accounts for the instructors of the course are set so they can sudo as the course account. If the instructor of CS 151 uses the local account <code>jkinne</code> then this user can run the following command to get a shell running as the CS 151 course account: <code>sudo -u cs151 -i</code>
Note that this only works for local accounts, and does not work for ISU Portal accounts (it might work for the jkinne local account but not for the jkinne@isuad.indstate.edu account).


For each of the above categories, the total grade for that category will just be the sum of all the points in that category.
====Change of Semester and Backups====
Before the next semester, a backup copy of each course account will be created that will be in the course's <code>~/private/backup/</code> directory. A directory will be created for the term, and it will have all of the course account's files from that term within it.


==Assignments==
Once the backup has been created for the previous term, the instructor for the current semester can remove files and directories that are no longer needed for the new term. For example, you can clear out the assignment directories in the course account's home directory, and also the student submissions that are in <code>~/private/submissions/</code>. Those files will still be in the backup directory in case you need them later.


===Attribution and Comments===
When the new semester starts (if the course is running in the new semester), the following in the <code>~/private</code> directory will be updated to be for the new term: classlist_brief.csv, classlist_full.csv, students directory (symbolic links to new semester's students).
For all assignments that are handed in (this includes assignments, projects, or anything else that you submit for the course), you are required to have at the top of the submission a summary that includes the following elements.


* Author: your name
=Websites / Webservers=
* Contents: what is this file for (e.g., hw 1 cs 500)
==Apache==
* Date: date handed in
The main cs.indstate.edu website uses the Apache web server. This is configured so that any user can put html and php files in the right directory in their account to be on the web server. Jeff Kinne, who has portal id <code>jkinne</code>, would do the following to create the right directories.
* Summary: summary of a sentence or few - what does the program do or what is the file about, what changes did you make, etc.
<pre>
* Attributions: list of sources you used. If you used AI you need to list the prompts you used, which AI was used, and if possible a link back to the AI's responses. If you discussed with anyone, list their names and the amount of discussion. If anyone looked at your code, you need to list that. If you copy/pasted code from anywhere, you need to indicate that and give a link to where you got it from. If you started with a file from class, you list that as well. If you have no attributions to list, then just put "none".
cd ~jkinne
mkdir public_html
setfacl -m group:www-data:x .
setfacl -R -m group:www-data:rX public_html
setfacl -R -m default:group:www-data:rX public_html
cd public_html
echo "Hello world" > index.html
</pre>
Then the file index.html will be accessible on the web at https://cs.indstate.edu/~jkinne@isuad.indstate.edu. Since the web server is Apache, you can look for help on the Apache web server about configuration options (in particular .htaccess files that you can put in your public_html directory to change some settings). By default, the Apache web server understands html and php files. There may be other types of files you would want it to be able to understand; if so you can write to root@cs.indstate.edu.


'''Missing''' - if this summary is missing, you get a 0 for the assignment.
==Node, Django, etc.==
Node, Django, and many other web server frameworks can also be run off of the CS server. These generally will pick a port that they will run off of, and you run the main file for your server. Note that the Apache web server uses the "standard" ports (80 for http and 443 for https), so you cannot use those. If you want to run a Node, Django, or similar web server off of the CS server, you need to pick a port that isn't used for anything else. You should never pick a port number that is below 1024 and really should avoid port numbers below 10000. If you want to make sure to pick a port that will not interfere with anything, write to root@cs.indstate.edu


'''Inaccurate attribution''' - if you give an inaccurate attribution (failing to cite that you used AI, failure to indicate that you talked with someone or showed someone your code, etc.), this is academic misconduct.
=Assignments=
Any directory within the course account can be used as an assignment. For example, suppose the account <code>cs151</code> contains a directory <code>h7</code>. This directory might have files for the students to use on the assignment; they can view these files by going to the directory <code>/home/cs151/h7/</code>.  


'''Very limited effort''' - if I determine that you put forth very little effort on any assignment, you will get a 0 for the assignment. For example, if all you did was ask an AI for the answer and then provide the AI's response. Or, if all you did was copy code from the internet or another student.
A student can "checkout" or "get" an assignment by running
<pre>hw_get.py cs151 h7</pre>
This will copy the <code>h7</code> directory that is in the <code>cs151</code> account into the <code>cs151</code> directory of the user that executes the command.


==Schedule==
An instructor can collect an assignment by running the script <code>hw_collect.py</code>. For the above example, the instructor would run: <code>hw_collect.py cs151 h7</code>. This will go into each student in the course's <code>cs151</code> directory and copy their h7 directory into <code>/home/cs151/private/submissions/h7/</code>. There will be a new directory in that submissions directory for the date and time the submissions were collected. For example, if the user jdoe12345@isuad.indstate.edu is in the cs151 course, then the contents of <code>/home/jdoe12345@isuad.indstate.edu/h7/</code> will be copied into the submission directory (inside of <code>/home/cs151/private/submissions/h7/</code>). The directory <code>/home/cs151/private/submissions/h7/</code> will have a symbolic link <code>latest</code> that is a pointer to the latest submission.
The default schedule for my courses is the following.


* Exams - every third week on Wednesdays. Online students take the exam at the same time as the face to face students, and should schedule a 15 minute online meeting with me for the same day as the exam at a time that is after the exam.
=Spring 2026=
* Assignments - most weeks there will be multiple assignments that are graded for participation. Normally, the recommended due date is the next lecture, and my solution will be shared at the beginning of the next lecture.
The following is the list of courses that are supported on the server for the fall 2025, along with the instructor accounts (aka admin accounts) for each course.
* Demonstrations - we will normally have around 10 minutes per lecture that is allocated for demonstrations. Depending on the number of students in the course, each student should expect to give a demo to the class roughly every few weeks.
<pre>
* Interviews - these will be conducted during office hours. These may be about once/week if I have enough time for that. Interviews for assignments will be short (5-10 minutes).
course,admin_accounts
* Projects - there will normally be one or two projects per course. They will normally have multiple check points that are graded. For each check point you will meet with me for a code review.
cs151,"jkinne,jeff,jkinne@isuad.indstate.edu"
 
cs170,"hrafieipour@isuad.indstate.edu"
==Exam Content==
cs201,"majid,mafsharnoghon@isuad.indstate.edu"
Most exams will be over just the content from that period in the course. So they are cumulative only in so far as earlier content is still needed for doing the later content in the course. The final exam will be cumulative.
cs203,"namoako,namoako@isuad.indstate.edu"
 
cs211,"mjenkins1@isuad.indstate.edu"
Exam questions will be similar to those that were given as assignments in the class. Some questions will be identical to what was given as an assignment. Some questions will be an extension/modification of an assignment. Those who do what you are supposed to on the assignments (do them on your own as much as possible, only go to AI or others for help after you have struggled on your own, really understand the model solutions) should do well on the exams.  
cs351,"rabhyankar@isuad.indstate.edu"
 
cs331,"namoako,namoako@isuad.indstate.edu"
There will normally be a few exam questions that are a challenge even for the top students in the class. There will normally be a few questions that are easy even for the bottom students in the class. The goal is to have a broad range of scores so that the exam accurately measures your skills/knowledge.
"cs401,cs501","majid,mafsharnoghon@isuad.indstate.edu"
 
cs401L,"majid,mafsharnoghon@isuad.indstate.edu"
The final exam is normally cumulative.
"cs456,cs556","jcompton5,jcompton5@isuad.indstate.edu"
 
cs456L,"jcompton5,jcompton5@isuad.indstate.edu"
==Academic Misconduct==
"cs457,cs557","kwexoo,kexoo@isuad.indstate.edu"
What is considered academic misconduct in this course -
cs457L,"kwexoo,kexoo@isuad.indstate.edu"
* Assignments/projects - '''lack of citation'''. All assignments and projects require to have a header section that includes citations to anything used (AI, internet sites, etc.) or anyone you discussed the assignment with. If this section is missing, the assignment is worth 0 points. If the citation section is present but is not accurate (i.e., you leave out a source that you used), '''that is academic misconduct'''.
"cs458,cs558","namoako,namoako@isuad.indstate.edu"
* Quiz/exam - '''using anything that is not allowed'''. For quizzes/exams, you are not allowed to use anything except pen/pencil and paper. No calculators, no phones, no notes, no internet, no AI, no communicating with other people. '''Using any of these is academic misconduct.'''
cs458L,"namoako,namoako@isuad.indstate.edu"
* Quiz/exam - distance students will take the quiz/exam in a lockdown browser and otherwise have the same rules (no internet, no notes, etc.). Distance students are not allowed to take the quiz/exam on the same computer as another student in the course; '''doing so would be academic misconduct'''.
"cs469,cs569","katterson1,katterson1@isuad.indstate.edu"
 
"cs475,cs575","rabhyankar@isuad.indstate.edu"
Penalty for academic misconduct -
cs500,"jkinne,jeff,jkinne@isuad.indstate.edu"
* F for the course. This is a 0 tolerance policy. You do not get a second chance, the penalty is F for the course.
cs600,"arash,arafiey@isuad.indstate.edu"
* Report is filed for academic misconduct (see [https://sycamoresindstate.sharepoint.com/sites/STU-StudentSupportandAccountability Student Support and Accountability]) violation (link to file report is https://cm.maxient.com/reporting.php?IndianaStateUniv and then select Academic Misconduct).
"cs601,cs417","majid,mafsharnoghon@isuad.indstate.edu"
 
cs609,"katterson1,katterson1@isuad.indstate.edu"
==Grading Programs and Problems==
cs611,"rabhyankar@isuad.indstate.edu"
* '''Programs''': sometimes will be given scores for correctness, style, and being safe/secure code. By default, 1/2 of the points are for correctness, 1/4 for style, 1/4 for being safe/secure. Sometimes only the correctness will be graded. For programming style, see [[Programming Style - Generic]]. For safe/secure code, see [[Programming safe and secure code - generic]].
cs618,"shosseini@isuad.indstate.edu"
* '''Math/proofs/essays''': sometimes will be given scores for correctness and style. By default, 2/3 of the points are for correctness and 1/3 for style. Points are subtracted for any statement that you include that is false - so you should avoid a brain dump of every thought that you have because I will take off for things that you say that are not correct. For style in writing math/proofs/essay responses, see [[CS Writing Style - Generic]].
cs685,"arash,arafiey@isuad.indstate.edu"
 
cs695,"arash,arafiey@isuad.indstate.edu"
==Complaints or Questions==
ect438,"jkinne,jeff,jkinne@isuad.indstate.edu"
If you have any complaints or questions about anything in a course, you should always communicate with the instructor first. If you skip communicating with the instructor and go straight to complaining to someone else (your advisor, the department chairperson, the dean, the university president, etc.), they will generally tell you that you need to talk to the instructor first.
</pre>
 
If any course instructors would like any additions, subtractions, or changes to these, let the sys-admin know.
==Course Announcements==
Announcements regarding the course will be made both during class and in Canvas. You should make sure your settings are such that you will be notified of these announcements (e.g., by email). You should regularly check your ISU email account or have it forwarded to an account that you check regularly. You can set the account to forward by logging into your indstate.edu email online (if you aren't able to find the option, try a different browser or search online for things like - outlook online forward email setting).
 
==Classroom Conduct==
You may not use cell phones, iPods/music players, etc. during class. You should be civil and respectful to both the instructor and your classmates, and you should arrive to class a few minutes before the scheduled lecture so you are ready for lecture to begin on time. You may use your computer during class if you are using it to follow along with the examples that are being discussed. You should avoid spending time on email, Facebook, work on other courses, etc. during the lecture for this class (be fully present wherever you are, make the most of each experience).
 
==Office hours==
You can contact me by email or Teams or come to my office during the hours I am normally there. If you want to be sure I am there you can sign up for an appointment. Note that I normally am available for online meetings SMTWR 8-10pm as well. If you would like to meet in person you should reserve an appointment using http://cs.indstate.edu/jkinne-meeting to reserve an in person meeting with Jeff Kinne. I am normally in my office during my listed office hours, but by making an appointment you can be more certain.
 
==Canvas==
The course has a canvas site. Click https://indstate.instructure.com/ to go to canvas. You should see this course listed under your courses for the current term. If you don't you may need to click on the Courses icon and then click the "All courses" link. The canvas site is used for giving you your grades, for quizzes/exams, for getting to online lectures (which are done using Teams), and for posting announcements.
 
==Online Lectures (using Teams) ==
Here at ISU section numbers starting with the number 3 (e.g.3xx: 301, 302, etc.) are generally online sections. There are 2 types of online sections, synchronous online and asynchronous online. Sections that are synchronous should be joined at the regularly scheduled time of the course, whereas sections that are asynchronous generally keep up with the material independently without regularly scheduled meetings. In general async sections are more difficult to stay on top of, and require a great deal of self-discipline (it is much easier to think "I can watch the videos tomorrow" and just get behind). So if you are in one of these sections make sure you get off to a strong start, and ask for help sooner rather than later. If you are in an online section, check your course schedule for course meeting times; if you have a meeting time, then your section is synchronous, otherwise it is asynchronous (or there is an error in the system).
 
You will get to the online lectures for this course by going to Canvas, select this course, click Microsoft Education on the left, and click on Meetings. You should see the schedule of lectures under the "Upcoming" heading; click on the "Recordings" to see videos/lectures that have been recorded. Note that the lectures are recorded and only available to those in our class. Recorded lectures normally appear later the same day as the lecture.
 
==Participating online==
If you are participating online, you are expected to either join lectures live through Teams or watch the recordings once they are available. You will complete assignments, quizzes, and exams on the same schedule as the rest of the class. For most of my courses, you can join the lecture live at the same time as the face to face students (as long as you don't have a time conflict). If you do this, then you can ask questions during lecture. Or, if you choose to watch the lecture recordings (so you can pause as needed, or watch at 1.5x or 2x), then you should send me questions you have before the next scheduled lecture.
 
Note that exams are required to be taken at the same time as the face to face students. These dates and times are given near the top of the syllabus.
 
For attendance when you are not in the room... If joining by Teams, you should post a comment in the chat to say if you have any questions about the current assignments, reading, the last lecture, etc. If watching the lecture later, you should watch it before the next lecture and send me a message by Teams or email saying if you have any questions or want any more examples about a particular topic. So, if not in the room, you should participate at least as much as "no questions from me right now".
 
==Course Policies Quiz==
The following is a quiz over Jeff Kinne's course policies: [https://indstate.instructure.com/courses/12565/quizzes/290624 sample quiz]. The link is to a practice quiz that you can try out. Those enrolled in the course need to take the quiz within the course for it to count. For Jeff Kinne's courses, you are required to score a 100% on this quiz within the first week of classes in order to continue in the course.  Note that you will be able to take the quiz multiple times. If you choose not to score 100% on this quiz you should drop the course.

Revision as of 02:06, 18 February 2026

This page gives information about logging into and using the CS server (cs.indstate.edu). For help about getting started with using the terminal once you can login, see Linux and CS Systems - Getting Started.

Logging In

The CS server is a Linux server. The primary ways you will login to the server is either (a) with a terminal (aka shell) that allows you to type text commands, or (b) with sftp to transfer files between your computer and the server. In either case, you need a username (aka login) and password. There are two types of accounts on the system - ISU portal accounts, and local accounts.

ISU Portal Accounts

Any student/faculty/staff who is involved in CS courses or programs (enrolled in a course, teaching a course, etc.) can login to cs.indstate.edu using their full ISU email address and portal password. The first time you login to the system, an account is created on the system that you can use. It will set your home directory on the system to /home/SID@isuad.indstate.edu/ where SID is your portal id (aka sycamore id - for students it is the part before the @sycamores in your email address). After logging in, you can run the pwd command to see this.

Note that there is not currently "finger information" about ISU portal account users. In fact, trying to run something like "finger jkinne@isuad.indstate.edu" will fail. Note that instructors of current courses can get a class list (aka roster) of accounts for their course; see below.

Local Accounts

Some users will have accounts on the CS server that are not tied to their ISU portal accounts. For example, CS faculty have local accounts, and a number of users of the server prior to 2025 have local accounts. These are accounts with username and password that were created just on the server (the ability to login to the server with ISU portal credentials was added in 2025). Any new instructor teaching a CS course can ask for a local account if you do not have one already - write to root@cs.indstate.edu.

Student Use and Course Account

For courses that are currently being offered, if the course uses the server, a class account is created that the instructor of the course can use if they like. This is explained with two examples: CS 151 Intro to Computer Science, and CS 473/573 Computer Networks.

Course Account

An account on the system is created where files for the class can be kept that are to be shared with the students. For CS 151, the account created has username cs151. For CS 473/573, a single account, cs473, is created that is to be used for both courses.

Student Use

For students who are currently enrolled in a CS course that uses the server, the first time you login to the system with your ISU portal account, a directory should be created within your account for the course. For example, students in CS 151 will have a directory cs151, and students in CS 473/573 will have a directory cs473.

Permissions are set on the system so that instructors of the course have read access to the files within student's course directories for their courses. The instructor for CS 151 will have read access to the cs151 directories of the students enrolled in CS 151; the instructor for CS 473/573 will have read access to the cs473 directories of the students enrolled in CS 473/573; etc. The instructor of the course might have the students submit their work on the server within these directories. Each instructor can choose how they would like to do this.

The course account for each course also has read access to the directories for that course. For example, the cs151 account will have read access to the cs151 directories within any student enrolled in CS 151.

Course Account - Instructor Private Files

The course account is created with a ~/private directory that is not accessible to other users (i.e., not accessible to students). The class list (aka roster) of students and their accounts is put into this directory (classlist_brief.csv with the most important information for each student, and classlist_full.csv with more information). The instructor could keep other files in this private directory that is meant to be private (e.g., model solutions or grading information).

Inside the ~/private/ directory of the course account, there is also a students directory that has symbolic links to each of the student's course directories in the course. For example, if the course is cs151, and if the user jdoe12345@isuad.indstate.edu is a student in the course, then there will be a link /home/cs151/private/students/jdoe12345@isuad.indstate.edu that is a link to the cs151 directory for this student (/home/jdoe12345@isuad.indstate.edu/cs151/). The instructor for the course can quickly get into the students' directories for the course (but not their home directory) by going to the private/students/ directory and going from there.

The accounts for the instructors of the course are set so they can sudo as the course account. If the instructor of CS 151 uses the local account jkinne then this user can run the following command to get a shell running as the CS 151 course account: sudo -u cs151 -i Note that this only works for local accounts, and does not work for ISU Portal accounts (it might work for the jkinne local account but not for the jkinne@isuad.indstate.edu account).

Change of Semester and Backups

Before the next semester, a backup copy of each course account will be created that will be in the course's ~/private/backup/ directory. A directory will be created for the term, and it will have all of the course account's files from that term within it.

Once the backup has been created for the previous term, the instructor for the current semester can remove files and directories that are no longer needed for the new term. For example, you can clear out the assignment directories in the course account's home directory, and also the student submissions that are in ~/private/submissions/. Those files will still be in the backup directory in case you need them later.

When the new semester starts (if the course is running in the new semester), the following in the ~/private directory will be updated to be for the new term: classlist_brief.csv, classlist_full.csv, students directory (symbolic links to new semester's students).

Websites / Webservers

Apache

The main cs.indstate.edu website uses the Apache web server. This is configured so that any user can put html and php files in the right directory in their account to be on the web server. Jeff Kinne, who has portal id jkinne, would do the following to create the right directories.

cd ~jkinne
mkdir public_html
setfacl -m group:www-data:x .
setfacl -R -m group:www-data:rX public_html
setfacl -R -m default:group:www-data:rX public_html
cd public_html
echo "Hello world" > index.html

Then the file index.html will be accessible on the web at https://cs.indstate.edu/~jkinne@isuad.indstate.edu. Since the web server is Apache, you can look for help on the Apache web server about configuration options (in particular .htaccess files that you can put in your public_html directory to change some settings). By default, the Apache web server understands html and php files. There may be other types of files you would want it to be able to understand; if so you can write to root@cs.indstate.edu.

Node, Django, etc.

Node, Django, and many other web server frameworks can also be run off of the CS server. These generally will pick a port that they will run off of, and you run the main file for your server. Note that the Apache web server uses the "standard" ports (80 for http and 443 for https), so you cannot use those. If you want to run a Node, Django, or similar web server off of the CS server, you need to pick a port that isn't used for anything else. You should never pick a port number that is below 1024 and really should avoid port numbers below 10000. If you want to make sure to pick a port that will not interfere with anything, write to root@cs.indstate.edu

Assignments

Any directory within the course account can be used as an assignment. For example, suppose the account cs151 contains a directory h7. This directory might have files for the students to use on the assignment; they can view these files by going to the directory /home/cs151/h7/.

A student can "checkout" or "get" an assignment by running

hw_get.py cs151 h7

This will copy the h7 directory that is in the cs151 account into the cs151 directory of the user that executes the command.

An instructor can collect an assignment by running the script hw_collect.py. For the above example, the instructor would run: hw_collect.py cs151 h7. This will go into each student in the course's cs151 directory and copy their h7 directory into /home/cs151/private/submissions/h7/. There will be a new directory in that submissions directory for the date and time the submissions were collected. For example, if the user jdoe12345@isuad.indstate.edu is in the cs151 course, then the contents of /home/jdoe12345@isuad.indstate.edu/h7/ will be copied into the submission directory (inside of /home/cs151/private/submissions/h7/). The directory /home/cs151/private/submissions/h7/ will have a symbolic link latest that is a pointer to the latest submission.

Spring 2026

The following is the list of courses that are supported on the server for the fall 2025, along with the instructor accounts (aka admin accounts) for each course.

course,admin_accounts
cs151,"jkinne,jeff,jkinne@isuad.indstate.edu"
cs170,"hrafieipour@isuad.indstate.edu"
cs201,"majid,mafsharnoghon@isuad.indstate.edu"
cs203,"namoako,namoako@isuad.indstate.edu"
cs211,"mjenkins1@isuad.indstate.edu"
cs351,"rabhyankar@isuad.indstate.edu"
cs331,"namoako,namoako@isuad.indstate.edu"
"cs401,cs501","majid,mafsharnoghon@isuad.indstate.edu"
cs401L,"majid,mafsharnoghon@isuad.indstate.edu"
"cs456,cs556","jcompton5,jcompton5@isuad.indstate.edu"
cs456L,"jcompton5,jcompton5@isuad.indstate.edu"
"cs457,cs557","kwexoo,kexoo@isuad.indstate.edu"
cs457L,"kwexoo,kexoo@isuad.indstate.edu"
"cs458,cs558","namoako,namoako@isuad.indstate.edu"
cs458L,"namoako,namoako@isuad.indstate.edu"
"cs469,cs569","katterson1,katterson1@isuad.indstate.edu"
"cs475,cs575","rabhyankar@isuad.indstate.edu"
cs500,"jkinne,jeff,jkinne@isuad.indstate.edu"
cs600,"arash,arafiey@isuad.indstate.edu"
"cs601,cs417","majid,mafsharnoghon@isuad.indstate.edu"
cs609,"katterson1,katterson1@isuad.indstate.edu"
cs611,"rabhyankar@isuad.indstate.edu"
cs618,"shosseini@isuad.indstate.edu"
cs685,"arash,arafiey@isuad.indstate.edu"
cs695,"arash,arafiey@isuad.indstate.edu"
ect438,"jkinne,jeff,jkinne@isuad.indstate.edu"

If any course instructors would like any additions, subtractions, or changes to these, let the sys-admin know.