<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://cs.indstate.edu/web/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jkinne</id>
	<title>Computer Science at Indiana State University - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://cs.indstate.edu/web/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jkinne"/>
	<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php/Special:Contributions/Jkinne"/>
	<updated>2026-09-04T15:21:53Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=923</id>
		<title>CS 473</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=923"/>
		<updated>2026-08-30T19:41:09Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Course Description and Content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CS 473/573 Computer Networks is required in the academic concentration of the CS BS and can be taken as an elective for others.&lt;br /&gt;
&lt;br /&gt;
This page contains the syllabus/course schedule for CS 473/573 for the most recent offering (fall 2026). Previous terms - [[CS 473 Fall 2025|fall 2025 kinne]], [https://cs.indstate.edu/info/syllabi/cs473-f2022-cox.pdf fall 2022 Cox], [https://cs.indstate.edu/info/syllabi/cs473-f2021-kinne.pdf fall 2021 Kinne], [https://cs.indstate.edu/info/syllabi/cs473-s2019-baker.pdf fall 2019 Baker].&lt;br /&gt;
&lt;br /&gt;
Note that all sections of the course will use the same homeworks and lab assignments. Quizzes and exams may be slightly different for the online versus face to face students.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to OneDrive folder with lecture slides and other files: [https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgA4sPuiwtstR79DncedV5WLAYtZuo0T5oehIhGcpsQed5Y OneDrive link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teams meeting link to join lecture online or watch recordings: [https://teams.microsoft.com/meet/269099999478694?p=I09e4zkjtvudEaX33q Teams meeting link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Text we are starting the term with - [https://beej.us/guide/bgnet0/ Beej&#039;s Guide to Networking Concepts]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/CS_473&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important&#039;&#039;&#039; - If you are a graduate student who took CS 473 as an undergraduate, or had transfer credit for CS 473, then you should NOT take CS 573. The system would let you register, but the course would not count towards your MS degree.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [http://mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Meeting:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; TR 11am-12:15pm in Root Hall (RO) A-106, over Teams ([https://teams.microsoft.com/meet/269099999478694?p=I09e4zkjtvudEaX33q Teams meeting link]), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Exams:&#039;&#039;  every three weeks on Thursdays (Sep 3, Sep 24, Oct 15, Nov 5) during lecture time (11am-12:15pm).  &#039;&#039;(For those with another class at that time, we will arrange the time after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; Thursday, Dec 10, 10-11:50am. &#039;&#039;(For those with another class at that time, your exam time will be decided after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - For CS 473 the prereq is: A grade of C or better in CS 203 or CS 303, and in CS 351. For CS 573 the prereq is: C or better in CS 456 or CS 556 or A- or better in CS 500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
We will use selections from the following free online sources. We may add to this list as needed.&lt;br /&gt;
* [http://beej.us/guide/bgnet/ Beej&#039;s Guide to Network Programming], [https://beej.us/guide/bgnet0/ Beej&#039;s Guide to Networking Concepts]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Internet_protocol_suite Internet Protocol], [https://en.wikipedia.org/wiki/Transmission_Control_Protocol TCP Protocol], [https://en.wikipedia.org/wiki/IPv4 IPv4], [https://en.wikipedia.org/wiki/Ethernet_frame#Ethernet_II Ethernet II], [https://en.wikipedia.org/wiki/HTTP HTTP on Wikipedia], [https://developer.mozilla.org/en-US/docs/Web/HTTP HTTP on MDN], [https://datatracker.ietf.org/doc/html/rfc2616 HTTP 1.1 definition]&lt;br /&gt;
* [https://docs.freebsd.org/44doc/psd/20.ipctut/paper.pdf An Introductory 4.4BSD Interprocess Communication Tutorial]&lt;br /&gt;
* Unix Network Programming, Volume 1: The Sockets Networking API 3rd Edition by W. Richard Stevens (Author), Bill Fenner (Author), Andrew M. Rudoff (Author) &lt;br /&gt;
* The Unix Manual Pages (man)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software/Programs&#039;&#039;&#039;&lt;br /&gt;
* [https://www.wireshark.org/download.html WireShark]&lt;br /&gt;
* Programming - probably some in Python, C, and Rust&lt;br /&gt;
* Telnet: [https://blog.mrkeyshop.com/en/guides/how-to-enable-and-use-telnet-on-windows-11-and-10/ install/enable on Windows]. For Mac OS, first install [https://brew.sh/ homebrew] and then [https://formulae.brew.sh/formula/telnet#default brew install telnet].&lt;br /&gt;
** If using the builtin Windows 10/11 telnet client, open a command prompt, then type telnet and Enter to start telnet. To open a connection, type something like: &amp;lt;code&amp;gt;open cs.indstate.edu 47300&amp;lt;/code&amp;gt; and enter. The display is a little quirky - when you type it will overwrite characters already on the screen.&lt;br /&gt;
* Putty: can also be used as a telnet client on Windows. [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html Download]. To use as a telnet client, when you run Putty, set the Hostname (e.g., cs.indstate.edu) and Port as desired (e.g., 47300), select Other for Connection Type, and click to change &amp;quot;Telnet&amp;quot; to &amp;quot;Raw&amp;quot;, then click Open.&lt;br /&gt;
* Netcat: there are various versions. One cross-platform version is: https://nmap.org/ncat/. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgA4sPuiwtstR79DncedV5WLAYtZuo0T5oehIhGcpsQed5Y this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs473/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~cs473/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The course is an introduction to networking and includes detailed study of Internet protocols and socket programming. Topics include a study of IP, UDP, and TCP protocols, as well as application layer protocols such as HTTP and SMTP. Students learn to program both a client and a server.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Network protocols, the Internet&lt;br /&gt;
* IPv4, IPv6, UDP, TCP&lt;br /&gt;
* Routing&lt;br /&gt;
* Client/server, ARP, DNS, HTTP, SSL&lt;br /&gt;
* Security, encryption&lt;br /&gt;
* How all of that works, and tools for looking at it&lt;br /&gt;
&lt;br /&gt;
Unit 2 Network Programming&lt;br /&gt;
* Interprocess communication (BSD IPC paper)&lt;br /&gt;
* Processes, pipes, signals, socketpairs, asynch I/O&lt;br /&gt;
* Threads, shared memory, etc. &lt;br /&gt;
&lt;br /&gt;
Unit 3 Selected topics&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
* Able to use Linux systems and terminal - managing files, running code, using utility programs. &lt;br /&gt;
* Understanding of data flow on the internet.&lt;br /&gt;
** Can give precise details (diagrams, trace through examples, explain tradeoffs) of how data is transmitted between programs on a single machine and on different machines via the Internet.&lt;br /&gt;
* Understanding the fundamentals of network security and encryption.&lt;br /&gt;
* Ability to write client and server programs.&lt;br /&gt;
** Completed multiple different client/server and related programs independently, can explain the overall design of the programs and the details of how they are implemented.&lt;br /&gt;
* CS 573 only - able to research a topic not covered in lecture, learn the material and skills, and present to the class.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=922</id>
		<title>Gitlab - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=922"/>
		<updated>2026-08-30T17:21:56Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Windows - Using Putty */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Git=&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a version control system that can be used to keep track of your files (programming code, but also other files as well).  &lt;br /&gt;
&lt;br /&gt;
Two of the most popular installations of git (as of 2020) are [https://github.com/ github] and [https://gitlab.com/ gitlab].  When Microsoft purchased github, it became fashionable to prefer gitlab.  Github allows for projects to be hosted on their servers.  Gitlab allows for hosting either on their servers or to run a local installation of gitlab on ones own servers.&lt;br /&gt;
&lt;br /&gt;
Of late, we have hosted projects using gitlab either on gitlab&#039;s servers or on ISU&#039;s local installation of gitlab.&lt;br /&gt;
&lt;br /&gt;
=Account Setup=&lt;br /&gt;
&#039;&#039;&#039;On gitlab.com&#039;&#039;&#039; - Account setup on [https://gitlab.com/ gitlab.com] is just like any other website.  You create a free account, choose your username/password, etc.  The account is yours and is not tied in any particular way to ISU.  You can give access to your projects in much the same way as you give access to files on google drive, onedrive, dropbox, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On git.indstate.edu&#039;&#039;&#039; - ISU&#039;s local installation of gitlab is at https://git.indstate.edu/.  For this system you use your ISU portal id and password.  You do not need to create an account.  The first time you login into the system, it initializes an account for you.  CS courses and ISU CS projects in general tend to use ISU&#039;s local installation because we can tie access based on course rosters, etc.&lt;br /&gt;
&lt;br /&gt;
=SSH Keys=&lt;br /&gt;
You will normally want to have SSH keys setup so that you can interact with the git server without having to enter a username and password. Instructions are here: https://docs.gitlab.com/user/ssh/&lt;br /&gt;
&lt;br /&gt;
You will need to edit your ssh configuration so that it knows which key to use when connecting to git.indstate.edu. On a Mac or Linux, edit the file &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; and put a section like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host git.indstate.edu&lt;br /&gt;
  PreferredAuthentications publickey&lt;br /&gt;
  IdentityFile ~/.ssh/git_indstate_id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should replace the name git_indstate_id with whatever filename you used for the private key. On Windows, the file should be in your home directory (normally C:\Users\YOUR_USERNAME) and then .ssh/config (so, similar to where it is for Mac and Linux).&lt;br /&gt;
&lt;br /&gt;
Note - for editing the config file, you should use a plain text editor (Notepad on Windows, TextEdit on Mac, or something nicer; not Word). &lt;br /&gt;
&lt;br /&gt;
Note - you will need to enable the ability to see &amp;quot;hidden&amp;quot; files. On Mac, you press cmd-shift-. to see hidden files in Finder. On Windows, in File Explorer you need to: click the triple dots near the top right, click Options, click View, select &amp;quot;Show files, folders, and drives&amp;quot;, and also unselect &amp;quot;Hide extensions for known file types&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can clone a repository from git.indstate.edu using a command like this: &amp;lt;code&amp;gt;git clone git+ssh://git@git.indstate.edu/ect-437-fall-2026/hello-class.git&amp;lt;/code&amp;gt;, but where you would replace the link with whatever repository you are cloning.&lt;br /&gt;
&lt;br /&gt;
==Windows - Using Putty==&lt;br /&gt;
If you are on Windows and are getting an access error when you tro to run the git clone command, it might work by changing the configuration for git to use a different program for ssh. You can try the following.&lt;br /&gt;
* Download and install Putty from: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&lt;br /&gt;
* Open your terminal (PowerShell) and run the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;[Environment]::SetEnvironmentVariable(&amp;quot;GIT_SSH&amp;quot;, &amp;quot;plink.exe&amp;quot;, &amp;quot;User&amp;quot;)&lt;br /&gt;
git config --global core.sshCommand &amp;quot;plink.exe&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Open the app PuttyGen (that is installed along with Putty). Click &amp;quot;Load&amp;quot;, and load your private key file (id_ed25519 if you used default settings); you will need to change the Filename selector to &amp;quot;All Files&amp;quot; rather than &amp;quot;Putty Private Key Files&amp;quot;. Then click &amp;quot;Save private key&amp;quot;, and save the private key in the ppk format (and store it in your .ssh directory); use the same filename but put &amp;quot;.ppk&amp;quot; at the end. &lt;br /&gt;
* Open the app Pageant (that is also installed along with Putty). This runs in the background, so nothing will appear on the screen. Look in your system tray for a new icon. Click on the Pageant icon in the system tray, right-click on it, and click &amp;quot;Add key&amp;quot;. Select the ppk file you just produced.&lt;br /&gt;
* Close your terminal windows and open a new one. Try running the git pull command again. Note that you may need to delete the &amp;quot;hello-class&amp;quot; directory if it was created by trying to run the git pull previously (even if it fails, it might make the directory).&lt;br /&gt;
&lt;br /&gt;
=Getting Around=&lt;br /&gt;
Whether you are using gitlab.com or git.indstate.edu, the functionality and &amp;quot;how to get around&amp;quot; is about the same.  You have two main methods for using either.&lt;br /&gt;
&lt;br /&gt;
==Web browser interface==&lt;br /&gt;
You can view projects within your web browser.  How to get around is fairly intuitive - as is the case with any web page, you look around and click around to see what different things do.  When you have something specific you want to do but don&#039;t see how to do, you ask the internet or ask your instructor (and we may update this wiki to give instructions on how to do it).&lt;br /&gt;
&lt;br /&gt;
==Terminal interface==&lt;br /&gt;
Git allows for downloading/uploading/etc. files in your projects from the terminal.  In order to do this, you need to (a) have a git client installed on your system, (b) understand the terminology that git uses for keeping track of files and the steps in using git to download/update/upload files, (c) make it so.&lt;br /&gt;
&lt;br /&gt;
Some reading material about using git - https://www.tutorialspoint.com/git/index.htm&lt;br /&gt;
&lt;br /&gt;
===Vocab / Cheat Sheet===&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
A common use case is that you will need to download someone else&#039;s (e.g., instructor&#039;s) gitlab project, create your own version of some part of the project, test/debug your version of the project, eventually put in a request to update the main project with your code.  The steps involved in that workflow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clone&#039;&#039;&#039; - To download the current version of the project you (a) browse in your terminal to the directory where you want to have the project code, (b) run &amp;lt;code&amp;gt;git clone url_to_project&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039; - If a branch has already been created for you, then you can set that as your active branch by running &amp;lt;code&amp;gt;git checkout branch_name&amp;lt;/code&amp;gt;.  If a branch has not yet been created for you, you run &amp;lt;code&amp;gt;git branch branch_name&amp;lt;/code&amp;gt; to create a new branch.  In either case, you have a branch of the project to work within.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do your work&#039;&#039;&#039; - You work on your files locally - test, debug, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage/Commit/Push&#039;&#039;&#039; - To save your work to the remote server, you need to stage, commit, and push.  You can stage/commit batches of changes, or do a stage/commit for each discreet task accomplished.  If you are working in some_file.txt, you would run the following sequence of commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add some_file.txt  # this &amp;quot;stages&amp;quot; the file to be part of the next commit&lt;br /&gt;
git commit -m &amp;quot;Some updates to the file&amp;quot; # This commits, will be a permanent record of this version of the file&lt;br /&gt;
git push               # sends all committed changes to the remote server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the push may ask for login information to the remote server.  If you have an ssh key configured for the project (see section above), then you won&#039;t be asked for login information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pull&#039;&#039;&#039; - To pull/download updates that have happened (by others), you use &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge&#039;&#039;&#039; - When you ready to have your changes merged in to the main branch of the project, ask the owner of the project to check your branch.  When the owner is ready for it, the owner can run the following commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git branch main        # owner is working in the main branch&lt;br /&gt;
git merge branch_name  # merge your branch into the main branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=921</id>
		<title>Gitlab - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=921"/>
		<updated>2026-08-30T17:13:54Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Windows - Using Putty */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Git=&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a version control system that can be used to keep track of your files (programming code, but also other files as well).  &lt;br /&gt;
&lt;br /&gt;
Two of the most popular installations of git (as of 2020) are [https://github.com/ github] and [https://gitlab.com/ gitlab].  When Microsoft purchased github, it became fashionable to prefer gitlab.  Github allows for projects to be hosted on their servers.  Gitlab allows for hosting either on their servers or to run a local installation of gitlab on ones own servers.&lt;br /&gt;
&lt;br /&gt;
Of late, we have hosted projects using gitlab either on gitlab&#039;s servers or on ISU&#039;s local installation of gitlab.&lt;br /&gt;
&lt;br /&gt;
=Account Setup=&lt;br /&gt;
&#039;&#039;&#039;On gitlab.com&#039;&#039;&#039; - Account setup on [https://gitlab.com/ gitlab.com] is just like any other website.  You create a free account, choose your username/password, etc.  The account is yours and is not tied in any particular way to ISU.  You can give access to your projects in much the same way as you give access to files on google drive, onedrive, dropbox, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On git.indstate.edu&#039;&#039;&#039; - ISU&#039;s local installation of gitlab is at https://git.indstate.edu/.  For this system you use your ISU portal id and password.  You do not need to create an account.  The first time you login into the system, it initializes an account for you.  CS courses and ISU CS projects in general tend to use ISU&#039;s local installation because we can tie access based on course rosters, etc.&lt;br /&gt;
&lt;br /&gt;
=SSH Keys=&lt;br /&gt;
You will normally want to have SSH keys setup so that you can interact with the git server without having to enter a username and password. Instructions are here: https://docs.gitlab.com/user/ssh/&lt;br /&gt;
&lt;br /&gt;
You will need to edit your ssh configuration so that it knows which key to use when connecting to git.indstate.edu. On a Mac or Linux, edit the file &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; and put a section like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host git.indstate.edu&lt;br /&gt;
  PreferredAuthentications publickey&lt;br /&gt;
  IdentityFile ~/.ssh/git_indstate_id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should replace the name git_indstate_id with whatever filename you used for the private key. On Windows, the file should be in your home directory (normally C:\Users\YOUR_USERNAME) and then .ssh/config (so, similar to where it is for Mac and Linux).&lt;br /&gt;
&lt;br /&gt;
Note - for editing the config file, you should use a plain text editor (Notepad on Windows, TextEdit on Mac, or something nicer; not Word). &lt;br /&gt;
&lt;br /&gt;
Note - you will need to enable the ability to see &amp;quot;hidden&amp;quot; files. On Mac, you press cmd-shift-. to see hidden files in Finder. On Windows, in File Explorer you need to: click the triple dots near the top right, click Options, click View, select &amp;quot;Show files, folders, and drives&amp;quot;, and also unselect &amp;quot;Hide extensions for known file types&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can clone a repository from git.indstate.edu using a command like this: &amp;lt;code&amp;gt;git clone git+ssh://git@git.indstate.edu/ect-437-fall-2026/hello-class.git&amp;lt;/code&amp;gt;, but where you would replace the link with whatever repository you are cloning.&lt;br /&gt;
&lt;br /&gt;
==Windows - Using Putty==&lt;br /&gt;
If you are on Windows and are getting an access error when you tro to run the git clone command, it might work by changing the configuration for git to use a different program for ssh. You can try the following.&lt;br /&gt;
* Download and install Putty from: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&lt;br /&gt;
* Open your terminal (PowerShell) and run the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;[Environment]::SetEnvironmentVariable(&amp;quot;GIT_SSH&amp;quot;, &amp;quot;plink.exe&amp;quot;, &amp;quot;User&amp;quot;)&lt;br /&gt;
git config --global core.sshCommand &amp;quot;plink.exe&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Open the app PuttyGen (that is installed along with Putty). Click &amp;quot;Load&amp;quot;, and load your private key file (id_ed25519 if you used default settings). Then click &amp;quot;Save private key&amp;quot;, and save the private key in the ppk format (and store it in your .ssh directory). &lt;br /&gt;
* Open the app Pageant (that is also installed along with Putty). This runs in the background, so nothing will appear on the screen. Look in your system tray for a new icon. Click on the Pageant icon in the system tray, right-click on it, and click &amp;quot;Add key&amp;quot;. Select the ppk file you just produced.&lt;br /&gt;
* Close your terminal windows and open a new one. Try running the git pull command again.&lt;br /&gt;
&lt;br /&gt;
=Getting Around=&lt;br /&gt;
Whether you are using gitlab.com or git.indstate.edu, the functionality and &amp;quot;how to get around&amp;quot; is about the same.  You have two main methods for using either.&lt;br /&gt;
&lt;br /&gt;
==Web browser interface==&lt;br /&gt;
You can view projects within your web browser.  How to get around is fairly intuitive - as is the case with any web page, you look around and click around to see what different things do.  When you have something specific you want to do but don&#039;t see how to do, you ask the internet or ask your instructor (and we may update this wiki to give instructions on how to do it).&lt;br /&gt;
&lt;br /&gt;
==Terminal interface==&lt;br /&gt;
Git allows for downloading/uploading/etc. files in your projects from the terminal.  In order to do this, you need to (a) have a git client installed on your system, (b) understand the terminology that git uses for keeping track of files and the steps in using git to download/update/upload files, (c) make it so.&lt;br /&gt;
&lt;br /&gt;
Some reading material about using git - https://www.tutorialspoint.com/git/index.htm&lt;br /&gt;
&lt;br /&gt;
===Vocab / Cheat Sheet===&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
A common use case is that you will need to download someone else&#039;s (e.g., instructor&#039;s) gitlab project, create your own version of some part of the project, test/debug your version of the project, eventually put in a request to update the main project with your code.  The steps involved in that workflow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clone&#039;&#039;&#039; - To download the current version of the project you (a) browse in your terminal to the directory where you want to have the project code, (b) run &amp;lt;code&amp;gt;git clone url_to_project&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039; - If a branch has already been created for you, then you can set that as your active branch by running &amp;lt;code&amp;gt;git checkout branch_name&amp;lt;/code&amp;gt;.  If a branch has not yet been created for you, you run &amp;lt;code&amp;gt;git branch branch_name&amp;lt;/code&amp;gt; to create a new branch.  In either case, you have a branch of the project to work within.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do your work&#039;&#039;&#039; - You work on your files locally - test, debug, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage/Commit/Push&#039;&#039;&#039; - To save your work to the remote server, you need to stage, commit, and push.  You can stage/commit batches of changes, or do a stage/commit for each discreet task accomplished.  If you are working in some_file.txt, you would run the following sequence of commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add some_file.txt  # this &amp;quot;stages&amp;quot; the file to be part of the next commit&lt;br /&gt;
git commit -m &amp;quot;Some updates to the file&amp;quot; # This commits, will be a permanent record of this version of the file&lt;br /&gt;
git push               # sends all committed changes to the remote server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the push may ask for login information to the remote server.  If you have an ssh key configured for the project (see section above), then you won&#039;t be asked for login information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pull&#039;&#039;&#039; - To pull/download updates that have happened (by others), you use &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge&#039;&#039;&#039; - When you ready to have your changes merged in to the main branch of the project, ask the owner of the project to check your branch.  When the owner is ready for it, the owner can run the following commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git branch main        # owner is working in the main branch&lt;br /&gt;
git merge branch_name  # merge your branch into the main branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=920</id>
		<title>Gitlab - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=920"/>
		<updated>2026-08-30T17:13:21Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Windows - Using Putty */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Git=&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a version control system that can be used to keep track of your files (programming code, but also other files as well).  &lt;br /&gt;
&lt;br /&gt;
Two of the most popular installations of git (as of 2020) are [https://github.com/ github] and [https://gitlab.com/ gitlab].  When Microsoft purchased github, it became fashionable to prefer gitlab.  Github allows for projects to be hosted on their servers.  Gitlab allows for hosting either on their servers or to run a local installation of gitlab on ones own servers.&lt;br /&gt;
&lt;br /&gt;
Of late, we have hosted projects using gitlab either on gitlab&#039;s servers or on ISU&#039;s local installation of gitlab.&lt;br /&gt;
&lt;br /&gt;
=Account Setup=&lt;br /&gt;
&#039;&#039;&#039;On gitlab.com&#039;&#039;&#039; - Account setup on [https://gitlab.com/ gitlab.com] is just like any other website.  You create a free account, choose your username/password, etc.  The account is yours and is not tied in any particular way to ISU.  You can give access to your projects in much the same way as you give access to files on google drive, onedrive, dropbox, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On git.indstate.edu&#039;&#039;&#039; - ISU&#039;s local installation of gitlab is at https://git.indstate.edu/.  For this system you use your ISU portal id and password.  You do not need to create an account.  The first time you login into the system, it initializes an account for you.  CS courses and ISU CS projects in general tend to use ISU&#039;s local installation because we can tie access based on course rosters, etc.&lt;br /&gt;
&lt;br /&gt;
=SSH Keys=&lt;br /&gt;
You will normally want to have SSH keys setup so that you can interact with the git server without having to enter a username and password. Instructions are here: https://docs.gitlab.com/user/ssh/&lt;br /&gt;
&lt;br /&gt;
You will need to edit your ssh configuration so that it knows which key to use when connecting to git.indstate.edu. On a Mac or Linux, edit the file &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; and put a section like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host git.indstate.edu&lt;br /&gt;
  PreferredAuthentications publickey&lt;br /&gt;
  IdentityFile ~/.ssh/git_indstate_id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should replace the name git_indstate_id with whatever filename you used for the private key. On Windows, the file should be in your home directory (normally C:\Users\YOUR_USERNAME) and then .ssh/config (so, similar to where it is for Mac and Linux).&lt;br /&gt;
&lt;br /&gt;
Note - for editing the config file, you should use a plain text editor (Notepad on Windows, TextEdit on Mac, or something nicer; not Word). &lt;br /&gt;
&lt;br /&gt;
Note - you will need to enable the ability to see &amp;quot;hidden&amp;quot; files. On Mac, you press cmd-shift-. to see hidden files in Finder. On Windows, in File Explorer you need to: click the triple dots near the top right, click Options, click View, select &amp;quot;Show files, folders, and drives&amp;quot;, and also unselect &amp;quot;Hide extensions for known file types&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can clone a repository from git.indstate.edu using a command like this: &amp;lt;code&amp;gt;git clone git+ssh://git@git.indstate.edu/ect-437-fall-2026/hello-class.git&amp;lt;/code&amp;gt;, but where you would replace the link with whatever repository you are cloning.&lt;br /&gt;
&lt;br /&gt;
==Windows - Using Putty==&lt;br /&gt;
If you are on Windows and are getting an access error when you tro to run the git clone command, it might work by changing the configuration for git to use a different program for ssh. You can try the following.&lt;br /&gt;
* Download and install Putty from: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&lt;br /&gt;
* Open your terminal (PowerShell) and run the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;[Environment]::SetEnvironmentVariable(&amp;quot;GIT_SSH&amp;quot;, &amp;quot;plink.exe&amp;quot;, &amp;quot;User&amp;quot;)&lt;br /&gt;
git config --global core.sshCommand &amp;quot;plink.exe&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Open the app PuttyGen (that is installed along with Putty). Click &amp;quot;Load&amp;quot;, and load your private key file (id_ed25519 if you used default settings). Then click &amp;quot;Save private key&amp;quot;, and save the private key in the ppk format (may as well store it in your .ssh directory). &lt;br /&gt;
* Open the app Pageant (that is also installed along with Putty). This runs in the background, so nothing will appear on the screen. Look in your system tray for a new icon. Click on the Pageant icon in the system tray, right-click on it, and click &amp;quot;Add key&amp;quot;. Select the ppk file you just produced.&lt;br /&gt;
* Close your terminal windows and open a new one. Try running the git pull command again.&lt;br /&gt;
&lt;br /&gt;
=Getting Around=&lt;br /&gt;
Whether you are using gitlab.com or git.indstate.edu, the functionality and &amp;quot;how to get around&amp;quot; is about the same.  You have two main methods for using either.&lt;br /&gt;
&lt;br /&gt;
==Web browser interface==&lt;br /&gt;
You can view projects within your web browser.  How to get around is fairly intuitive - as is the case with any web page, you look around and click around to see what different things do.  When you have something specific you want to do but don&#039;t see how to do, you ask the internet or ask your instructor (and we may update this wiki to give instructions on how to do it).&lt;br /&gt;
&lt;br /&gt;
==Terminal interface==&lt;br /&gt;
Git allows for downloading/uploading/etc. files in your projects from the terminal.  In order to do this, you need to (a) have a git client installed on your system, (b) understand the terminology that git uses for keeping track of files and the steps in using git to download/update/upload files, (c) make it so.&lt;br /&gt;
&lt;br /&gt;
Some reading material about using git - https://www.tutorialspoint.com/git/index.htm&lt;br /&gt;
&lt;br /&gt;
===Vocab / Cheat Sheet===&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
A common use case is that you will need to download someone else&#039;s (e.g., instructor&#039;s) gitlab project, create your own version of some part of the project, test/debug your version of the project, eventually put in a request to update the main project with your code.  The steps involved in that workflow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clone&#039;&#039;&#039; - To download the current version of the project you (a) browse in your terminal to the directory where you want to have the project code, (b) run &amp;lt;code&amp;gt;git clone url_to_project&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039; - If a branch has already been created for you, then you can set that as your active branch by running &amp;lt;code&amp;gt;git checkout branch_name&amp;lt;/code&amp;gt;.  If a branch has not yet been created for you, you run &amp;lt;code&amp;gt;git branch branch_name&amp;lt;/code&amp;gt; to create a new branch.  In either case, you have a branch of the project to work within.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do your work&#039;&#039;&#039; - You work on your files locally - test, debug, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage/Commit/Push&#039;&#039;&#039; - To save your work to the remote server, you need to stage, commit, and push.  You can stage/commit batches of changes, or do a stage/commit for each discreet task accomplished.  If you are working in some_file.txt, you would run the following sequence of commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add some_file.txt  # this &amp;quot;stages&amp;quot; the file to be part of the next commit&lt;br /&gt;
git commit -m &amp;quot;Some updates to the file&amp;quot; # This commits, will be a permanent record of this version of the file&lt;br /&gt;
git push               # sends all committed changes to the remote server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the push may ask for login information to the remote server.  If you have an ssh key configured for the project (see section above), then you won&#039;t be asked for login information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pull&#039;&#039;&#039; - To pull/download updates that have happened (by others), you use &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge&#039;&#039;&#039; - When you ready to have your changes merged in to the main branch of the project, ask the owner of the project to check your branch.  When the owner is ready for it, the owner can run the following commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git branch main        # owner is working in the main branch&lt;br /&gt;
git merge branch_name  # merge your branch into the main branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=919</id>
		<title>Gitlab - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=919"/>
		<updated>2026-08-30T17:12:49Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* SSH Keys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Git=&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a version control system that can be used to keep track of your files (programming code, but also other files as well).  &lt;br /&gt;
&lt;br /&gt;
Two of the most popular installations of git (as of 2020) are [https://github.com/ github] and [https://gitlab.com/ gitlab].  When Microsoft purchased github, it became fashionable to prefer gitlab.  Github allows for projects to be hosted on their servers.  Gitlab allows for hosting either on their servers or to run a local installation of gitlab on ones own servers.&lt;br /&gt;
&lt;br /&gt;
Of late, we have hosted projects using gitlab either on gitlab&#039;s servers or on ISU&#039;s local installation of gitlab.&lt;br /&gt;
&lt;br /&gt;
=Account Setup=&lt;br /&gt;
&#039;&#039;&#039;On gitlab.com&#039;&#039;&#039; - Account setup on [https://gitlab.com/ gitlab.com] is just like any other website.  You create a free account, choose your username/password, etc.  The account is yours and is not tied in any particular way to ISU.  You can give access to your projects in much the same way as you give access to files on google drive, onedrive, dropbox, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On git.indstate.edu&#039;&#039;&#039; - ISU&#039;s local installation of gitlab is at https://git.indstate.edu/.  For this system you use your ISU portal id and password.  You do not need to create an account.  The first time you login into the system, it initializes an account for you.  CS courses and ISU CS projects in general tend to use ISU&#039;s local installation because we can tie access based on course rosters, etc.&lt;br /&gt;
&lt;br /&gt;
=SSH Keys=&lt;br /&gt;
You will normally want to have SSH keys setup so that you can interact with the git server without having to enter a username and password. Instructions are here: https://docs.gitlab.com/user/ssh/&lt;br /&gt;
&lt;br /&gt;
You will need to edit your ssh configuration so that it knows which key to use when connecting to git.indstate.edu. On a Mac or Linux, edit the file &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; and put a section like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host git.indstate.edu&lt;br /&gt;
  PreferredAuthentications publickey&lt;br /&gt;
  IdentityFile ~/.ssh/git_indstate_id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should replace the name git_indstate_id with whatever filename you used for the private key. On Windows, the file should be in your home directory (normally C:\Users\YOUR_USERNAME) and then .ssh/config (so, similar to where it is for Mac and Linux).&lt;br /&gt;
&lt;br /&gt;
Note - for editing the config file, you should use a plain text editor (Notepad on Windows, TextEdit on Mac, or something nicer; not Word). &lt;br /&gt;
&lt;br /&gt;
Note - you will need to enable the ability to see &amp;quot;hidden&amp;quot; files. On Mac, you press cmd-shift-. to see hidden files in Finder. On Windows, in File Explorer you need to: click the triple dots near the top right, click Options, click View, select &amp;quot;Show files, folders, and drives&amp;quot;, and also unselect &amp;quot;Hide extensions for known file types&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can clone a repository from git.indstate.edu using a command like this: &amp;lt;code&amp;gt;git clone git+ssh://git@git.indstate.edu/ect-437-fall-2026/hello-class.git&amp;lt;/code&amp;gt;, but where you would replace the link with whatever repository you are cloning.&lt;br /&gt;
&lt;br /&gt;
==Windows - Using Putty==&lt;br /&gt;
If you are on Windows and are getting an access error when you tro to run the git clone command, it might work by changing the configuration for git to use a different program for ssh. You can try the following.&lt;br /&gt;
* Download and install Putty from: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&lt;br /&gt;
* Open your terminal (command prompt) and run the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;[Environment]::SetEnvironmentVariable(&amp;quot;GIT_SSH&amp;quot;, &amp;quot;plink.exe&amp;quot;, &amp;quot;User&amp;quot;)&lt;br /&gt;
git config --global core.sshCommand &amp;quot;plink.exe&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Open the app PuttyGen (that is installed along with Putty). Click &amp;quot;Load&amp;quot;, and load your private key file (id_ed25519 if you used default settings). Then click &amp;quot;Save private key&amp;quot;, and save the private key in the ppk format (may as well store it in your .ssh directory). &lt;br /&gt;
* Open the app Pageant (that is also installed along with Putty). This runs in the background, so nothing will appear on the screen. Look in your system tray for a new icon. Click on the Pageant icon in the system tray, right-click on it, and click &amp;quot;Add key&amp;quot;. Select the ppk file you just produced.&lt;br /&gt;
* Close your terminal windows and open a new one. Try running the git pull command again.&lt;br /&gt;
&lt;br /&gt;
=Getting Around=&lt;br /&gt;
Whether you are using gitlab.com or git.indstate.edu, the functionality and &amp;quot;how to get around&amp;quot; is about the same.  You have two main methods for using either.&lt;br /&gt;
&lt;br /&gt;
==Web browser interface==&lt;br /&gt;
You can view projects within your web browser.  How to get around is fairly intuitive - as is the case with any web page, you look around and click around to see what different things do.  When you have something specific you want to do but don&#039;t see how to do, you ask the internet or ask your instructor (and we may update this wiki to give instructions on how to do it).&lt;br /&gt;
&lt;br /&gt;
==Terminal interface==&lt;br /&gt;
Git allows for downloading/uploading/etc. files in your projects from the terminal.  In order to do this, you need to (a) have a git client installed on your system, (b) understand the terminology that git uses for keeping track of files and the steps in using git to download/update/upload files, (c) make it so.&lt;br /&gt;
&lt;br /&gt;
Some reading material about using git - https://www.tutorialspoint.com/git/index.htm&lt;br /&gt;
&lt;br /&gt;
===Vocab / Cheat Sheet===&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
A common use case is that you will need to download someone else&#039;s (e.g., instructor&#039;s) gitlab project, create your own version of some part of the project, test/debug your version of the project, eventually put in a request to update the main project with your code.  The steps involved in that workflow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clone&#039;&#039;&#039; - To download the current version of the project you (a) browse in your terminal to the directory where you want to have the project code, (b) run &amp;lt;code&amp;gt;git clone url_to_project&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039; - If a branch has already been created for you, then you can set that as your active branch by running &amp;lt;code&amp;gt;git checkout branch_name&amp;lt;/code&amp;gt;.  If a branch has not yet been created for you, you run &amp;lt;code&amp;gt;git branch branch_name&amp;lt;/code&amp;gt; to create a new branch.  In either case, you have a branch of the project to work within.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do your work&#039;&#039;&#039; - You work on your files locally - test, debug, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage/Commit/Push&#039;&#039;&#039; - To save your work to the remote server, you need to stage, commit, and push.  You can stage/commit batches of changes, or do a stage/commit for each discreet task accomplished.  If you are working in some_file.txt, you would run the following sequence of commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add some_file.txt  # this &amp;quot;stages&amp;quot; the file to be part of the next commit&lt;br /&gt;
git commit -m &amp;quot;Some updates to the file&amp;quot; # This commits, will be a permanent record of this version of the file&lt;br /&gt;
git push               # sends all committed changes to the remote server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the push may ask for login information to the remote server.  If you have an ssh key configured for the project (see section above), then you won&#039;t be asked for login information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pull&#039;&#039;&#039; - To pull/download updates that have happened (by others), you use &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge&#039;&#039;&#039; - When you ready to have your changes merged in to the main branch of the project, ask the owner of the project to check your branch.  When the owner is ready for it, the owner can run the following commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git branch main        # owner is working in the main branch&lt;br /&gt;
git merge branch_name  # merge your branch into the main branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Alumni&amp;diff=918</id>
		<title>Alumni</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Alumni&amp;diff=918"/>
		<updated>2026-08-28T16:26:15Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Corporate/Government */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Where ISU CS Alumni have ended up, in alphabetical order by location ...  If you are an ISU CS alumnus and don&#039;t see your current place of employment listed please get in touch with the a CS faculty member.&lt;br /&gt;
&lt;br /&gt;
=Corporate/Government=&lt;br /&gt;
&lt;br /&gt;
==Terre Haute area==&lt;br /&gt;
City Government of Terre Haute, Clabber Girl, Hopebridge, Indiana State University, Infraware Inc., North American Lighting, Police Technical LLC, Rose-Hulman Institute of Technology, TagLeaf Industries, Vigo County Public Library&lt;br /&gt;
&lt;br /&gt;
==Indianapolis Area== &lt;br /&gt;
Allegion, Anthem, Beckman Coulter Life Sciences, Clarian Health Partners, Community Health Network, Defense Finance and Accounting Service, Dow AgroSciences, Eli Lilly and Company, GyanSys, Ernst and Young, Exacq Technologies, Heritage Group, Indiana Health Information Exchange, Indiana State Government, Indianapolis Power &amp;amp; Light Company, Indianapolis Zoological Society, Infosys, Infrastructure and Energy Alternatives, Interactive Intelligence / Genesys, IU Health Riley&#039;s Childrens Hospital, Knowledge Services, Liberty Mutual, LifeOmic, MicroMetl Corporation, myCOI, PAR North America, Pondurance, Protective Insurance, ProTrans Development, Raytheon, Republic Airways, Rolls Royce, Ryan Consulting Group, Salesforce, T2 Systems, Van Ausdall &amp;amp; Farrar, Wishard Health Services&lt;br /&gt;
&lt;br /&gt;
==Indiana &amp;amp; Vicinity==&lt;br /&gt;
AIM Specialty Health, AllScripts, Aon, Aprimo, Ascension Technologies, Aunalytics, Bioanalytical Systems Inc., Cummins, Engineering Computer Network - Purdue University, FireEye, Five-Star Technology Solutions, Good Samaritan Hospital (Vincennes), Health Alliance, High Wire Networks, Hinge Health, iGenMedia, Keller Schroeder, Kimball International, Mead Johnson, Midrange Professionals Inc., NAP Gladu, Naval Surface Warfare Center - Crane Division, Northern Illinois University, Pringle Technologies Inc., Purdue University, Rally Health, Rediminds, RLI Corp, SCHOTT Gemtron, Sherwin Williams, State Farm Insurance, TrueScripts Management Services, Turnkey Computer Systems, University of Illinois Urbana-Champaign, USRRB, Vincennes University, Zirmed&lt;br /&gt;
&lt;br /&gt;
==US==&lt;br /&gt;
4C Insights, Accenture, Aeronautical Radio Incorporated (ARINC), AirWatch, Amazon, AMD, American Society of Composers and Publishers, Apple, Astra Inc., AU Optronics, Bank of America, Blackboard, Boston Scientific, Budweiser, CACI, Cap Gemini S.A., Caterpillar, CenturyLink, Cisco, Cogent Infotech, Columbia Sports, Dell, Department of Defense, DigitalOcean, Egiants Technologies, Epic Systems, Euclid Elementz, Foxconn, GalaxE Solutions, Geico, Georgia-Pacific LLC, GlobalFoundries, Gogo Business Aviation, Google, Halliburton, Hewlett-Packard, Internet Brands, Intuitive Machines, ITHAKA, JPMorgan Chase, Kovarus Professional Services, Lawrence Livermore National laboratory, Lockheed-Martin, Los Alamos National Labs, Maine Department of Education, MAQ Software, Miami University, Microsoft, National Security Agency, Northrop Grumman, Ohio Department of Commerce, Oracle, PepsiCo, Principal Financial Group, Proofpoint, Randolph Brooks Federal Credit Union, Sally Beauty Holdings, Red Hat Software, Sprint, Starbucks Corp, State of Alabama CARES, SWM International, Travelers Insurance, Sallie Mae, The George Washington University, Thomson Reuters, TracFone Wireless Inc., United Healthcare, United States Air Force, United States Army, University of Texas at Dallas, Veritas, Verizon, Veterans Health Administration, Visa, VRBO, Walmart eCommerce, Walt Disney, Wells Fargo&lt;br /&gt;
&lt;br /&gt;
==International==&lt;br /&gt;
Academia Sinica, Chinese Academy of Sciences, Dar Al-Hekma University, Majmaah University, Petronas ICT Sdn Bhd, Phonon Communications Pvt Ltd, Sadara Chemical Company, Saudi Aramco, Saudi Electricity, Savola Group, SFDA, Tata Consultancy Services, Universiti Sains Malaysia&lt;br /&gt;
&lt;br /&gt;
=PhD Programs=&lt;br /&gt;
Some of the universities where our graduates have had offers of assistantships for PhD programs -&lt;br /&gt;
University of Arizona, University of California-Merced, University of California-Riverside, Emory University, Georgia University, Indiana University Bloomington, University of Louisville, University of Massachusetts-Boston, University of Miami, University of Pittsburgh, Queen&#039;s University (Ontario), Simon Fraser University, University of Maine, Syracuse University, University of Texas-Dallas, University of Utah, Virginia Tech&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Alumni&amp;diff=917</id>
		<title>Alumni</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Alumni&amp;diff=917"/>
		<updated>2026-08-28T16:24:43Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* US */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Where ISU CS Alumni have ended up, in alphabetical order by location ...  If you are an ISU CS alumnus and don&#039;t see your current place of employment listed please get in touch with the a CS faculty member.&lt;br /&gt;
&lt;br /&gt;
=Corporate/Government=&lt;br /&gt;
&lt;br /&gt;
==Terre Haute area==&lt;br /&gt;
City Government of Terre Haute, Clabber Girl, Hopebridge, Indiana State University, Infraware Inc., North American Lighting, Police Technical LLC, Rose-Hulman Institute of Technology, Vigo County Public Library&lt;br /&gt;
&lt;br /&gt;
==Indianapolis Area== &lt;br /&gt;
Allegion, Anthem, Beckman Coulter Life Sciences, Clarian Health Partners, Community Health Network, Defense Finance and Accounting Service, Dow AgroSciences, Eli Lilly and Company, GyanSys, Ernst and Young, Exacq Technologies, Heritage Group, Indiana Health Information Exchange, Indiana State Government, Indianapolis Power &amp;amp; Light Company, Indianapolis Zoological Society, Infosys, Infrastructure and Energy Alternatives, Interactive Intelligence / Genesys, IU Health Riley&#039;s Childrens Hospital, Knowledge Services, Liberty Mutual, LifeOmic, MicroMetl Corporation, myCOI, PAR North America, Pondurance, Protective Insurance, ProTrans Development, Raytheon, Republic Airways, Rolls Royce, Ryan Consulting Group, Salesforce, T2 Systems, Van Ausdall &amp;amp; Farrar, Wishard Health Services&lt;br /&gt;
&lt;br /&gt;
==Indiana &amp;amp; Vicinity==&lt;br /&gt;
AIM Specialty Health, AllScripts, Aon, Aprimo, Ascension Technologies, Aunalytics, Bioanalytical Systems Inc., Cummins, Engineering Computer Network - Purdue University, FireEye, Five-Star Technology Solutions, Good Samaritan Hospital (Vincennes), Health Alliance, High Wire Networks, Hinge Health, iGenMedia, Keller Schroeder, Kimball International, Mead Johnson, Midrange Professionals Inc., NAP Gladu, Naval Surface Warfare Center - Crane Division, Northern Illinois University, Pringle Technologies Inc., Purdue University, Rally Health, Rediminds, RLI Corp, SCHOTT Gemtron, Sherwin Williams, State Farm Insurance, TrueScripts Management Services, Turnkey Computer Systems, University of Illinois Urbana-Champaign, USRRB, Vincennes University, Zirmed&lt;br /&gt;
&lt;br /&gt;
==US==&lt;br /&gt;
4C Insights, Accenture, Aeronautical Radio Incorporated (ARINC), AirWatch, Amazon, AMD, American Society of Composers and Publishers, Apple, Astra Inc., AU Optronics, Bank of America, Blackboard, Boston Scientific, Budweiser, CACI, Cap Gemini S.A., Caterpillar, CenturyLink, Cisco, Cogent Infotech, Columbia Sports, Dell, Department of Defense, DigitalOcean, Egiants Technologies, Epic Systems, Euclid Elementz, Foxconn, GalaxE Solutions, Geico, Georgia-Pacific LLC, GlobalFoundries, Gogo Business Aviation, Google, Halliburton, Hewlett-Packard, Internet Brands, Intuitive Machines, ITHAKA, JPMorgan Chase, Kovarus Professional Services, Lawrence Livermore National laboratory, Lockheed-Martin, Los Alamos National Labs, Maine Department of Education, MAQ Software, Miami University, Microsoft, National Security Agency, Northrop Grumman, Ohio Department of Commerce, Oracle, PepsiCo, Principal Financial Group, Proofpoint, Randolph Brooks Federal Credit Union, Sally Beauty Holdings, Red Hat Software, Sprint, Starbucks Corp, State of Alabama CARES, SWM International, Travelers Insurance, Sallie Mae, The George Washington University, Thomson Reuters, TracFone Wireless Inc., United Healthcare, United States Air Force, United States Army, University of Texas at Dallas, Veritas, Verizon, Veterans Health Administration, Visa, VRBO, Walmart eCommerce, Walt Disney, Wells Fargo&lt;br /&gt;
&lt;br /&gt;
==International==&lt;br /&gt;
Academia Sinica, Chinese Academy of Sciences, Dar Al-Hekma University, Majmaah University, Petronas ICT Sdn Bhd, Phonon Communications Pvt Ltd, Sadara Chemical Company, Saudi Aramco, Saudi Electricity, Savola Group, SFDA, Tata Consultancy Services, Universiti Sains Malaysia&lt;br /&gt;
&lt;br /&gt;
=PhD Programs=&lt;br /&gt;
Some of the universities where our graduates have had offers of assistantships for PhD programs -&lt;br /&gt;
University of Arizona, University of California-Merced, University of California-Riverside, Emory University, Georgia University, Indiana University Bloomington, University of Louisville, University of Massachusetts-Boston, University of Miami, University of Pittsburgh, Queen&#039;s University (Ontario), Simon Fraser University, University of Maine, Syracuse University, University of Texas-Dallas, University of Utah, Virginia Tech&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Programming_and_CS_-_Getting_Started&amp;diff=916</id>
		<title>Programming and CS - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Programming_and_CS_-_Getting_Started&amp;diff=916"/>
		<updated>2026-08-26T15:16:19Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Getting Started Pages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=Color Blindness=&lt;br /&gt;
Most programming text editors use syntax highlighting - keywords have a different color than variables, etc. If you are color blind then you should use a different highlighting theme so it works for you. You can ask a current AI how to use a theme for color blindness in whatever editor you are using. For Python IDLE, the following instructions work (as of 2026): https://share.google/aimode/Vk6xIrl6dRQ2frFWZ&lt;br /&gt;
&lt;br /&gt;
=Getting Started Pages=&lt;br /&gt;
* [[CS accounts]]&lt;br /&gt;
* [[Linux and CS Systems - Getting Started]]&lt;br /&gt;
* [[Python Programming - Getting Started]]&lt;br /&gt;
* [[C Programming - Getting Started]]&lt;br /&gt;
* [[R Programming - Getting Started]]&lt;br /&gt;
* [[Algorithms and Data Structures - Getting Started]]&lt;br /&gt;
* [[Gitlab - Getting Started]]&lt;br /&gt;
&lt;br /&gt;
=Practice Programming Contest Problems=&lt;br /&gt;
See [[Programming Practice]].&lt;br /&gt;
&lt;br /&gt;
= Source Control =&lt;br /&gt;
It is a good idea to use source control when developing software, and is necessary when you are developing in a group or professionally. When working on assignments or course projects it is the best practice to use a private repository so other students cannot copy your work. Git is the industry standard for source control. Here are some resources to use to learn Git.&lt;br /&gt;
&lt;br /&gt;
* https://try.github.io/&lt;br /&gt;
* https://learngitbranching.js.org/&lt;br /&gt;
* https://www.atlassian.com/git&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=ISU_CS_People&amp;diff=915</id>
		<title>ISU CS People</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=ISU_CS_People&amp;diff=915"/>
		<updated>2026-08-25T14:04:19Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* CS Departmental Undergraduate Assistants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See below for contact information for faculty and staff. The following are who you should contact, depending on what you need.&lt;br /&gt;
* Undergraduate advising, admissions, transfer credit - Jeff Kinne&lt;br /&gt;
* Graduate advising and admissions - R.B. Abhyankar or Arash Rafiey&lt;br /&gt;
* Graduate transfer credit - R.B. Abhyankar&lt;br /&gt;
* Course overrides - check with the instructor of the course and they should pass along the request to the chairperson and administrative assistant&lt;br /&gt;
* Server accounts/issues - CS system administrator&lt;br /&gt;
&lt;br /&gt;
Students - make sure to include your ISU id # when asking about courses and advising.&lt;br /&gt;
&lt;br /&gt;
== Administrative/Departmental Staff ==&lt;br /&gt;
&#039;&#039;&#039;Administrative Assistant&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Terri May&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Terri.May@indstate.edu Terri.May@indstate.edu], 812-237-3456&amp;lt;br/&amp;gt;&lt;br /&gt;
Myers Technology Center, &amp;lt;s&amp;gt;301&amp;lt;/s&amp;gt; 219A for spring/summer 2026&amp;lt;br/&amp;gt;&lt;br /&gt;
BS from St. Mary of the Woods&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Chairperson&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Alister McLeod - Professor&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Alister.McLeod@indstate.edu Alister.McLeod@indstate.edu], &lt;br /&gt;
812-237-3455&amp;lt;br&amp;gt;&lt;br /&gt;
Myers Technology Center, &amp;lt;s&amp;gt;301B&amp;lt;/s&amp;gt; 216A for spring/summer 2026&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CS System Administrator&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Jeff Kinne - Professor&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:jkinne@indstate.edu jkinne@indstate.edu],&lt;br /&gt;
812-237-3394,&lt;br /&gt;
Myers Technology Center, 301D&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Faculty == &lt;br /&gt;
=== Full Time ===&lt;br /&gt;
Arash Rafiey - Associate Professor&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Arash.Rafiey@indstate.edu Arash.Rafiey@indstate.edu],&lt;br /&gt;
812-237-5475&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;Myers Technology Center, 301&amp;lt;/s&amp;gt;&lt;br /&gt;
Root Hall, A-181 for spring/summer 2026&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from Royal Holloway, University of London, &lt;br /&gt;
[http://cs.indstate.edu/~arash/index.html website]&lt;br /&gt;
----&lt;br /&gt;
Jeff Kinne - Professor&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:jkinne@cs.indstate.edu jkinne@cs.indstate.edu],&lt;br /&gt;
812-237-3394&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;Myers Technology Center, 301D&amp;lt;/s&amp;gt;&lt;br /&gt;
Root Hall, A-165 for spring/summer 2026&amp;lt;br/&amp;gt;&lt;br /&gt;
Office hours: TBA&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from University of Wisconsin-Madison, &lt;br /&gt;
[http://www.kinnejeff.com website], &lt;br /&gt;
[https://cs.indstate.edu/jkinne-meeting Schedule meeting]&lt;br /&gt;
----&lt;br /&gt;
Majid Afshar - Assistant Professor&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;Myers Technology Center, 301E&amp;lt;/s&amp;gt;&lt;br /&gt;
Root Hall A-180 for spring/summer 2026&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from Memorial University&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://cs.indstate.edu/~majid/index.html website]&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Majid.AfsharNoghondari@indstate.edu Majid.AfsharNoghondari@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
R.B. Abhyankar - Associate Professor&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:R.B.Abhyankar@indstate.edu R.B.Abhyankar@indstate.edu],&lt;br /&gt;
812-237-5421&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;Myers Technology Center, 301&amp;lt;/s&amp;gt;Root Hall A-182 for spring/summer 2026&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from Purdue University&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Previous full time faculty&#039;&#039;&#039; - Luke May, Truong Son Hy, Laci Egri&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Part Time ===&lt;br /&gt;
Nathan Awuku Amoako - Lecturer&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Nathan.AwukuAmoako@indstate.edu Nathan.AwukuAmoako@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
MS from Indiana State University&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[https://indianastate.edu/profile/kyle-atterson Kyle Atterson] - Lecturer&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Kyle.Atterson@indstate.edu Kyle.Atterson@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
MS from Indiana State University&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[https://www.indstate.edu/faculty-staff/john-compton John Compton] - Lecturer&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:John.Compton@indstate.edu John.Compton@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
MS from Indiana State University&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Kevin Exoo - Lecturer&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Kevin.Exoo@indstate.edu Kevin.Exoo@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
MS from Indiana State University&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[https://www.indstate.edu/faculty-staff/matthew-matt-jenkins Matt Jenkins] - Lecturer&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Matt.Jenkins@indstate.edu Matt.Jenkins@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
MS from Indiana State University&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[https://indianastate.edu/profile/mohammad-noureddine Mohammad Noureddine] - Lecturer&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Mohammad.Noureddine@indstate.edu Mohammad.Noureddine@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from University of Illinois Urbana-Champaign&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[https://indianastate.edu/profile/hoda-rafieipour Hoda Rafieipour] - Lecturer&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Hoda.Rafieipour@indstate.edu Hoda.Rafieipour@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
MS from University of Newfoundland&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Previous Part Time&#039;&#039;&#039; - Kyle Atterson, Maira Javaid, Kamalamalini Nagasundaram, Xavier Saunders, Shahab Shamshirband, Kul Prasad Subedi, Devon Kinne, Chelsy Schnabel, Aaron Cox, Gage Golish, Tevis Boulware, Troy Schotter&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Emeritus ===&lt;br /&gt;
Steve Baker - Instructor and Lab/Server Coordinator&amp;lt;br/&amp;gt;&lt;br /&gt;
MS from Indiana State University&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://cs.indstate.edu/~sbaker/ cs website], [http://oldmanprogrammer.net/ oldmanprogrammer.net]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Geoff Exoo - Professor Emeritus&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from University of Michigan&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://ginger.indstate.edu/ge/ website]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Dave Hutchison - Associate Professor Emeritus&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from University of Kansas&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Rob Sternfeld - Associate Professor Emeritus&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from University of Wisconsin-Madison&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Students ==&lt;br /&gt;
=== CS Departmental Graduate Assistants ===&lt;br /&gt;
David Lakes - Graduate Assistant&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:dlakes1@sycamores.indstate.edu dlakes1@sycamores.indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Tristian Lynch - Graduate Assistant&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:tlynch7@sycamores.indstate.edu tlynch7@sycamores.indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Rohit Maharjan - Graduate Assistant&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:rmaharjan@sycamores.indstate.edu rmaharjan@sycamores.indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
James Roberts - Graduate Assistant&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:jroberts79@sycamores.indstate.edu jroberts79@sycamores.indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Past GAs&#039;&#039;&#039; - Isaiah Bartlett, Nathan Awuku Amoako, Anvesh  Khetavath, Ganesh Channamsetti, Ben Johnson, Mo Sorkhpar, Nirmal Babu, Nithin Gaddameedi, Dasarath Sridhar, Naga Tadiboina, Zach Noble, John Compton, Erin Tooley, Nutan Nara, Krupali Parmar, Akit Kumar, Kevin Exoo, Tyler Jenkins, Sana Ebrahimi, Ashwin Murali, Gage Golish, Adam Davenport, Xavier Saunders, Thiago Santos, Rahul Kumar, Dhananjaya Vasipalli, Deepti Vaidya, Anas Mansouri, Monika Ancha, Lavanya Maganti, Andy Carrillo, Aaron Cox, Fatemeh Hadinezhad, Sharath Raini, Ali Salman&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== CS Departmental Undergraduate Assistants ===&lt;br /&gt;
Haley Stewart - Supplemental Instructor for CS 151&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:hstewart10@sycamores.indstate.edu hstewart10@sycamores.indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Past undergraduate assistants&#039;&#039;&#039; - Dan Rady, Isaiah Bartlett, Tara Hoffman, Dawn (Erika) Youngdahl, Andrew Williamson, Calee Fulling, Gage Golish, Ali Salman&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== CS Graduate Assistants in Other Offices ===&lt;br /&gt;
Sai Mahitha Balijepalli - Graduate Assistant (Developmental Math)&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:sbalijepalli@sycamores.indstate.edu sbalijepalli@sycamores.indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Gopiram Gunturu - Graduate Assistant (ECET Department)&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:ggunturu@sycamores.indstate.edu ggunturu@sycamores.indstate.edu]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Past GAs&#039;&#039;&#039; - &lt;br /&gt;
Khan Maazin (Teaching and Learning, BCoE), Virali Munshi (Developmental Math), Sumit Singh (Office of the Registrar), Venkata Yasodhara Sai Samraj Sudanagunta (Office of Information Technology), Naga Tadiboina (Tech Management PhD Program, Bailey College of Engineering and Technology), Dwayne Tally (BD4ISU), Gaurang Pai Palondicar (Built Environment), Aman Anand (Developmental Math), Santhoshi Neeraja Poreddy, Meghna Reddy Billa, Nithin Gaddameedi, Gowthami Arekatla, Esdras Simervil, Shravani Bommisetty, Akit Kumar, Muhammad Hashmi, Kevin Exoo, Gaurav Kushwaha (Residential Life IT), Zheyun Feng (TCGA), Neha Swarup (TCGA), Aditi Kulkarni (CGE), Daniel Zakka, Kartheeka Pothumarthi, Ashwini Maregowd, Ravi Chandra Veeramachane, Chithkala Basavaraj (Communications and Marketing), Abhijit Chintagunta (TCGA), Rahul Kumar Dass (TCGA), Bhagyashri Dhome, Siva Dharman Naidu (Institutional Research), Rishav Raj, Abdul Parray, Yichuan Wang&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== CS Unix Lab Volunteers ===&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Past Lab Volunteers&#039;&#039;&#039; - Beixi Hao, Nathaniel Devine, Xinqing Dai, John Bontjes&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=ISU_CS_People&amp;diff=914</id>
		<title>ISU CS People</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=ISU_CS_People&amp;diff=914"/>
		<updated>2026-08-25T14:03:27Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* CS Departmental Undergraduate Assistants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See below for contact information for faculty and staff. The following are who you should contact, depending on what you need.&lt;br /&gt;
* Undergraduate advising, admissions, transfer credit - Jeff Kinne&lt;br /&gt;
* Graduate advising and admissions - R.B. Abhyankar or Arash Rafiey&lt;br /&gt;
* Graduate transfer credit - R.B. Abhyankar&lt;br /&gt;
* Course overrides - check with the instructor of the course and they should pass along the request to the chairperson and administrative assistant&lt;br /&gt;
* Server accounts/issues - CS system administrator&lt;br /&gt;
&lt;br /&gt;
Students - make sure to include your ISU id # when asking about courses and advising.&lt;br /&gt;
&lt;br /&gt;
== Administrative/Departmental Staff ==&lt;br /&gt;
&#039;&#039;&#039;Administrative Assistant&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Terri May&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Terri.May@indstate.edu Terri.May@indstate.edu], 812-237-3456&amp;lt;br/&amp;gt;&lt;br /&gt;
Myers Technology Center, &amp;lt;s&amp;gt;301&amp;lt;/s&amp;gt; 219A for spring/summer 2026&amp;lt;br/&amp;gt;&lt;br /&gt;
BS from St. Mary of the Woods&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Chairperson&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Alister McLeod - Professor&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Alister.McLeod@indstate.edu Alister.McLeod@indstate.edu], &lt;br /&gt;
812-237-3455&amp;lt;br&amp;gt;&lt;br /&gt;
Myers Technology Center, &amp;lt;s&amp;gt;301B&amp;lt;/s&amp;gt; 216A for spring/summer 2026&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CS System Administrator&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Jeff Kinne - Professor&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:jkinne@indstate.edu jkinne@indstate.edu],&lt;br /&gt;
812-237-3394,&lt;br /&gt;
Myers Technology Center, 301D&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Faculty == &lt;br /&gt;
=== Full Time ===&lt;br /&gt;
Arash Rafiey - Associate Professor&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Arash.Rafiey@indstate.edu Arash.Rafiey@indstate.edu],&lt;br /&gt;
812-237-5475&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;Myers Technology Center, 301&amp;lt;/s&amp;gt;&lt;br /&gt;
Root Hall, A-181 for spring/summer 2026&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from Royal Holloway, University of London, &lt;br /&gt;
[http://cs.indstate.edu/~arash/index.html website]&lt;br /&gt;
----&lt;br /&gt;
Jeff Kinne - Professor&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:jkinne@cs.indstate.edu jkinne@cs.indstate.edu],&lt;br /&gt;
812-237-3394&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;Myers Technology Center, 301D&amp;lt;/s&amp;gt;&lt;br /&gt;
Root Hall, A-165 for spring/summer 2026&amp;lt;br/&amp;gt;&lt;br /&gt;
Office hours: TBA&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from University of Wisconsin-Madison, &lt;br /&gt;
[http://www.kinnejeff.com website], &lt;br /&gt;
[https://cs.indstate.edu/jkinne-meeting Schedule meeting]&lt;br /&gt;
----&lt;br /&gt;
Majid Afshar - Assistant Professor&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;Myers Technology Center, 301E&amp;lt;/s&amp;gt;&lt;br /&gt;
Root Hall A-180 for spring/summer 2026&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from Memorial University&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://cs.indstate.edu/~majid/index.html website]&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Majid.AfsharNoghondari@indstate.edu Majid.AfsharNoghondari@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
R.B. Abhyankar - Associate Professor&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:R.B.Abhyankar@indstate.edu R.B.Abhyankar@indstate.edu],&lt;br /&gt;
812-237-5421&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;Myers Technology Center, 301&amp;lt;/s&amp;gt;Root Hall A-182 for spring/summer 2026&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from Purdue University&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Previous full time faculty&#039;&#039;&#039; - Luke May, Truong Son Hy, Laci Egri&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Part Time ===&lt;br /&gt;
Nathan Awuku Amoako - Lecturer&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Nathan.AwukuAmoako@indstate.edu Nathan.AwukuAmoako@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
MS from Indiana State University&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[https://indianastate.edu/profile/kyle-atterson Kyle Atterson] - Lecturer&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Kyle.Atterson@indstate.edu Kyle.Atterson@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
MS from Indiana State University&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[https://www.indstate.edu/faculty-staff/john-compton John Compton] - Lecturer&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:John.Compton@indstate.edu John.Compton@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
MS from Indiana State University&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Kevin Exoo - Lecturer&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Kevin.Exoo@indstate.edu Kevin.Exoo@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
MS from Indiana State University&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[https://www.indstate.edu/faculty-staff/matthew-matt-jenkins Matt Jenkins] - Lecturer&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Matt.Jenkins@indstate.edu Matt.Jenkins@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
MS from Indiana State University&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[https://indianastate.edu/profile/mohammad-noureddine Mohammad Noureddine] - Lecturer&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Mohammad.Noureddine@indstate.edu Mohammad.Noureddine@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from University of Illinois Urbana-Champaign&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[https://indianastate.edu/profile/hoda-rafieipour Hoda Rafieipour] - Lecturer&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:Hoda.Rafieipour@indstate.edu Hoda.Rafieipour@indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
MS from University of Newfoundland&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Previous Part Time&#039;&#039;&#039; - Kyle Atterson, Maira Javaid, Kamalamalini Nagasundaram, Xavier Saunders, Shahab Shamshirband, Kul Prasad Subedi, Devon Kinne, Chelsy Schnabel, Aaron Cox, Gage Golish, Tevis Boulware, Troy Schotter&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Emeritus ===&lt;br /&gt;
Steve Baker - Instructor and Lab/Server Coordinator&amp;lt;br/&amp;gt;&lt;br /&gt;
MS from Indiana State University&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://cs.indstate.edu/~sbaker/ cs website], [http://oldmanprogrammer.net/ oldmanprogrammer.net]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Geoff Exoo - Professor Emeritus&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from University of Michigan&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://ginger.indstate.edu/ge/ website]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Dave Hutchison - Associate Professor Emeritus&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from University of Kansas&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Rob Sternfeld - Associate Professor Emeritus&amp;lt;br/&amp;gt;&lt;br /&gt;
PhD from University of Wisconsin-Madison&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Students ==&lt;br /&gt;
=== CS Departmental Graduate Assistants ===&lt;br /&gt;
David Lakes - Graduate Assistant&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:dlakes1@sycamores.indstate.edu dlakes1@sycamores.indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Tristian Lynch - Graduate Assistant&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:tlynch7@sycamores.indstate.edu tlynch7@sycamores.indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Rohit Maharjan - Graduate Assistant&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:rmaharjan@sycamores.indstate.edu rmaharjan@sycamores.indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
James Roberts - Graduate Assistant&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:jroberts79@sycamores.indstate.edu jroberts79@sycamores.indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Past GAs&#039;&#039;&#039; - Isaiah Bartlett, Nathan Awuku Amoako, Anvesh  Khetavath, Ganesh Channamsetti, Ben Johnson, Mo Sorkhpar, Nirmal Babu, Nithin Gaddameedi, Dasarath Sridhar, Naga Tadiboina, Zach Noble, John Compton, Erin Tooley, Nutan Nara, Krupali Parmar, Akit Kumar, Kevin Exoo, Tyler Jenkins, Sana Ebrahimi, Ashwin Murali, Gage Golish, Adam Davenport, Xavier Saunders, Thiago Santos, Rahul Kumar, Dhananjaya Vasipalli, Deepti Vaidya, Anas Mansouri, Monika Ancha, Lavanya Maganti, Andy Carrillo, Aaron Cox, Fatemeh Hadinezhad, Sharath Raini, Ali Salman&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== CS Departmental Undergraduate Assistants ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Past undergraduate assistants&#039;&#039;&#039; - Dan Rady, Isaiah Bartlett, Tara Hoffman, Dawn (Erika) Youngdahl, Andrew Williamson, Calee Fulling, Gage Golish, Ali Salman&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== CS Graduate Assistants in Other Offices ===&lt;br /&gt;
Sai Mahitha Balijepalli - Graduate Assistant (Developmental Math)&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:sbalijepalli@sycamores.indstate.edu sbalijepalli@sycamores.indstate.edu]&amp;lt;br/&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
Gopiram Gunturu - Graduate Assistant (ECET Department)&amp;lt;br/&amp;gt;&lt;br /&gt;
[mailto:ggunturu@sycamores.indstate.edu ggunturu@sycamores.indstate.edu]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Past GAs&#039;&#039;&#039; - &lt;br /&gt;
Khan Maazin (Teaching and Learning, BCoE), Virali Munshi (Developmental Math), Sumit Singh (Office of the Registrar), Venkata Yasodhara Sai Samraj Sudanagunta (Office of Information Technology), Naga Tadiboina (Tech Management PhD Program, Bailey College of Engineering and Technology), Dwayne Tally (BD4ISU), Gaurang Pai Palondicar (Built Environment), Aman Anand (Developmental Math), Santhoshi Neeraja Poreddy, Meghna Reddy Billa, Nithin Gaddameedi, Gowthami Arekatla, Esdras Simervil, Shravani Bommisetty, Akit Kumar, Muhammad Hashmi, Kevin Exoo, Gaurav Kushwaha (Residential Life IT), Zheyun Feng (TCGA), Neha Swarup (TCGA), Aditi Kulkarni (CGE), Daniel Zakka, Kartheeka Pothumarthi, Ashwini Maregowd, Ravi Chandra Veeramachane, Chithkala Basavaraj (Communications and Marketing), Abhijit Chintagunta (TCGA), Rahul Kumar Dass (TCGA), Bhagyashri Dhome, Siva Dharman Naidu (Institutional Research), Rishav Raj, Abdul Parray, Yichuan Wang&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== CS Unix Lab Volunteers ===&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Past Lab Volunteers&#039;&#039;&#039; - Beixi Hao, Nathaniel Devine, Xinqing Dai, John Bontjes&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=913</id>
		<title>Gitlab - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=913"/>
		<updated>2026-08-23T20:15:46Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* SSH Keys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Git=&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a version control system that can be used to keep track of your files (programming code, but also other files as well).  &lt;br /&gt;
&lt;br /&gt;
Two of the most popular installations of git (as of 2020) are [https://github.com/ github] and [https://gitlab.com/ gitlab].  When Microsoft purchased github, it became fashionable to prefer gitlab.  Github allows for projects to be hosted on their servers.  Gitlab allows for hosting either on their servers or to run a local installation of gitlab on ones own servers.&lt;br /&gt;
&lt;br /&gt;
Of late, we have hosted projects using gitlab either on gitlab&#039;s servers or on ISU&#039;s local installation of gitlab.&lt;br /&gt;
&lt;br /&gt;
=Account Setup=&lt;br /&gt;
&#039;&#039;&#039;On gitlab.com&#039;&#039;&#039; - Account setup on [https://gitlab.com/ gitlab.com] is just like any other website.  You create a free account, choose your username/password, etc.  The account is yours and is not tied in any particular way to ISU.  You can give access to your projects in much the same way as you give access to files on google drive, onedrive, dropbox, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On git.indstate.edu&#039;&#039;&#039; - ISU&#039;s local installation of gitlab is at https://git.indstate.edu/.  For this system you use your ISU portal id and password.  You do not need to create an account.  The first time you login into the system, it initializes an account for you.  CS courses and ISU CS projects in general tend to use ISU&#039;s local installation because we can tie access based on course rosters, etc.&lt;br /&gt;
&lt;br /&gt;
=SSH Keys=&lt;br /&gt;
You will normally want to have SSH keys setup so that you can interact with the git server without having to enter a username and password. Instructions are here: https://docs.gitlab.com/user/ssh/&lt;br /&gt;
&lt;br /&gt;
You will need to edit your ssh configuration so that it knows which key to use when connecting to git.indstate.edu. On a Mac or Linux, edit the file &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; and put a section like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host git.indstate.edu&lt;br /&gt;
  PreferredAuthentications publickey&lt;br /&gt;
  IdentityFile ~/.ssh/git_indstate_id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should replace the name git_indstate_id with whatever filename you used for the private key. On Windows, the file should be in your home directory (normally C:\Users\YOUR_USERNAME) and then .ssh/config (so, similar to where it is for Mac and Linux).&lt;br /&gt;
&lt;br /&gt;
Note - for editing the config file, you should use a plain text editor (Notepad on Windows, TextEdit on Mac, or something nicer; not Word). &lt;br /&gt;
&lt;br /&gt;
Note - you will need to enable the ability to see &amp;quot;hidden&amp;quot; files. On Mac, you press cmd-shift-. to see hidden files in Finder. On Windows, in File Explorer you need to: click the triple dots near the top right, click Options, click View, select &amp;quot;Show files, folders, and drives&amp;quot;, and also unselect &amp;quot;Hide extensions for known file types&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can clone a repository from git.indstate.edu using a command like this: &amp;lt;code&amp;gt;git clone git+ssh://git@git.indstate.edu/ect-437-fall-2026/hello-class.git&amp;lt;/code&amp;gt;, but where you would replace the link with whatever repository you are cloning.&lt;br /&gt;
&lt;br /&gt;
=Getting Around=&lt;br /&gt;
Whether you are using gitlab.com or git.indstate.edu, the functionality and &amp;quot;how to get around&amp;quot; is about the same.  You have two main methods for using either.&lt;br /&gt;
&lt;br /&gt;
==Web browser interface==&lt;br /&gt;
You can view projects within your web browser.  How to get around is fairly intuitive - as is the case with any web page, you look around and click around to see what different things do.  When you have something specific you want to do but don&#039;t see how to do, you ask the internet or ask your instructor (and we may update this wiki to give instructions on how to do it).&lt;br /&gt;
&lt;br /&gt;
==Terminal interface==&lt;br /&gt;
Git allows for downloading/uploading/etc. files in your projects from the terminal.  In order to do this, you need to (a) have a git client installed on your system, (b) understand the terminology that git uses for keeping track of files and the steps in using git to download/update/upload files, (c) make it so.&lt;br /&gt;
&lt;br /&gt;
Some reading material about using git - https://www.tutorialspoint.com/git/index.htm&lt;br /&gt;
&lt;br /&gt;
===Vocab / Cheat Sheet===&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
A common use case is that you will need to download someone else&#039;s (e.g., instructor&#039;s) gitlab project, create your own version of some part of the project, test/debug your version of the project, eventually put in a request to update the main project with your code.  The steps involved in that workflow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clone&#039;&#039;&#039; - To download the current version of the project you (a) browse in your terminal to the directory where you want to have the project code, (b) run &amp;lt;code&amp;gt;git clone url_to_project&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039; - If a branch has already been created for you, then you can set that as your active branch by running &amp;lt;code&amp;gt;git checkout branch_name&amp;lt;/code&amp;gt;.  If a branch has not yet been created for you, you run &amp;lt;code&amp;gt;git branch branch_name&amp;lt;/code&amp;gt; to create a new branch.  In either case, you have a branch of the project to work within.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do your work&#039;&#039;&#039; - You work on your files locally - test, debug, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage/Commit/Push&#039;&#039;&#039; - To save your work to the remote server, you need to stage, commit, and push.  You can stage/commit batches of changes, or do a stage/commit for each discreet task accomplished.  If you are working in some_file.txt, you would run the following sequence of commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add some_file.txt  # this &amp;quot;stages&amp;quot; the file to be part of the next commit&lt;br /&gt;
git commit -m &amp;quot;Some updates to the file&amp;quot; # This commits, will be a permanent record of this version of the file&lt;br /&gt;
git push               # sends all committed changes to the remote server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the push may ask for login information to the remote server.  If you have an ssh key configured for the project (see section above), then you won&#039;t be asked for login information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pull&#039;&#039;&#039; - To pull/download updates that have happened (by others), you use &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge&#039;&#039;&#039; - When you ready to have your changes merged in to the main branch of the project, ask the owner of the project to check your branch.  When the owner is ready for it, the owner can run the following commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git branch main        # owner is working in the main branch&lt;br /&gt;
git merge branch_name  # merge your branch into the main branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Python_Programming_-_Getting_Started&amp;diff=912</id>
		<title>Python Programming - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Python_Programming_-_Getting_Started&amp;diff=912"/>
		<updated>2026-08-21T12:59:14Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Installing Python on Your Personal Computer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For a video explaining how to get started here, see https://www.youtube.com/watch?v=uLnhcCZS4-Y&amp;amp;t=424s&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
# &#039;&#039;&#039;Reading&#039;&#039;&#039; - start reading through at least one of the following before you start working on the programming problems.&lt;br /&gt;
## [https://www.w3schools.com/python/python_intro.asp w3schools Python] - interactive tutorial where you can try out code in the browser&lt;br /&gt;
## [https://www.learnpython.org/ Learn Python] - interactive tutorial where you can try out code in the browser&lt;br /&gt;
## [https://automatetheboringstuff.com/ Automate the Boring Stuff with Python] - suitable for people with very limited programming experience, this is the text that is being followed for our CS 151 course (as of 2019)&lt;br /&gt;
## [http://greenteapress.com/thinkpython2/html/index.html Think Python] - suitable for people with very limited programming experience, not very deep&lt;br /&gt;
## [https://learnxinyminutes.com/docs/python3/ LearnXinYminutes] - quick review once you are familiar with the basics&lt;br /&gt;
## [https://docs.python.org/3/tutorial/ Python.org tutorial] - good for those with programming experience already&lt;br /&gt;
# &#039;&#039;&#039;Get Python installed on your computer&#039;&#039;&#039; - download the latest Python3 version at https://www.python.org/downloads/.  Having python3 installed on your computer allows you to debug much quicker.&lt;br /&gt;
# &#039;&#039;&#039;Work on solving problems&#039;&#039;&#039; that are listed below.&lt;br /&gt;
# If you are a current or incoming ISU student, or an ISU alumni, get help on what you are working on using the online unix lab.  When asking about the hackerrank problems make sure to refer to them using the title hackerrank gives them, or give a link to the problem statement on hackerrank.&lt;br /&gt;
# &#039;&#039;&#039;Cheat sheets&#039;&#039;&#039; - keep a cheat sheet for yourself of python syntax, built-in functions, etc.  See below on this page for our model cheat sheets.&lt;br /&gt;
&lt;br /&gt;
==Running Python==&lt;br /&gt;
&#039;&#039;See [https://youtu.be/ABmQ2QyYCLg this video] for a video demo of getting started running Python on the CS server and in IDLE.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once you have a computer with Python installed you are ready to try it out!  You can use the CS systems (computers in our classrooms and labs, or connect to the CS server - see [[Linux - System Setup]]), or install Python on your personal computer.  &#039;&#039;We recommend doing both.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Run in the Terminal=== &lt;br /&gt;
On the CS server, other Linux systems, and macOS, you can run python using your terminal.  If you run the command &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; then you will see the python console.  Here you can type one python line at a time to run, and the results are displayed.  You can try these - &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2 + 3&lt;br /&gt;
3 * 4&lt;br /&gt;
10 ** 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We normally store our python code in text files and want to run the entire file.  If you have a file with python code (let&#039;s say it is named myProgram.py) then you change directories to the directory that has your file, and then type &amp;lt;code&amp;gt;python3 myProgram.py&amp;lt;/code&amp;gt;.  You can have one terminal open where you are running your program with this command, and you can have another terminal open to edit the file (or use some other text editor).&lt;br /&gt;
&lt;br /&gt;
===Run in IDLE=== &lt;br /&gt;
Python comes with a graphical front-end called IDLE.  You can run this program if you are in the CS labs by opening your terminal and then typing &amp;lt;code&amp;gt;idle3&amp;lt;/code&amp;gt;.  If you have python installed on your personal computer, then you can find IDLE in your list of programs (Start button on Windows, Finder then click Applications on macOS) or run idle3 from the terminal (if you are using Linux).  If you are connecting to the CS server with a terminal program from home, you cannot run idle3 in the terminal because it is a graphical program - you will need to install it on your home computer to use it from home.  &lt;br /&gt;
&lt;br /&gt;
When you start IDLE, it shows you the Python3 console, where you can type your Python3 commands.  Try typing in arithmetic expressions to make sure it is working.  For example - &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2 + 3&lt;br /&gt;
3 * 4&lt;br /&gt;
10 ** 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===First Python Program===&lt;br /&gt;
We store python programs in text files.  You can use the following as your first python program.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
print(&#039;Hello world.&#039;)&lt;br /&gt;
print(&#039;Hello again.&#039;)&lt;br /&gt;
print(&#039;Goodbye now.&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are using IDLE you create and run a file by -&lt;br /&gt;
# Click on File and then New File.  &lt;br /&gt;
# Copy/paste or type your code in the file window that comes up.&lt;br /&gt;
# Click File and Save As.  Name the file myProgram.py and save it in whichever directory you want to keep your python programs.  &lt;br /&gt;
# Click Run and then Run Module.  In the python console window you should see that your program ran.&lt;br /&gt;
If you are connecting to the CS server with your terminal from your home computer, you can choose one of the following options.&lt;br /&gt;
* Create and edit the myProgram.py file with a text editor that works in the terminal - see [[Linux Terminal - Text Editors]].  Save the program and run the program with &amp;lt;code&amp;gt;python3 myProgram.py&amp;lt;/code&amp;gt;.  If you make changes, edit the program, and then run it again.&lt;br /&gt;
* Edit the program using a text editor on your home computer (for example, Kate or Atom, see [[Linux Terminal - Text Editors]]), transfer to the CS server using a file transfer program (see [[Linux - System Setup]]), change directories in your terminal to the directory that has the program, and then run the program in the terminal with &amp;lt;code&amp;gt;python3 myProgram.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Python2 versus Python3=== &lt;br /&gt;
If you want to use Python version 2 instead, you would use commands &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;idle&amp;lt;/code&amp;gt; rather than &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;idle3&amp;lt;/code&amp;gt;.  You should normally use Python3; the only reason to use Python2 is if you are using a package that is only available on Python2 (Python2 is not officially supported anymore, so this should be fairly rare).&lt;br /&gt;
&lt;br /&gt;
==Installing Python on Your Personal Computer==&lt;br /&gt;
&#039;&#039;&#039;Windows and macOS&#039;&#039;&#039; Download and install from https://www.python.org/downloads/.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux&#039;&#039;&#039; On Linux python is probably already installed. If not do an internet search for your Linux distribution and &amp;quot;install python3&amp;quot; (i.e., search for - ubuntu install python).  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chromebook&#039;&#039;&#039; You should first get the Linux development environment enabled (do an internet search for directions) and then you can follow instructions for installing python3 for ubuntu.  You will need to enter commands into the Terminal application. You open the Terminal application and then click on the link under &amp;quot;Linux&amp;quot; in the application (for me it says penguin, but may say something different for you). If python3 is not already installed, then running the following should do install it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install python3&lt;br /&gt;
sudo apt-get install idle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once those finish, you start idle by opening the terminal and then typing the idle command. Note that if you download any files with your browser, in order to use them in IDLE (or other programs that you run from the terminal) you need to copy them to the Linux files folder.&lt;br /&gt;
&lt;br /&gt;
==Lists of Problems==&lt;br /&gt;
===Programming Assignments 1===&lt;br /&gt;
[[Programming Assignments - Beginning 1]] - start with trying to solve these problems.  Each requires a different feature of the Python programming language, so solve these problems as you read through one of the tutorials or links above. Note that the page includes a link to repl.it that contains solutions to most of the problems.  If you do not have Python installed on your computer, you can try it out at [https://repl.it/ repl.it] - click the logo at the top, then click &amp;quot;+ new repl&amp;quot;, select Python and Create Repl.&lt;br /&gt;
&lt;br /&gt;
[[Programming Assignments - Beginning 2]] - another set of classic beginning programming exercises.  Some of these will be more involved.&lt;br /&gt;
&lt;br /&gt;
===HackerRank Problems===&lt;br /&gt;
Once you can do some basic Python programming it is time to have some of your work checked.  Hackerrank is a site where you can create an account and work on problems that will be checked if they are correct. Note that hackerrank has very strict rules for accepting correct solutions.  Start with the basic problems to get a feel for what hackerrank expects.&lt;br /&gt;
&lt;br /&gt;
[[Python programming - hackerrank problems]]&lt;br /&gt;
&lt;br /&gt;
===More Practice===&lt;br /&gt;
If you are able to do most of the problems on the pages linked above, then you don&#039;t need us to give you lists of problems any more.  You can pick problems to work through on your own.  Some suggested places with problems are as follows.&lt;br /&gt;
* [https://www.hackerrank.com/domains/algorithms Hackerrank - algorithms]&lt;br /&gt;
* [https://www.hackerrank.com/domains/data-structures Hackerrank - data structures]&lt;br /&gt;
* [http://cs.indstate.edu/acm/contests.html ACM Contest Problems]&lt;br /&gt;
&lt;br /&gt;
==Cheat Sheets and Quizzes==&lt;br /&gt;
These cheat sheets have the highlights of some of the basic information to memorize when you are in your first year of Python programming.  Note - each cheat sheet contains a sample quiz that might be used by your instructor.&lt;br /&gt;
* [[Cheat sheet - Python Operators, Expressions]]&lt;br /&gt;
* [[Cheat sheet - Python Keywords, Concepts, Functions]]&lt;br /&gt;
&lt;br /&gt;
==Programming Errors and How to Fix Them==&lt;br /&gt;
* &#039;&#039;&#039;Syntax error&#039;&#039;&#039; - program is not a valid program, and normally python gives you an error message giving some indication of what the problem was.  &lt;br /&gt;
** &#039;&#039;Debugging&#039;&#039; - read the error message!  Normally you are given a line number where python got &amp;quot;confused&amp;quot; - sometimes that is where the problem is, but you may need to look just before that line (or just after).  Common syntax errors in python...&lt;br /&gt;
** &#039;&#039;Mismatched&#039;&#039; () or [] or &amp;quot;&amp;quot; or &#039;&#039;, for example &amp;lt;code&amp;gt;x = 2 * (3 + 4&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;Mis-capitalization or mis-spelling&#039;&#039;, for example &amp;lt;code&amp;gt;Print(&#039;hello&#039;)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;Improper indenting&#039;&#039;, for example&lt;br /&gt;
** &#039;&#039;Data type&#039;&#039; problems - mixing up strings and numbers, for example &amp;lt;code&amp;gt;x = &#039;3&#039; + 4&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for i in range(0, 10):&lt;br /&gt;
print(i)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Runtime error&#039;&#039;&#039; - program is a valid program but when you run it something goes wrong.  Debugging is similar as for syntax errors and logical errors.  For example...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
x = 1&lt;br /&gt;
print(x)&lt;br /&gt;
x = y + z&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Logical error&#039;&#039;&#039; - program runs but does not do the right thing. &lt;br /&gt;
** &#039;&#039;Print debugging&#039;&#039; - One debugging method is to start printing things (values of variables) in your program starting at the beginning, run the program, make sure it is printing the values you expect, at some point you see a value you don&#039;t expect, and that tells you where to look in your code.  You often are 100% sure what you have is right, but in the end there is some problem.  So you have to &#039;&#039;check everything&#039;&#039;, start at the very beginning of the program.  &lt;br /&gt;
** &#039;&#039;Disable all&#039;&#039; - Another strategy is to disable almost all parts of your program (e.g., put it all in comments) until you get behavior that makes sense, and then start adding things back in (uncommenting), and eventually you&#039;ll add something in that doesn&#039;t behave the way you thought, and now you know where the problem is.  Examples...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
x = 1&lt;br /&gt;
y = 2&lt;br /&gt;
z = 3&lt;br /&gt;
avg = x + y + z / 3&lt;br /&gt;
print(avg)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Python_Programming_-_Getting_Started&amp;diff=911</id>
		<title>Python Programming - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Python_Programming_-_Getting_Started&amp;diff=911"/>
		<updated>2026-08-21T12:52:45Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Installing Python on Your Personal Computer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For a video explaining how to get started here, see https://www.youtube.com/watch?v=uLnhcCZS4-Y&amp;amp;t=424s&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
# &#039;&#039;&#039;Reading&#039;&#039;&#039; - start reading through at least one of the following before you start working on the programming problems.&lt;br /&gt;
## [https://www.w3schools.com/python/python_intro.asp w3schools Python] - interactive tutorial where you can try out code in the browser&lt;br /&gt;
## [https://www.learnpython.org/ Learn Python] - interactive tutorial where you can try out code in the browser&lt;br /&gt;
## [https://automatetheboringstuff.com/ Automate the Boring Stuff with Python] - suitable for people with very limited programming experience, this is the text that is being followed for our CS 151 course (as of 2019)&lt;br /&gt;
## [http://greenteapress.com/thinkpython2/html/index.html Think Python] - suitable for people with very limited programming experience, not very deep&lt;br /&gt;
## [https://learnxinyminutes.com/docs/python3/ LearnXinYminutes] - quick review once you are familiar with the basics&lt;br /&gt;
## [https://docs.python.org/3/tutorial/ Python.org tutorial] - good for those with programming experience already&lt;br /&gt;
# &#039;&#039;&#039;Get Python installed on your computer&#039;&#039;&#039; - download the latest Python3 version at https://www.python.org/downloads/.  Having python3 installed on your computer allows you to debug much quicker.&lt;br /&gt;
# &#039;&#039;&#039;Work on solving problems&#039;&#039;&#039; that are listed below.&lt;br /&gt;
# If you are a current or incoming ISU student, or an ISU alumni, get help on what you are working on using the online unix lab.  When asking about the hackerrank problems make sure to refer to them using the title hackerrank gives them, or give a link to the problem statement on hackerrank.&lt;br /&gt;
# &#039;&#039;&#039;Cheat sheets&#039;&#039;&#039; - keep a cheat sheet for yourself of python syntax, built-in functions, etc.  See below on this page for our model cheat sheets.&lt;br /&gt;
&lt;br /&gt;
==Running Python==&lt;br /&gt;
&#039;&#039;See [https://youtu.be/ABmQ2QyYCLg this video] for a video demo of getting started running Python on the CS server and in IDLE.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once you have a computer with Python installed you are ready to try it out!  You can use the CS systems (computers in our classrooms and labs, or connect to the CS server - see [[Linux - System Setup]]), or install Python on your personal computer.  &#039;&#039;We recommend doing both.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Run in the Terminal=== &lt;br /&gt;
On the CS server, other Linux systems, and macOS, you can run python using your terminal.  If you run the command &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; then you will see the python console.  Here you can type one python line at a time to run, and the results are displayed.  You can try these - &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2 + 3&lt;br /&gt;
3 * 4&lt;br /&gt;
10 ** 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We normally store our python code in text files and want to run the entire file.  If you have a file with python code (let&#039;s say it is named myProgram.py) then you change directories to the directory that has your file, and then type &amp;lt;code&amp;gt;python3 myProgram.py&amp;lt;/code&amp;gt;.  You can have one terminal open where you are running your program with this command, and you can have another terminal open to edit the file (or use some other text editor).&lt;br /&gt;
&lt;br /&gt;
===Run in IDLE=== &lt;br /&gt;
Python comes with a graphical front-end called IDLE.  You can run this program if you are in the CS labs by opening your terminal and then typing &amp;lt;code&amp;gt;idle3&amp;lt;/code&amp;gt;.  If you have python installed on your personal computer, then you can find IDLE in your list of programs (Start button on Windows, Finder then click Applications on macOS) or run idle3 from the terminal (if you are using Linux).  If you are connecting to the CS server with a terminal program from home, you cannot run idle3 in the terminal because it is a graphical program - you will need to install it on your home computer to use it from home.  &lt;br /&gt;
&lt;br /&gt;
When you start IDLE, it shows you the Python3 console, where you can type your Python3 commands.  Try typing in arithmetic expressions to make sure it is working.  For example - &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2 + 3&lt;br /&gt;
3 * 4&lt;br /&gt;
10 ** 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===First Python Program===&lt;br /&gt;
We store python programs in text files.  You can use the following as your first python program.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
print(&#039;Hello world.&#039;)&lt;br /&gt;
print(&#039;Hello again.&#039;)&lt;br /&gt;
print(&#039;Goodbye now.&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are using IDLE you create and run a file by -&lt;br /&gt;
# Click on File and then New File.  &lt;br /&gt;
# Copy/paste or type your code in the file window that comes up.&lt;br /&gt;
# Click File and Save As.  Name the file myProgram.py and save it in whichever directory you want to keep your python programs.  &lt;br /&gt;
# Click Run and then Run Module.  In the python console window you should see that your program ran.&lt;br /&gt;
If you are connecting to the CS server with your terminal from your home computer, you can choose one of the following options.&lt;br /&gt;
* Create and edit the myProgram.py file with a text editor that works in the terminal - see [[Linux Terminal - Text Editors]].  Save the program and run the program with &amp;lt;code&amp;gt;python3 myProgram.py&amp;lt;/code&amp;gt;.  If you make changes, edit the program, and then run it again.&lt;br /&gt;
* Edit the program using a text editor on your home computer (for example, Kate or Atom, see [[Linux Terminal - Text Editors]]), transfer to the CS server using a file transfer program (see [[Linux - System Setup]]), change directories in your terminal to the directory that has the program, and then run the program in the terminal with &amp;lt;code&amp;gt;python3 myProgram.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Python2 versus Python3=== &lt;br /&gt;
If you want to use Python version 2 instead, you would use commands &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;idle&amp;lt;/code&amp;gt; rather than &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;idle3&amp;lt;/code&amp;gt;.  You should normally use Python3; the only reason to use Python2 is if you are using a package that is only available on Python2 (Python2 is not officially supported anymore, so this should be fairly rare).&lt;br /&gt;
&lt;br /&gt;
==Installing Python on Your Personal Computer==&lt;br /&gt;
&#039;&#039;&#039;Windows and macOS&#039;&#039;&#039; Download and install from https://www.python.org/downloads/.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux&#039;&#039;&#039; On Linux python is probably already installed. If not do an internet search for your Linux distribution and &amp;quot;install python3&amp;quot; (i.e., search for - ubuntu install python).  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chromebook&#039;&#039;&#039; You should first get the Linux development environment enabled and then you can follow instructions for installing python3 for ubuntu.  If python3 is not already installed, then running the following should do install it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install python3&lt;br /&gt;
sudo apt-get install idle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once those finish, you start idle by opening the terminal and then typing the idle command. Note that if you download any files with your browser, in order to use them in IDLE (or other programs that you run from the terminal) you need to copy them to the Linux files folder.&lt;br /&gt;
&lt;br /&gt;
==Lists of Problems==&lt;br /&gt;
===Programming Assignments 1===&lt;br /&gt;
[[Programming Assignments - Beginning 1]] - start with trying to solve these problems.  Each requires a different feature of the Python programming language, so solve these problems as you read through one of the tutorials or links above. Note that the page includes a link to repl.it that contains solutions to most of the problems.  If you do not have Python installed on your computer, you can try it out at [https://repl.it/ repl.it] - click the logo at the top, then click &amp;quot;+ new repl&amp;quot;, select Python and Create Repl.&lt;br /&gt;
&lt;br /&gt;
[[Programming Assignments - Beginning 2]] - another set of classic beginning programming exercises.  Some of these will be more involved.&lt;br /&gt;
&lt;br /&gt;
===HackerRank Problems===&lt;br /&gt;
Once you can do some basic Python programming it is time to have some of your work checked.  Hackerrank is a site where you can create an account and work on problems that will be checked if they are correct. Note that hackerrank has very strict rules for accepting correct solutions.  Start with the basic problems to get a feel for what hackerrank expects.&lt;br /&gt;
&lt;br /&gt;
[[Python programming - hackerrank problems]]&lt;br /&gt;
&lt;br /&gt;
===More Practice===&lt;br /&gt;
If you are able to do most of the problems on the pages linked above, then you don&#039;t need us to give you lists of problems any more.  You can pick problems to work through on your own.  Some suggested places with problems are as follows.&lt;br /&gt;
* [https://www.hackerrank.com/domains/algorithms Hackerrank - algorithms]&lt;br /&gt;
* [https://www.hackerrank.com/domains/data-structures Hackerrank - data structures]&lt;br /&gt;
* [http://cs.indstate.edu/acm/contests.html ACM Contest Problems]&lt;br /&gt;
&lt;br /&gt;
==Cheat Sheets and Quizzes==&lt;br /&gt;
These cheat sheets have the highlights of some of the basic information to memorize when you are in your first year of Python programming.  Note - each cheat sheet contains a sample quiz that might be used by your instructor.&lt;br /&gt;
* [[Cheat sheet - Python Operators, Expressions]]&lt;br /&gt;
* [[Cheat sheet - Python Keywords, Concepts, Functions]]&lt;br /&gt;
&lt;br /&gt;
==Programming Errors and How to Fix Them==&lt;br /&gt;
* &#039;&#039;&#039;Syntax error&#039;&#039;&#039; - program is not a valid program, and normally python gives you an error message giving some indication of what the problem was.  &lt;br /&gt;
** &#039;&#039;Debugging&#039;&#039; - read the error message!  Normally you are given a line number where python got &amp;quot;confused&amp;quot; - sometimes that is where the problem is, but you may need to look just before that line (or just after).  Common syntax errors in python...&lt;br /&gt;
** &#039;&#039;Mismatched&#039;&#039; () or [] or &amp;quot;&amp;quot; or &#039;&#039;, for example &amp;lt;code&amp;gt;x = 2 * (3 + 4&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;Mis-capitalization or mis-spelling&#039;&#039;, for example &amp;lt;code&amp;gt;Print(&#039;hello&#039;)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;Improper indenting&#039;&#039;, for example&lt;br /&gt;
** &#039;&#039;Data type&#039;&#039; problems - mixing up strings and numbers, for example &amp;lt;code&amp;gt;x = &#039;3&#039; + 4&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for i in range(0, 10):&lt;br /&gt;
print(i)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Runtime error&#039;&#039;&#039; - program is a valid program but when you run it something goes wrong.  Debugging is similar as for syntax errors and logical errors.  For example...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
x = 1&lt;br /&gt;
print(x)&lt;br /&gt;
x = y + z&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Logical error&#039;&#039;&#039; - program runs but does not do the right thing. &lt;br /&gt;
** &#039;&#039;Print debugging&#039;&#039; - One debugging method is to start printing things (values of variables) in your program starting at the beginning, run the program, make sure it is printing the values you expect, at some point you see a value you don&#039;t expect, and that tells you where to look in your code.  You often are 100% sure what you have is right, but in the end there is some problem.  So you have to &#039;&#039;check everything&#039;&#039;, start at the very beginning of the program.  &lt;br /&gt;
** &#039;&#039;Disable all&#039;&#039; - Another strategy is to disable almost all parts of your program (e.g., put it all in comments) until you get behavior that makes sense, and then start adding things back in (uncommenting), and eventually you&#039;ll add something in that doesn&#039;t behave the way you thought, and now you know where the problem is.  Examples...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
x = 1&lt;br /&gt;
y = 2&lt;br /&gt;
z = 3&lt;br /&gt;
avg = x + y + z / 3&lt;br /&gt;
print(avg)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Python_Programming_-_Getting_Started&amp;diff=910</id>
		<title>Python Programming - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Python_Programming_-_Getting_Started&amp;diff=910"/>
		<updated>2026-08-21T12:50:29Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Installing Python on Your Personal Computer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For a video explaining how to get started here, see https://www.youtube.com/watch?v=uLnhcCZS4-Y&amp;amp;t=424s&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
# &#039;&#039;&#039;Reading&#039;&#039;&#039; - start reading through at least one of the following before you start working on the programming problems.&lt;br /&gt;
## [https://www.w3schools.com/python/python_intro.asp w3schools Python] - interactive tutorial where you can try out code in the browser&lt;br /&gt;
## [https://www.learnpython.org/ Learn Python] - interactive tutorial where you can try out code in the browser&lt;br /&gt;
## [https://automatetheboringstuff.com/ Automate the Boring Stuff with Python] - suitable for people with very limited programming experience, this is the text that is being followed for our CS 151 course (as of 2019)&lt;br /&gt;
## [http://greenteapress.com/thinkpython2/html/index.html Think Python] - suitable for people with very limited programming experience, not very deep&lt;br /&gt;
## [https://learnxinyminutes.com/docs/python3/ LearnXinYminutes] - quick review once you are familiar with the basics&lt;br /&gt;
## [https://docs.python.org/3/tutorial/ Python.org tutorial] - good for those with programming experience already&lt;br /&gt;
# &#039;&#039;&#039;Get Python installed on your computer&#039;&#039;&#039; - download the latest Python3 version at https://www.python.org/downloads/.  Having python3 installed on your computer allows you to debug much quicker.&lt;br /&gt;
# &#039;&#039;&#039;Work on solving problems&#039;&#039;&#039; that are listed below.&lt;br /&gt;
# If you are a current or incoming ISU student, or an ISU alumni, get help on what you are working on using the online unix lab.  When asking about the hackerrank problems make sure to refer to them using the title hackerrank gives them, or give a link to the problem statement on hackerrank.&lt;br /&gt;
# &#039;&#039;&#039;Cheat sheets&#039;&#039;&#039; - keep a cheat sheet for yourself of python syntax, built-in functions, etc.  See below on this page for our model cheat sheets.&lt;br /&gt;
&lt;br /&gt;
==Running Python==&lt;br /&gt;
&#039;&#039;See [https://youtu.be/ABmQ2QyYCLg this video] for a video demo of getting started running Python on the CS server and in IDLE.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once you have a computer with Python installed you are ready to try it out!  You can use the CS systems (computers in our classrooms and labs, or connect to the CS server - see [[Linux - System Setup]]), or install Python on your personal computer.  &#039;&#039;We recommend doing both.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Run in the Terminal=== &lt;br /&gt;
On the CS server, other Linux systems, and macOS, you can run python using your terminal.  If you run the command &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; then you will see the python console.  Here you can type one python line at a time to run, and the results are displayed.  You can try these - &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2 + 3&lt;br /&gt;
3 * 4&lt;br /&gt;
10 ** 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We normally store our python code in text files and want to run the entire file.  If you have a file with python code (let&#039;s say it is named myProgram.py) then you change directories to the directory that has your file, and then type &amp;lt;code&amp;gt;python3 myProgram.py&amp;lt;/code&amp;gt;.  You can have one terminal open where you are running your program with this command, and you can have another terminal open to edit the file (or use some other text editor).&lt;br /&gt;
&lt;br /&gt;
===Run in IDLE=== &lt;br /&gt;
Python comes with a graphical front-end called IDLE.  You can run this program if you are in the CS labs by opening your terminal and then typing &amp;lt;code&amp;gt;idle3&amp;lt;/code&amp;gt;.  If you have python installed on your personal computer, then you can find IDLE in your list of programs (Start button on Windows, Finder then click Applications on macOS) or run idle3 from the terminal (if you are using Linux).  If you are connecting to the CS server with a terminal program from home, you cannot run idle3 in the terminal because it is a graphical program - you will need to install it on your home computer to use it from home.  &lt;br /&gt;
&lt;br /&gt;
When you start IDLE, it shows you the Python3 console, where you can type your Python3 commands.  Try typing in arithmetic expressions to make sure it is working.  For example - &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2 + 3&lt;br /&gt;
3 * 4&lt;br /&gt;
10 ** 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===First Python Program===&lt;br /&gt;
We store python programs in text files.  You can use the following as your first python program.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
print(&#039;Hello world.&#039;)&lt;br /&gt;
print(&#039;Hello again.&#039;)&lt;br /&gt;
print(&#039;Goodbye now.&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are using IDLE you create and run a file by -&lt;br /&gt;
# Click on File and then New File.  &lt;br /&gt;
# Copy/paste or type your code in the file window that comes up.&lt;br /&gt;
# Click File and Save As.  Name the file myProgram.py and save it in whichever directory you want to keep your python programs.  &lt;br /&gt;
# Click Run and then Run Module.  In the python console window you should see that your program ran.&lt;br /&gt;
If you are connecting to the CS server with your terminal from your home computer, you can choose one of the following options.&lt;br /&gt;
* Create and edit the myProgram.py file with a text editor that works in the terminal - see [[Linux Terminal - Text Editors]].  Save the program and run the program with &amp;lt;code&amp;gt;python3 myProgram.py&amp;lt;/code&amp;gt;.  If you make changes, edit the program, and then run it again.&lt;br /&gt;
* Edit the program using a text editor on your home computer (for example, Kate or Atom, see [[Linux Terminal - Text Editors]]), transfer to the CS server using a file transfer program (see [[Linux - System Setup]]), change directories in your terminal to the directory that has the program, and then run the program in the terminal with &amp;lt;code&amp;gt;python3 myProgram.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Python2 versus Python3=== &lt;br /&gt;
If you want to use Python version 2 instead, you would use commands &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;idle&amp;lt;/code&amp;gt; rather than &amp;lt;code&amp;gt;python3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;idle3&amp;lt;/code&amp;gt;.  You should normally use Python3; the only reason to use Python2 is if you are using a package that is only available on Python2 (Python2 is not officially supported anymore, so this should be fairly rare).&lt;br /&gt;
&lt;br /&gt;
==Installing Python on Your Personal Computer==&lt;br /&gt;
&#039;&#039;&#039;Windows and macOS&#039;&#039;&#039; Download and install from https://www.python.org/downloads/.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux&#039;&#039;&#039; On Linux python is probably already installed. If not do an internet search for your Linux distribution and &amp;quot;install python3&amp;quot; (i.e., search for - ubuntu install python).  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chromebook&#039;&#039;&#039; You should first get the Linux development environment enabled and then you can follow instructions for installing python3 for ubuntu.  If python3 is not already installed, then running the following should do install it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install python3&lt;br /&gt;
sudo apt-get install idle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once those finish, you start idle by opening the terminal and then typing the idle command.&lt;br /&gt;
&lt;br /&gt;
==Lists of Problems==&lt;br /&gt;
===Programming Assignments 1===&lt;br /&gt;
[[Programming Assignments - Beginning 1]] - start with trying to solve these problems.  Each requires a different feature of the Python programming language, so solve these problems as you read through one of the tutorials or links above. Note that the page includes a link to repl.it that contains solutions to most of the problems.  If you do not have Python installed on your computer, you can try it out at [https://repl.it/ repl.it] - click the logo at the top, then click &amp;quot;+ new repl&amp;quot;, select Python and Create Repl.&lt;br /&gt;
&lt;br /&gt;
[[Programming Assignments - Beginning 2]] - another set of classic beginning programming exercises.  Some of these will be more involved.&lt;br /&gt;
&lt;br /&gt;
===HackerRank Problems===&lt;br /&gt;
Once you can do some basic Python programming it is time to have some of your work checked.  Hackerrank is a site where you can create an account and work on problems that will be checked if they are correct. Note that hackerrank has very strict rules for accepting correct solutions.  Start with the basic problems to get a feel for what hackerrank expects.&lt;br /&gt;
&lt;br /&gt;
[[Python programming - hackerrank problems]]&lt;br /&gt;
&lt;br /&gt;
===More Practice===&lt;br /&gt;
If you are able to do most of the problems on the pages linked above, then you don&#039;t need us to give you lists of problems any more.  You can pick problems to work through on your own.  Some suggested places with problems are as follows.&lt;br /&gt;
* [https://www.hackerrank.com/domains/algorithms Hackerrank - algorithms]&lt;br /&gt;
* [https://www.hackerrank.com/domains/data-structures Hackerrank - data structures]&lt;br /&gt;
* [http://cs.indstate.edu/acm/contests.html ACM Contest Problems]&lt;br /&gt;
&lt;br /&gt;
==Cheat Sheets and Quizzes==&lt;br /&gt;
These cheat sheets have the highlights of some of the basic information to memorize when you are in your first year of Python programming.  Note - each cheat sheet contains a sample quiz that might be used by your instructor.&lt;br /&gt;
* [[Cheat sheet - Python Operators, Expressions]]&lt;br /&gt;
* [[Cheat sheet - Python Keywords, Concepts, Functions]]&lt;br /&gt;
&lt;br /&gt;
==Programming Errors and How to Fix Them==&lt;br /&gt;
* &#039;&#039;&#039;Syntax error&#039;&#039;&#039; - program is not a valid program, and normally python gives you an error message giving some indication of what the problem was.  &lt;br /&gt;
** &#039;&#039;Debugging&#039;&#039; - read the error message!  Normally you are given a line number where python got &amp;quot;confused&amp;quot; - sometimes that is where the problem is, but you may need to look just before that line (or just after).  Common syntax errors in python...&lt;br /&gt;
** &#039;&#039;Mismatched&#039;&#039; () or [] or &amp;quot;&amp;quot; or &#039;&#039;, for example &amp;lt;code&amp;gt;x = 2 * (3 + 4&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;Mis-capitalization or mis-spelling&#039;&#039;, for example &amp;lt;code&amp;gt;Print(&#039;hello&#039;)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;Improper indenting&#039;&#039;, for example&lt;br /&gt;
** &#039;&#039;Data type&#039;&#039; problems - mixing up strings and numbers, for example &amp;lt;code&amp;gt;x = &#039;3&#039; + 4&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for i in range(0, 10):&lt;br /&gt;
print(i)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Runtime error&#039;&#039;&#039; - program is a valid program but when you run it something goes wrong.  Debugging is similar as for syntax errors and logical errors.  For example...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
x = 1&lt;br /&gt;
print(x)&lt;br /&gt;
x = y + z&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Logical error&#039;&#039;&#039; - program runs but does not do the right thing. &lt;br /&gt;
** &#039;&#039;Print debugging&#039;&#039; - One debugging method is to start printing things (values of variables) in your program starting at the beginning, run the program, make sure it is printing the values you expect, at some point you see a value you don&#039;t expect, and that tells you where to look in your code.  You often are 100% sure what you have is right, but in the end there is some problem.  So you have to &#039;&#039;check everything&#039;&#039;, start at the very beginning of the program.  &lt;br /&gt;
** &#039;&#039;Disable all&#039;&#039; - Another strategy is to disable almost all parts of your program (e.g., put it all in comments) until you get behavior that makes sense, and then start adding things back in (uncommenting), and eventually you&#039;ll add something in that doesn&#039;t behave the way you thought, and now you know where the problem is.  Examples...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
x = 1&lt;br /&gt;
y = 2&lt;br /&gt;
z = 3&lt;br /&gt;
avg = x + y + z / 3&lt;br /&gt;
print(avg)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=ECT_437_Fall_2026&amp;diff=909</id>
		<title>ECT 437 Fall 2026</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=ECT_437_Fall_2026&amp;diff=909"/>
		<updated>2026-08-20T13:07:26Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* General Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ECT 437 Senior Project 1: Project Management and ECT 438 Senior Project 2: Capstone together comprise the senior project for students in the following majors: computer science, information technology, computer and electrical engineering technology. ECT 437 is taken in the fall, and ECT 438 is taken in the spring. For ECT 437, we will be doing some &amp;quot;standard textbook&amp;quot; material on project management, do a project together as a class, and get started with project proposals that will be completed in the spring (in ECT 438).&lt;br /&gt;
&lt;br /&gt;
This website is used to keep track of the sections of ECT 437 that are for the CS majors, taught by Jeff Kinne. The sections for other majors is managed separately and taught by Dr. Javaid.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to OneDrive folder with lecture slides and other files: [https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgDrcWQrRLP4SKUamRmy5HwSAcL6arTwA3EgqY-rc75mcAg?e=DOItt7 OneDrive link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to Teams meeting for lectures: [https://teams.microsoft.com/meet/297738120509878?p=Cw7X38HVGuCvc7g22j Teams meeting link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/ECT_437_Fall_2026&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Schedule a Meeting with Me:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; MW 1-2:50pm in Root Hall A-021, over Teams (link in Canvas/Teams, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; We have two exam slots that we will likely use for project presentations: Monday Dec 7, 3-4:50pm and Wednesday Dec 9, 1-2:50pm. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - Junior or senior standing. For those that graduate in the spring, you take ECT 437 in the preceding fall; for those who graduate in a fall semester, you take ECT 437 the previous fall (so that you can take ECT 438 in your last spring term).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CRN numbers&#039;&#039;&#039; - 52352 (ECT 437-003), 50880 (ECT 437-301).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
For the project management content of the course, we will use the following.&lt;br /&gt;
* Free online - [https://opentextbc.ca/projectmanagement/ Project Management – 2nd Edition] by Adrienne Watt.&lt;br /&gt;
* Git reading: https://www.tutorialspoint.com/git/&lt;br /&gt;
* Information technology Project Management by Schwalbe (maybe not free).&lt;br /&gt;
Note that the other sections of the course use the following textbook. This is not required for Jeff Kinne&#039;s sections of the course.&lt;br /&gt;
* [https://www.pearson.com/en-us/subject-catalog/p/project-management-for-engineering-and-technology/P200000001110/9780132817523?srsltid=AfmBOorbY72RPx2VISEBqx9WhJLN3_N5KnkwO2Q-OzlVwimjnNKmgcce Project Management for Engineering and Technology] by David L. Goetsch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technology Requirements&#039;&#039;&#039;&lt;br /&gt;
* Desktop or laptop computer (Windows, Mac OS, Linux, or Chrome OS) with the ability to save files and install programs.&lt;br /&gt;
* Your ISU account, to access Canvas and course notes.&lt;br /&gt;
* Free programs you will install: TBA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~ect437/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~ect437/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Evaluation of control computers in an industrial environment; the direct and indirect cost trade-off of implementing a hardwired vs. a programmed controller. The effect of management decisions on industrial computer applications. Economics of open and closed systems, software vs. hardware, in-house vs. contract maintenance, and multi-vendor vs. single vendor systems.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Since these are the sections of the course for CS majors, we will be focusing our discussions and projects on software management and development. We may have some groups that work together with students in the other sections of the course if there are projects that make sense for this to happen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Project Management&lt;br /&gt;
&lt;br /&gt;
Unit 2 Class Project&lt;br /&gt;
&lt;br /&gt;
Unit 3 Student Projects&lt;br /&gt;
&lt;br /&gt;
Note that we will be working through units 1 and 2 at the same time (we will be doing &amp;quot;textbook&amp;quot; style material and getting to work on a class project simultaneously).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
# Demonstrate proficiency in the correct usage of PM and technical terminology.&lt;br /&gt;
# Explain PM concepts of scope, schedule, resources, constraints, risks, and closure and apply this information to the semester project.&lt;br /&gt;
# Explain the research approach for analyzing the project details for design.&lt;br /&gt;
# Demonstrate skills for project initiation, planning, execution, monitoring and control, and closure. &lt;br /&gt;
# Demonstrate ability in written, oral, and graphical communication in well-defined technical and non-technical environments; and an ability to identify and use appropriate technical literature.&lt;br /&gt;
# Demonstrate communication skills for change, diversity, and adversity. &lt;br /&gt;
# Demonstrate an ability to function effectively as a member as well as a leader on technical teams.&lt;br /&gt;
# Demonstrate ability to use software development tools as part of a team.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=908</id>
		<title>CS 473</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=908"/>
		<updated>2026-08-20T13:07:07Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CS 473/573 Computer Networks is required in the academic concentration of the CS BS and can be taken as an elective for others.&lt;br /&gt;
&lt;br /&gt;
This page contains the syllabus/course schedule for CS 473/573 for the most recent offering (fall 2026). Previous terms - [[CS 473 Fall 2025|fall 2025 kinne]], [https://cs.indstate.edu/info/syllabi/cs473-f2022-cox.pdf fall 2022 Cox], [https://cs.indstate.edu/info/syllabi/cs473-f2021-kinne.pdf fall 2021 Kinne], [https://cs.indstate.edu/info/syllabi/cs473-s2019-baker.pdf fall 2019 Baker].&lt;br /&gt;
&lt;br /&gt;
Note that all sections of the course will use the same homeworks and lab assignments. Quizzes and exams may be slightly different for the online versus face to face students.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to OneDrive folder with lecture slides and other files: [https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgA4sPuiwtstR79DncedV5WLAYtZuo0T5oehIhGcpsQed5Y OneDrive link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teams meeting link to join lecture online or watch recordings: [https://teams.microsoft.com/meet/269099999478694?p=I09e4zkjtvudEaX33q Teams meeting link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Text we are starting the term with - [https://beej.us/guide/bgnet0/ Beej&#039;s Guide to Networking Concepts]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/CS_473&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important&#039;&#039;&#039; - If you are a graduate student who took CS 473 as an undergraduate, or had transfer credit for CS 473, then you should NOT take CS 573. The system would let you register, but the course would not count towards your MS degree.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [http://mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Meeting:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; TR 11am-12:15pm in Root Hall (RO) A-106, over Teams ([https://teams.microsoft.com/meet/269099999478694?p=I09e4zkjtvudEaX33q Teams meeting link]), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Exams:&#039;&#039;  every three weeks on Thursdays (Sep 3, Sep 24, Oct 15, Nov 5) during lecture time (11am-12:15pm).  &#039;&#039;(For those with another class at that time, we will arrange the time after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; Thursday, Dec 10, 10-11:50am. &#039;&#039;(For those with another class at that time, your exam time will be decided after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - For CS 473 the prereq is: A grade of C or better in CS 203 or CS 303, and in CS 351. For CS 573 the prereq is: C or better in CS 456 or CS 556 or A- or better in CS 500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
We will use selections from the following free online sources. We may add to this list as needed.&lt;br /&gt;
* [http://beej.us/guide/bgnet/ Beej&#039;s Guide to Network Programming], [https://beej.us/guide/bgnet0/ Beej&#039;s Guide to Networking Concepts]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Internet_protocol_suite Internet Protocol], [https://en.wikipedia.org/wiki/Transmission_Control_Protocol TCP Protocol], [https://en.wikipedia.org/wiki/IPv4 IPv4], [https://en.wikipedia.org/wiki/Ethernet_frame#Ethernet_II Ethernet II], [https://en.wikipedia.org/wiki/HTTP HTTP on Wikipedia], [https://developer.mozilla.org/en-US/docs/Web/HTTP HTTP on MDN], [https://datatracker.ietf.org/doc/html/rfc2616 HTTP 1.1 definition]&lt;br /&gt;
* [https://docs.freebsd.org/44doc/psd/20.ipctut/paper.pdf An Introductory 4.4BSD Interprocess Communication Tutorial]&lt;br /&gt;
* Unix Network Programming, Volume 1: The Sockets Networking API 3rd Edition by W. Richard Stevens (Author), Bill Fenner (Author), Andrew M. Rudoff (Author) &lt;br /&gt;
* The Unix Manual Pages (man)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software/Programs&#039;&#039;&#039;&lt;br /&gt;
* [https://www.wireshark.org/download.html WireShark]&lt;br /&gt;
* Programming - probably some in Python, C, and Rust&lt;br /&gt;
* Telnet: [https://blog.mrkeyshop.com/en/guides/how-to-enable-and-use-telnet-on-windows-11-and-10/ install/enable on Windows]. For Mac OS, first install [https://brew.sh/ homebrew] and then [https://formulae.brew.sh/formula/telnet#default brew install telnet].&lt;br /&gt;
** If using the builtin Windows 10/11 telnet client, open a command prompt, then type telnet and Enter to start telnet. To open a connection, type something like: &amp;lt;code&amp;gt;open cs.indstate.edu 47300&amp;lt;/code&amp;gt; and enter. The display is a little quirky - when you type it will overwrite characters already on the screen.&lt;br /&gt;
* Putty: can also be used as a telnet client on Windows. [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html Download]. To use as a telnet client, when you run Putty, set the Hostname (e.g., cs.indstate.edu) and Port as desired (e.g., 47300), select Other for Connection Type, and click to change &amp;quot;Telnet&amp;quot; to &amp;quot;Raw&amp;quot;, then click Open.&lt;br /&gt;
* Netcat: there are various versions. One cross-platform version is: https://nmap.org/ncat/. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgA4sPuiwtstR79DncedV5WLAYtZuo0T5oehIhGcpsQed5Y this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs473/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~cs473/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The course is an introduction to networking and includes detailed study of Internet protocols and socket programming. Topics include a study of IP, UDP, and TCP protocols, as well as application layer protocols such as HTTP and SMTP. Students learn to program both a client and a server.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Network protocols, the Internet&lt;br /&gt;
* IPv4, IPv6, UDP, TCP&lt;br /&gt;
* Routing&lt;br /&gt;
* Client/server, ARP, DNS, HTTP, SSL&lt;br /&gt;
* Security, encryption&lt;br /&gt;
* How all of that works, and tools for looking at it&lt;br /&gt;
&lt;br /&gt;
Unit 2 Network Programming&lt;br /&gt;
* Interprocess communication (BSD IPC paper)&lt;br /&gt;
* Processes, pipes, signals, socketpairs, asynch I/O&lt;br /&gt;
* Threads, shared memory, etc. &lt;br /&gt;
&lt;br /&gt;
Unit 3 Selected topics&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
* Able to use Linux systems and terminal - managing files, running code, using utility programs. &lt;br /&gt;
* Understanding of data flow on the internet.&lt;br /&gt;
** Can give precise details (diagrams, trace through examples, explain tradeoffs) of how data is transmitted between programs on a single machine and on different machines via the Internet.&lt;br /&gt;
* Understanding the fundamentals of network security and encryption.&lt;br /&gt;
* Ability to write client and server programs.&lt;br /&gt;
** Completed multiple different client/server and related programs independently, can explain the overall design of the programs and the details of how they are implemented.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_151_Fall_2026&amp;diff=907</id>
		<title>CS 151 Fall 2026</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_151_Fall_2026&amp;diff=907"/>
		<updated>2026-08-19T18:15:42Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CS 151 Introduction to Computer Science is taken by CS majors during their first term, along with ECT 130.&lt;br /&gt;
&lt;br /&gt;
This page contains the syllabus for CS 151 for the most recent offering (fall 2026). Previous terms - [[CS 151 Spring 2026]], [[CS 151 Fall 2025]], [[CS 151 Spring 2025]], [[CS 151 Fall 2024]], [[CS 151 Spring 2024]], [[CS 151 Fall 2023]].&lt;br /&gt;
&lt;br /&gt;
Note that all sections of the course will use the same homeworks and lab assignments. Quizzes and exams may be slightly different for the online versus face to face students.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to OneDrive folder with lecture slides and other files: [https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgAY83EO3FOvTZW6CUmnQhmoAfwjzEhUO5Z_2ITMaSiyEqA?e=dbOciY OneDrive link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meeting link for lectures and recordings: [https://teams.microsoft.com/meet/236575882194707?p=nahhbIvsZOVY36FWQt Teams meeting link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Welcome and Getting Started=&lt;br /&gt;
An introduction to the course is given during the first week of classes. Look for an announcement and link to a recording. Slides are also available &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:p:/r/personal/jeffrey_kinne_indstate_edu/Documents/Courses/Jeff%20Kinne%20Lecture%20Notes/cs151/week%2000%20-%20course%20introduction.pptx?d=wef20c8e1c04d43e19956f03de52bd501&amp;amp;csf=1&amp;amp;web=1&amp;amp;e=A0ecC0 here]&#039;&#039;&#039; with the most important information.&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/CS_151&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Schedule a Meeting with Me:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; MWF 10-10:50am in Root Hall A-109, over Teams ([https://teams.microsoft.com/meet/236575882194707?p=nahhbIvsZOVY36FWQt Teams meeting link]), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Exams:&#039;&#039;  every three weeks on Wednesdays (Sep 2, Sep 23, Oct 14, Nov 4), during lecture time (10-10:50am) for face to face section, available from this time until midnight for the online section.&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; Monday, Dec 7, 10-11:50am. &#039;&#039;(For those in the online section with another class at that time, your exam time will be decided after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Supplemental Instructor/Hours&#039;&#039;&#039; Haley Stewart ([mailto:hstewart10@sycamores.indstate.edu hstewart10@sycamores.indstate.edu]).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; There likely will be graduate assistant help for the course. Details will be posted before when they are known.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - none.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CRN numbers&#039;&#039;&#039; - 53090 for the face to face section, 51027 for the online section.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
We will use selections from the following free online sources.&lt;br /&gt;
* Automate the Boring Stuff with Python (available free at https://automatetheboringstuff.com/2e/). We use the 2nd edition of the book (not the latest, which puts the topics in a different order than we will follow).&lt;br /&gt;
* [https://www.khanacademy.org/computing/ap-computer-science-principles Khan Academy AP CS Principles], in particular unit 1 digital information and unit 4 algorithms.&lt;br /&gt;
* Additional online sources as needed.&lt;br /&gt;
* [https://docs.google.com/presentation/d/1ccy6CXrdP9415bDEbzcI773cyDNI7p3rr3yA76QmgtQ/edit#slide=id.g877391eabf_0_116 turtle graphics]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgAY83EO3FOvTZW6CUmnQhmoAfwjzEhUO5Z_2ITMaSiyEqA?e=dbOciY this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs151/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~cs151/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technology Requirements&#039;&#039;&#039;&lt;br /&gt;
* Desktop or laptop computer (Windows, Mac OS, Linux, or Chrome OS) with the ability to save files and install programs.&lt;br /&gt;
* Your ISU account, to access Canvas and course notes.&lt;br /&gt;
* Free programs you will install: https://www.python.org/downloads/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Programming practice&#039;&#039;&#039; Challenge problems...&lt;br /&gt;
* [https://leetcode.com/explore/learn/card/the-leetcode-beginners-guide/692/challenge-problems/4421/ LeetCode beginning problems]&lt;br /&gt;
* [https://open.kattis.com/problems?f_language=-1&amp;amp;show_more_filters=on&amp;amp;f_min_difficulty=&amp;amp;f_max_difficulty=2&amp;amp;order=difficulty_data Open Kattis problems]&lt;br /&gt;
&lt;br /&gt;
=Supplemental Instruction=&lt;br /&gt;
This course uses a supplemental instructor (SI) to provide extra sessions to help students who can use additional instruction beyond the regular lecture hours. The SI is a student who previously took the course and did well, and who works closely with the instructor to help students. SI sessions review content from lecture and what is needed for homework assignments. The SI is part of the course in Canvas so you can communicate with them that way if you like.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Core concepts that are foundational in computer science, including programming, use of computers for dealing with files and programs, how data is stored, number systems. Focus on building skills needed for programming and further study of computer science, and intermediate mastery of a particular programming language.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weeks 1-6&#039;&#039;&#039;&lt;br /&gt;
* Setup accounts &lt;br /&gt;
* Intro to Linux &lt;br /&gt;
* Variables &lt;br /&gt;
* I/O &lt;br /&gt;
* Flow Control &lt;br /&gt;
* If-statements &lt;br /&gt;
* Turtle&lt;br /&gt;
* Loops &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weeks 7-14&#039;&#039;&#039;&lt;br /&gt;
* Functions &lt;br /&gt;
* Chapter 4 - Lists &lt;br /&gt;
* Chapter 5 - Collections &lt;br /&gt;
* Chapter 6 - Strings &lt;br /&gt;
* Bits, Bytes, Base and Logic &lt;br /&gt;
* Intro to algorithms &lt;br /&gt;
* Chapter 9 &amp;amp; 10 (Files) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Week 15-16&#039;&#039;&#039;&lt;br /&gt;
* Final project and interviews &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
* Able to use Linux systems and terminal - managing files, running code, using utility programs. &lt;br /&gt;
* Basic mastery of core programming concepts - data types, conditionals and loops, Boolean logic, functions, string operations, reading and writing files. In particular, &lt;br /&gt;
* Can take a specification and produce code implementing it. &lt;br /&gt;
* Can take code and &amp;quot;play computer&amp;quot; to determine the precise results of running the code on a given input. &lt;br /&gt;
* Can take a partially complete program and specification for how it should work, and complete it. &lt;br /&gt;
* Can take a program with syntax or logical errors and fix the errors. &lt;br /&gt;
* Understanding of good coding style and able to practice good coding style - use of functions to avoid redundant code, whitespace formatting, variable and function names, comments. &lt;br /&gt;
* Understanding of base systems, including ability to convert between binary, hex, octal, and decimal. &lt;br /&gt;
* Understanding of and ability to explain different file types - text versus binary. &lt;br /&gt;
* Able to read and write data with programs, including parsing simple file formats (e.g., csv). &lt;br /&gt;
* Understanding of sorting algorithms - able to &amp;quot;play computer&amp;quot; to execute sorting algorithms that were covered in class on small test cases.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=906</id>
		<title>Gitlab - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=906"/>
		<updated>2026-08-19T17:30:05Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* SSH Keys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Git=&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a version control system that can be used to keep track of your files (programming code, but also other files as well).  &lt;br /&gt;
&lt;br /&gt;
Two of the most popular installations of git (as of 2020) are [https://github.com/ github] and [https://gitlab.com/ gitlab].  When Microsoft purchased github, it became fashionable to prefer gitlab.  Github allows for projects to be hosted on their servers.  Gitlab allows for hosting either on their servers or to run a local installation of gitlab on ones own servers.&lt;br /&gt;
&lt;br /&gt;
Of late, we have hosted projects using gitlab either on gitlab&#039;s servers or on ISU&#039;s local installation of gitlab.&lt;br /&gt;
&lt;br /&gt;
=Account Setup=&lt;br /&gt;
&#039;&#039;&#039;On gitlab.com&#039;&#039;&#039; - Account setup on [https://gitlab.com/ gitlab.com] is just like any other website.  You create a free account, choose your username/password, etc.  The account is yours and is not tied in any particular way to ISU.  You can give access to your projects in much the same way as you give access to files on google drive, onedrive, dropbox, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On git.indstate.edu&#039;&#039;&#039; - ISU&#039;s local installation of gitlab is at https://git.indstate.edu/.  For this system you use your ISU portal id and password.  You do not need to create an account.  The first time you login into the system, it initializes an account for you.  CS courses and ISU CS projects in general tend to use ISU&#039;s local installation because we can tie access based on course rosters, etc.&lt;br /&gt;
&lt;br /&gt;
=SSH Keys=&lt;br /&gt;
You will normally want to have SSH keys setup so that you can interact with the git server without having to enter a username and password. Instructions are here: https://docs.gitlab.com/user/ssh/&lt;br /&gt;
&lt;br /&gt;
You will need to edit your ssh configuration so that it knows which key to use when connecting to git.indstate.edu. On a Mac or Linux, edit the file &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; and put a section like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host git.indstate.edu&lt;br /&gt;
  PreferredAuthentications publickey&lt;br /&gt;
  IdentityFile ~/.ssh/git_indstate_id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should replace the name git_indstate_id with whatever filename you used for the private key. On Windows, the file should be in your home directory (normally C:\Users\YOUR_USERNAME) and then .ssh/config (so, similar to where it is for Mac and Linux).&lt;br /&gt;
&lt;br /&gt;
Note - for editing the config file, you should use a plain text editor (Notepad on Windows, TextEdit on Mac, or something nicer; not Word).&lt;br /&gt;
&lt;br /&gt;
You can clone a repository from git.indstate.edu using a command like this: &amp;lt;code&amp;gt;git clone git+ssh://git@git.indstate.edu/ect-437-fall-2026/hello-class.git&amp;lt;/code&amp;gt;, but where you would replace the link with whatever repository you are cloning.&lt;br /&gt;
&lt;br /&gt;
=Getting Around=&lt;br /&gt;
Whether you are using gitlab.com or git.indstate.edu, the functionality and &amp;quot;how to get around&amp;quot; is about the same.  You have two main methods for using either.&lt;br /&gt;
&lt;br /&gt;
==Web browser interface==&lt;br /&gt;
You can view projects within your web browser.  How to get around is fairly intuitive - as is the case with any web page, you look around and click around to see what different things do.  When you have something specific you want to do but don&#039;t see how to do, you ask the internet or ask your instructor (and we may update this wiki to give instructions on how to do it).&lt;br /&gt;
&lt;br /&gt;
==Terminal interface==&lt;br /&gt;
Git allows for downloading/uploading/etc. files in your projects from the terminal.  In order to do this, you need to (a) have a git client installed on your system, (b) understand the terminology that git uses for keeping track of files and the steps in using git to download/update/upload files, (c) make it so.&lt;br /&gt;
&lt;br /&gt;
Some reading material about using git - https://www.tutorialspoint.com/git/index.htm&lt;br /&gt;
&lt;br /&gt;
===Vocab / Cheat Sheet===&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
A common use case is that you will need to download someone else&#039;s (e.g., instructor&#039;s) gitlab project, create your own version of some part of the project, test/debug your version of the project, eventually put in a request to update the main project with your code.  The steps involved in that workflow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clone&#039;&#039;&#039; - To download the current version of the project you (a) browse in your terminal to the directory where you want to have the project code, (b) run &amp;lt;code&amp;gt;git clone url_to_project&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039; - If a branch has already been created for you, then you can set that as your active branch by running &amp;lt;code&amp;gt;git checkout branch_name&amp;lt;/code&amp;gt;.  If a branch has not yet been created for you, you run &amp;lt;code&amp;gt;git branch branch_name&amp;lt;/code&amp;gt; to create a new branch.  In either case, you have a branch of the project to work within.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do your work&#039;&#039;&#039; - You work on your files locally - test, debug, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage/Commit/Push&#039;&#039;&#039; - To save your work to the remote server, you need to stage, commit, and push.  You can stage/commit batches of changes, or do a stage/commit for each discreet task accomplished.  If you are working in some_file.txt, you would run the following sequence of commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add some_file.txt  # this &amp;quot;stages&amp;quot; the file to be part of the next commit&lt;br /&gt;
git commit -m &amp;quot;Some updates to the file&amp;quot; # This commits, will be a permanent record of this version of the file&lt;br /&gt;
git push               # sends all committed changes to the remote server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the push may ask for login information to the remote server.  If you have an ssh key configured for the project (see section above), then you won&#039;t be asked for login information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pull&#039;&#039;&#039; - To pull/download updates that have happened (by others), you use &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge&#039;&#039;&#039; - When you ready to have your changes merged in to the main branch of the project, ask the owner of the project to check your branch.  When the owner is ready for it, the owner can run the following commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git branch main        # owner is working in the main branch&lt;br /&gt;
git merge branch_name  # merge your branch into the main branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=ECT_437_Fall_2026&amp;diff=905</id>
		<title>ECT 437 Fall 2026</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=ECT_437_Fall_2026&amp;diff=905"/>
		<updated>2026-08-19T13:38:00Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* General Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ECT 437 Senior Project 1: Project Management and ECT 438 Senior Project 2: Capstone together comprise the senior project for students in the following majors: computer science, information technology, computer and electrical engineering technology. ECT 437 is taken in the fall, and ECT 438 is taken in the spring. For ECT 437, we will be doing some &amp;quot;standard textbook&amp;quot; material on project management, do a project together as a class, and get started with project proposals that will be completed in the spring (in ECT 438).&lt;br /&gt;
&lt;br /&gt;
This website is used to keep track of the sections of ECT 437 that are for the CS majors, taught by Jeff Kinne. The sections for other majors is managed separately and taught by Dr. Javaid.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to OneDrive folder with lecture slides and other files: [https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgDrcWQrRLP4SKUamRmy5HwSAcL6arTwA3EgqY-rc75mcAg?e=DOItt7 OneDrive link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to Teams meeting for lectures: [https://teams.microsoft.com/meet/297738120509878?p=Cw7X38HVGuCvc7g22j Teams meeting link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/ECT_437_Fall_2026&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Schedule a Meeting with Me:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; MW 1-2:50pm in Myers Technology Center (TC) 316, over Teams (link in Canvas/Teams, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; We have two exam slots that we will likely use for project presentations: Monday Dec 7, 3-4:50pm and Wednesday Dec 9, 1-2:50pm. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - Junior or senior standing. For those that graduate in the spring, you take ECT 437 in the preceding fall; for those who graduate in a fall semester, you take ECT 437 the previous fall (so that you can take ECT 438 in your last spring term).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CRN numbers&#039;&#039;&#039; - 52352 (ECT 437-003), 50880 (ECT 437-301).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
For the project management content of the course, we will use the following.&lt;br /&gt;
* Free online - [https://opentextbc.ca/projectmanagement/ Project Management – 2nd Edition] by Adrienne Watt.&lt;br /&gt;
* Git reading: https://www.tutorialspoint.com/git/&lt;br /&gt;
* Information technology Project Management by Schwalbe (maybe not free).&lt;br /&gt;
Note that the other sections of the course use the following textbook. This is not required for Jeff Kinne&#039;s sections of the course.&lt;br /&gt;
* [https://www.pearson.com/en-us/subject-catalog/p/project-management-for-engineering-and-technology/P200000001110/9780132817523?srsltid=AfmBOorbY72RPx2VISEBqx9WhJLN3_N5KnkwO2Q-OzlVwimjnNKmgcce Project Management for Engineering and Technology] by David L. Goetsch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technology Requirements&#039;&#039;&#039;&lt;br /&gt;
* Desktop or laptop computer (Windows, Mac OS, Linux, or Chrome OS) with the ability to save files and install programs.&lt;br /&gt;
* Your ISU account, to access Canvas and course notes.&lt;br /&gt;
* Free programs you will install: TBA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~ect437/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~ect437/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Evaluation of control computers in an industrial environment; the direct and indirect cost trade-off of implementing a hardwired vs. a programmed controller. The effect of management decisions on industrial computer applications. Economics of open and closed systems, software vs. hardware, in-house vs. contract maintenance, and multi-vendor vs. single vendor systems.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Since these are the sections of the course for CS majors, we will be focusing our discussions and projects on software management and development. We may have some groups that work together with students in the other sections of the course if there are projects that make sense for this to happen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Project Management&lt;br /&gt;
&lt;br /&gt;
Unit 2 Class Project&lt;br /&gt;
&lt;br /&gt;
Unit 3 Student Projects&lt;br /&gt;
&lt;br /&gt;
Note that we will be working through units 1 and 2 at the same time (we will be doing &amp;quot;textbook&amp;quot; style material and getting to work on a class project simultaneously).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
# Demonstrate proficiency in the correct usage of PM and technical terminology.&lt;br /&gt;
# Explain PM concepts of scope, schedule, resources, constraints, risks, and closure and apply this information to the semester project.&lt;br /&gt;
# Explain the research approach for analyzing the project details for design.&lt;br /&gt;
# Demonstrate skills for project initiation, planning, execution, monitoring and control, and closure. &lt;br /&gt;
# Demonstrate ability in written, oral, and graphical communication in well-defined technical and non-technical environments; and an ability to identify and use appropriate technical literature.&lt;br /&gt;
# Demonstrate communication skills for change, diversity, and adversity. &lt;br /&gt;
# Demonstrate an ability to function effectively as a member as well as a leader on technical teams.&lt;br /&gt;
# Demonstrate ability to use software development tools as part of a team.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=ECT_437_Fall_2026&amp;diff=904</id>
		<title>ECT 437 Fall 2026</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=ECT_437_Fall_2026&amp;diff=904"/>
		<updated>2026-08-19T12:41:32Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ECT 437 Senior Project 1: Project Management and ECT 438 Senior Project 2: Capstone together comprise the senior project for students in the following majors: computer science, information technology, computer and electrical engineering technology. ECT 437 is taken in the fall, and ECT 438 is taken in the spring. For ECT 437, we will be doing some &amp;quot;standard textbook&amp;quot; material on project management, do a project together as a class, and get started with project proposals that will be completed in the spring (in ECT 438).&lt;br /&gt;
&lt;br /&gt;
This website is used to keep track of the sections of ECT 437 that are for the CS majors, taught by Jeff Kinne. The sections for other majors is managed separately and taught by Dr. Javaid.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to OneDrive folder with lecture slides and other files: [https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgDrcWQrRLP4SKUamRmy5HwSAcL6arTwA3EgqY-rc75mcAg?e=DOItt7 OneDrive link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to Teams meeting for lectures: [https://teams.microsoft.com/meet/297738120509878?p=Cw7X38HVGuCvc7g22j Teams meeting link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/ECT_437_Fall_2026&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Schedule a Meeting with Me:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; MW 1-2:50pm in Myers Technology Center (TC) 316, over Teams (link in Canvas/Teams, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; We have two exam slots that we will likely use for project presentations: Monday Dec 7, 3-4:50pm and Wednesday Dec 9, 1-2:50pm. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - Junior or senior standing. For those that graduate in the spring, you take ECT 437 in the preceding fall; for those who graduate in a fall semester, you take ECT 437 the previous fall (so that you can take ECT 438 in your last spring term).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CRN numbers&#039;&#039;&#039; - 52352 (ECT 437-003), 50880 (ECT 437-301).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
For the project management content of the course, we will the the following.&lt;br /&gt;
* Free online - [https://opentextbc.ca/projectmanagement/ Project Management – 2nd Edition] by Adrienne Watt.&lt;br /&gt;
* Git reading: https://www.tutorialspoint.com/git/&lt;br /&gt;
* Information technology Project Management by Schwalbe (maybe not free).&lt;br /&gt;
Note that the other sections of the course use the following textbook. This is not required for Jeff Kinne&#039;s sections of the course.&lt;br /&gt;
* [https://www.pearson.com/en-us/subject-catalog/p/project-management-for-engineering-and-technology/P200000001110/9780132817523?srsltid=AfmBOorbY72RPx2VISEBqx9WhJLN3_N5KnkwO2Q-OzlVwimjnNKmgcce Project Management for Engineering and Technology] by David L. Goetsch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technology Requirements&#039;&#039;&#039;&lt;br /&gt;
* Desktop or laptop computer (Windows, Mac OS, Linux, or Chrome OS) with the ability to save files and install programs.&lt;br /&gt;
* Your ISU account, to access Canvas and course notes.&lt;br /&gt;
* Free programs you will install: TBA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~ect437/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~ect437/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Evaluation of control computers in an industrial environment; the direct and indirect cost trade-off of implementing a hardwired vs. a programmed controller. The effect of management decisions on industrial computer applications. Economics of open and closed systems, software vs. hardware, in-house vs. contract maintenance, and multi-vendor vs. single vendor systems.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Since these are the sections of the course for CS majors, we will be focusing our discussions and projects on software management and development. We may have some groups that work together with students in the other sections of the course if there are projects that make sense for this to happen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Project Management&lt;br /&gt;
&lt;br /&gt;
Unit 2 Class Project&lt;br /&gt;
&lt;br /&gt;
Unit 3 Student Projects&lt;br /&gt;
&lt;br /&gt;
Note that we will be working through units 1 and 2 at the same time (we will be doing &amp;quot;textbook&amp;quot; style material and getting to work on a class project simultaneously).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
# Demonstrate proficiency in the correct usage of PM and technical terminology.&lt;br /&gt;
# Explain PM concepts of scope, schedule, resources, constraints, risks, and closure and apply this information to the semester project.&lt;br /&gt;
# Explain the research approach for analyzing the project details for design.&lt;br /&gt;
# Demonstrate skills for project initiation, planning, execution, monitoring and control, and closure. &lt;br /&gt;
# Demonstrate ability in written, oral, and graphical communication in well-defined technical and non-technical environments; and an ability to identify and use appropriate technical literature.&lt;br /&gt;
# Demonstrate communication skills for change, diversity, and adversity. &lt;br /&gt;
# Demonstrate an ability to function effectively as a member as well as a leader on technical teams.&lt;br /&gt;
# Demonstrate ability to use software development tools as part of a team.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=903</id>
		<title>Gitlab - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=903"/>
		<updated>2026-08-19T12:31:26Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Workflow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Git=&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a version control system that can be used to keep track of your files (programming code, but also other files as well).  &lt;br /&gt;
&lt;br /&gt;
Two of the most popular installations of git (as of 2020) are [https://github.com/ github] and [https://gitlab.com/ gitlab].  When Microsoft purchased github, it became fashionable to prefer gitlab.  Github allows for projects to be hosted on their servers.  Gitlab allows for hosting either on their servers or to run a local installation of gitlab on ones own servers.&lt;br /&gt;
&lt;br /&gt;
Of late, we have hosted projects using gitlab either on gitlab&#039;s servers or on ISU&#039;s local installation of gitlab.&lt;br /&gt;
&lt;br /&gt;
=Account Setup=&lt;br /&gt;
&#039;&#039;&#039;On gitlab.com&#039;&#039;&#039; - Account setup on [https://gitlab.com/ gitlab.com] is just like any other website.  You create a free account, choose your username/password, etc.  The account is yours and is not tied in any particular way to ISU.  You can give access to your projects in much the same way as you give access to files on google drive, onedrive, dropbox, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On git.indstate.edu&#039;&#039;&#039; - ISU&#039;s local installation of gitlab is at https://git.indstate.edu/.  For this system you use your ISU portal id and password.  You do not need to create an account.  The first time you login into the system, it initializes an account for you.  CS courses and ISU CS projects in general tend to use ISU&#039;s local installation because we can tie access based on course rosters, etc.&lt;br /&gt;
&lt;br /&gt;
=SSH Keys=&lt;br /&gt;
You will normally want to have SSH keys setup so that you can interact with the git server without having to enter a username and password. Instructions are here: https://docs.gitlab.com/user/ssh/&lt;br /&gt;
&lt;br /&gt;
You will need to edit your ssh configuration so that it knows which key to use when connecting to git.indstate.edu. On a Mac or Linux, edit the file &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; and put a section like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host git.indstate.edu&lt;br /&gt;
  PreferredAuthentications publickey&lt;br /&gt;
  IdentityFile ~/.ssh/git_indstate_id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should replace the name git_indstate_id with whatever filename you used for the private key. On Windows, the file should be in your home directory (normally C:\Users\YOUR_USERNAME) and then .ssh/config (so, similar to where it is for Mac and Linux).&lt;br /&gt;
&lt;br /&gt;
You can clone a repository from git.indstate.edu using a command like this: &amp;lt;code&amp;gt;git clone git+ssh://git@git.indstate.edu/ect-437-fall-2026/hello-class.git&amp;lt;/code&amp;gt;, but where you would replace the link with whatever repository you are cloning.&lt;br /&gt;
&lt;br /&gt;
=Getting Around=&lt;br /&gt;
Whether you are using gitlab.com or git.indstate.edu, the functionality and &amp;quot;how to get around&amp;quot; is about the same.  You have two main methods for using either.&lt;br /&gt;
&lt;br /&gt;
==Web browser interface==&lt;br /&gt;
You can view projects within your web browser.  How to get around is fairly intuitive - as is the case with any web page, you look around and click around to see what different things do.  When you have something specific you want to do but don&#039;t see how to do, you ask the internet or ask your instructor (and we may update this wiki to give instructions on how to do it).&lt;br /&gt;
&lt;br /&gt;
==Terminal interface==&lt;br /&gt;
Git allows for downloading/uploading/etc. files in your projects from the terminal.  In order to do this, you need to (a) have a git client installed on your system, (b) understand the terminology that git uses for keeping track of files and the steps in using git to download/update/upload files, (c) make it so.&lt;br /&gt;
&lt;br /&gt;
Some reading material about using git - https://www.tutorialspoint.com/git/index.htm&lt;br /&gt;
&lt;br /&gt;
===Vocab / Cheat Sheet===&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
A common use case is that you will need to download someone else&#039;s (e.g., instructor&#039;s) gitlab project, create your own version of some part of the project, test/debug your version of the project, eventually put in a request to update the main project with your code.  The steps involved in that workflow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clone&#039;&#039;&#039; - To download the current version of the project you (a) browse in your terminal to the directory where you want to have the project code, (b) run &amp;lt;code&amp;gt;git clone url_to_project&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039; - If a branch has already been created for you, then you can set that as your active branch by running &amp;lt;code&amp;gt;git checkout branch_name&amp;lt;/code&amp;gt;.  If a branch has not yet been created for you, you run &amp;lt;code&amp;gt;git branch branch_name&amp;lt;/code&amp;gt; to create a new branch.  In either case, you have a branch of the project to work within.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do your work&#039;&#039;&#039; - You work on your files locally - test, debug, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage/Commit/Push&#039;&#039;&#039; - To save your work to the remote server, you need to stage, commit, and push.  You can stage/commit batches of changes, or do a stage/commit for each discreet task accomplished.  If you are working in some_file.txt, you would run the following sequence of commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add some_file.txt  # this &amp;quot;stages&amp;quot; the file to be part of the next commit&lt;br /&gt;
git commit -m &amp;quot;Some updates to the file&amp;quot; # This commits, will be a permanent record of this version of the file&lt;br /&gt;
git push               # sends all committed changes to the remote server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the push may ask for login information to the remote server.  If you have an ssh key configured for the project (see section above), then you won&#039;t be asked for login information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pull&#039;&#039;&#039; - To pull/download updates that have happened (by others), you use &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge&#039;&#039;&#039; - When you ready to have your changes merged in to the main branch of the project, ask the owner of the project to check your branch.  When the owner is ready for it, the owner can run the following commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git branch main        # owner is working in the main branch&lt;br /&gt;
git merge branch_name  # merge your branch into the main branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=902</id>
		<title>Gitlab - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=902"/>
		<updated>2026-08-19T12:29:51Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* SSH Keys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Git=&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a version control system that can be used to keep track of your files (programming code, but also other files as well).  &lt;br /&gt;
&lt;br /&gt;
Two of the most popular installations of git (as of 2020) are [https://github.com/ github] and [https://gitlab.com/ gitlab].  When Microsoft purchased github, it became fashionable to prefer gitlab.  Github allows for projects to be hosted on their servers.  Gitlab allows for hosting either on their servers or to run a local installation of gitlab on ones own servers.&lt;br /&gt;
&lt;br /&gt;
Of late, we have hosted projects using gitlab either on gitlab&#039;s servers or on ISU&#039;s local installation of gitlab.&lt;br /&gt;
&lt;br /&gt;
=Account Setup=&lt;br /&gt;
&#039;&#039;&#039;On gitlab.com&#039;&#039;&#039; - Account setup on [https://gitlab.com/ gitlab.com] is just like any other website.  You create a free account, choose your username/password, etc.  The account is yours and is not tied in any particular way to ISU.  You can give access to your projects in much the same way as you give access to files on google drive, onedrive, dropbox, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On git.indstate.edu&#039;&#039;&#039; - ISU&#039;s local installation of gitlab is at https://git.indstate.edu/.  For this system you use your ISU portal id and password.  You do not need to create an account.  The first time you login into the system, it initializes an account for you.  CS courses and ISU CS projects in general tend to use ISU&#039;s local installation because we can tie access based on course rosters, etc.&lt;br /&gt;
&lt;br /&gt;
=SSH Keys=&lt;br /&gt;
You will normally want to have SSH keys setup so that you can interact with the git server without having to enter a username and password. Instructions are here: https://docs.gitlab.com/user/ssh/&lt;br /&gt;
&lt;br /&gt;
You will need to edit your ssh configuration so that it knows which key to use when connecting to git.indstate.edu. On a Mac or Linux, edit the file &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; and put a section like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host git.indstate.edu&lt;br /&gt;
  PreferredAuthentications publickey&lt;br /&gt;
  IdentityFile ~/.ssh/git_indstate_id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should replace the name git_indstate_id with whatever filename you used for the private key. On Windows, the file should be in your home directory (normally C:\Users\YOUR_USERNAME) and then .ssh/config (so, similar to where it is for Mac and Linux).&lt;br /&gt;
&lt;br /&gt;
You can clone a repository from git.indstate.edu using a command like this: &amp;lt;code&amp;gt;git clone git+ssh://git@git.indstate.edu/ect-437-fall-2026/hello-class.git&amp;lt;/code&amp;gt;, but where you would replace the link with whatever repository you are cloning.&lt;br /&gt;
&lt;br /&gt;
=Getting Around=&lt;br /&gt;
Whether you are using gitlab.com or git.indstate.edu, the functionality and &amp;quot;how to get around&amp;quot; is about the same.  You have two main methods for using either.&lt;br /&gt;
&lt;br /&gt;
==Web browser interface==&lt;br /&gt;
You can view projects within your web browser.  How to get around is fairly intuitive - as is the case with any web page, you look around and click around to see what different things do.  When you have something specific you want to do but don&#039;t see how to do, you ask the internet or ask your instructor (and we may update this wiki to give instructions on how to do it).&lt;br /&gt;
&lt;br /&gt;
==Terminal interface==&lt;br /&gt;
Git allows for downloading/uploading/etc. files in your projects from the terminal.  In order to do this, you need to (a) have a git client installed on your system, (b) understand the terminology that git uses for keeping track of files and the steps in using git to download/update/upload files, (c) make it so.&lt;br /&gt;
&lt;br /&gt;
Some reading material about using git - https://www.tutorialspoint.com/git/index.htm&lt;br /&gt;
&lt;br /&gt;
===Vocab / Cheat Sheet===&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
A common use case is that you will need to download someone else&#039;s (e.g., instructor&#039;s) gitlab project, create your own version of some part of the project, test/debug your version of the project, eventually put in a request to update the main project with your code.  The steps involved in that workflow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clone&#039;&#039;&#039; - To download the current version of the project you (a) browse in your terminal to the directory where you want to have the project code, (b) run &amp;lt;code&amp;gt;git clone url_to_project&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039; - If a branch has already been created for you, then you can set that as your active branch by running &amp;lt;code&amp;gt;git checkout branch_name&amp;lt;/code&amp;gt;.  If a branch has not yet been created for you, you run &amp;lt;code&amp;gt;git branch branch_name&amp;lt;/code&amp;gt; to create a new branch.  In either case, you have a branch of the project to work within.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do your work&#039;&#039;&#039; - You work on your files locally - test, debug, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage/Commit/Push&#039;&#039;&#039; - To save your work to the remote server, you need to stage, commit, and push.  You can stage/commit batches of changes, or do a stage/commit for each discreet task accomplished.  If you are working in some_file.txt, you would run the following sequence of commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add some_file.txt  # this &amp;quot;stages&amp;quot; the file to be part of the next commit&lt;br /&gt;
git commit -m &amp;quot;Some updates to the file&amp;quot; # This commits, will be a permanent record of this version of the file&lt;br /&gt;
git push               # sends all committed changes to the remote server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the push will likely ask for login information to the remote server.  Note that if you want there to be a record of a particular version of a file, you need to stage/commit the file.  It is the commit&#039;ed versions of files that are stored permanently.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pull&#039;&#039;&#039; - To pull/download updates that have happened (by others), you use &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge&#039;&#039;&#039; - When you ready to have your changes merged in to the main branch of the project, ask the owner of the project to check your branch.  When the owner is ready for it, the owner can run the following commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git branch main        # owner is working in the main branch&lt;br /&gt;
git merge branch_name  # merge your branch into the main branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_151_Fall_2026&amp;diff=901</id>
		<title>CS 151 Fall 2026</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_151_Fall_2026&amp;diff=901"/>
		<updated>2026-08-19T12:11:54Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* General Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CS 151 Introduction to Computer Science is taken by CS majors during their first term, along with ECT 130.&lt;br /&gt;
&lt;br /&gt;
This page contains the syllabus for CS 151 for the most recent offering (fall 2026). Previous terms - [[CS 151 Spring 2026]], [[CS 151 Fall 2025]], [[CS 151 Spring 2025]], [[CS 151 Fall 2024]], [[CS 151 Spring 2024]], [[CS 151 Fall 2023]].&lt;br /&gt;
&lt;br /&gt;
Note that all sections of the course will use the same homeworks and lab assignments. Quizzes and exams may be slightly different for the online versus face to face students.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to OneDrive folder with lecture slides and other files: [https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow OneDrive link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meeting link for lectures and recordings: [https://teams.microsoft.com/meet/236575882194707?p=nahhbIvsZOVY36FWQt Teams meeting link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Welcome and Getting Started=&lt;br /&gt;
An introduction to the course is given during the first week of classes. Look for an announcement and link to a recording. Slides are also available &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:p:/r/personal/jeffrey_kinne_indstate_edu/Documents/Courses/Jeff%20Kinne%20Lecture%20Notes/cs151/week%2000%20-%20course%20introduction.pptx?d=wef20c8e1c04d43e19956f03de52bd501&amp;amp;csf=1&amp;amp;web=1&amp;amp;e=A0ecC0 here]&#039;&#039;&#039; with the most important information.&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/CS_151&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Schedule a Meeting with Me:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; MWF 10-10:50am in Root Hall A-109, over Teams ([https://teams.microsoft.com/meet/236575882194707?p=nahhbIvsZOVY36FWQt Teams meeting link]), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Exams:&#039;&#039;  every three weeks on Wednesdays (Sep 2, Sep 23, Oct 14, Nov 4), during lecture time (10-10:50am) for face to face section, available from this time until midnight for the online section.&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; Monday, Dec 7, 10-11:50am. &#039;&#039;(For those in the online section with another class at that time, your exam time will be decided after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Supplemental Instructor/Hours&#039;&#039;&#039; Haley Stewart ([mailto:hstewart10@sycamores.indstate.edu hstewart10@sycamores.indstate.edu]).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; There likely will be graduate assistant help for the course. Details will be posted before when they are known.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - none.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CRN numbers&#039;&#039;&#039; - 53090 for the face to face section, 51027 for the online section.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
We will use selections from the following free online sources.&lt;br /&gt;
* Automate the Boring Stuff with Python (available free at https://automatetheboringstuff.com/2e/). We use the 2nd edition of the book (not the latest, which puts the topics in a different order than we will follow).&lt;br /&gt;
* [https://www.khanacademy.org/computing/ap-computer-science-principles Khan Academy AP CS Principles], in particular unit 1 digital information and unit 4 algorithms.&lt;br /&gt;
* Additional online sources as needed.&lt;br /&gt;
* [https://docs.google.com/presentation/d/1ccy6CXrdP9415bDEbzcI773cyDNI7p3rr3yA76QmgtQ/edit#slide=id.g877391eabf_0_116 turtle graphics]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs151/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~cs151/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technology Requirements&#039;&#039;&#039;&lt;br /&gt;
* Desktop or laptop computer (Windows, Mac OS, Linux, or Chrome OS) with the ability to save files and install programs.&lt;br /&gt;
* Your ISU account, to access Canvas and course notes.&lt;br /&gt;
* Free programs you will install: https://www.python.org/downloads/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Programming practice&#039;&#039;&#039; Challenge problems...&lt;br /&gt;
* [https://leetcode.com/explore/learn/card/the-leetcode-beginners-guide/692/challenge-problems/4421/ LeetCode beginning problems]&lt;br /&gt;
* [https://open.kattis.com/problems?f_language=-1&amp;amp;show_more_filters=on&amp;amp;f_min_difficulty=&amp;amp;f_max_difficulty=2&amp;amp;order=difficulty_data Open Kattis problems]&lt;br /&gt;
&lt;br /&gt;
=Supplemental Instruction=&lt;br /&gt;
This course uses a supplemental instructor (SI) to provide extra sessions to help students who can use additional instruction beyond the regular lecture hours. The SI is a student who previously took the course and did well, and who works closely with the instructor to help students. SI sessions review content from lecture and what is needed for homework assignments. The SI is part of the course in Canvas so you can communicate with them that way if you like.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Core concepts that are foundational in computer science, including programming, use of computers for dealing with files and programs, how data is stored, number systems. Focus on building skills needed for programming and further study of computer science, and intermediate mastery of a particular programming language.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weeks 1-6&#039;&#039;&#039;&lt;br /&gt;
* Setup accounts &lt;br /&gt;
* Intro to Linux &lt;br /&gt;
* Variables &lt;br /&gt;
* I/O &lt;br /&gt;
* Flow Control &lt;br /&gt;
* If-statements &lt;br /&gt;
* Turtle&lt;br /&gt;
* Loops &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weeks 7-14&#039;&#039;&#039;&lt;br /&gt;
* Functions &lt;br /&gt;
* Chapter 4 - Lists &lt;br /&gt;
* Chapter 5 - Collections &lt;br /&gt;
* Chapter 6 - Strings &lt;br /&gt;
* Bits, Bytes, Base and Logic &lt;br /&gt;
* Intro to algorithms &lt;br /&gt;
* Chapter 9 &amp;amp; 10 (Files) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Week 15-16&#039;&#039;&#039;&lt;br /&gt;
* Final project and interviews &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
* Able to use Linux systems and terminal - managing files, running code, using utility programs. &lt;br /&gt;
* Basic mastery of core programming concepts - data types, conditionals and loops, Boolean logic, functions, string operations, reading and writing files. In particular, &lt;br /&gt;
* Can take a specification and produce code implementing it. &lt;br /&gt;
* Can take code and &amp;quot;play computer&amp;quot; to determine the precise results of running the code on a given input. &lt;br /&gt;
* Can take a partially complete program and specification for how it should work, and complete it. &lt;br /&gt;
* Can take a program with syntax or logical errors and fix the errors. &lt;br /&gt;
* Understanding of good coding style and able to practice good coding style - use of functions to avoid redundant code, whitespace formatting, variable and function names, comments. &lt;br /&gt;
* Understanding of base systems, including ability to convert between binary, hex, octal, and decimal. &lt;br /&gt;
* Understanding of and ability to explain different file types - text versus binary. &lt;br /&gt;
* Able to read and write data with programs, including parsing simple file formats (e.g., csv). &lt;br /&gt;
* Understanding of sorting algorithms - able to &amp;quot;play computer&amp;quot; to execute sorting algorithms that were covered in class on small test cases.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Procedures&amp;diff=900</id>
		<title>Procedures</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Procedures&amp;diff=900"/>
		<updated>2026-08-18T12:16:02Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Canvas - Merge/Combine Sections */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=For Faculty and GAs=&lt;br /&gt;
The items in this section are related to managing courses, etc. for faculty and GAs.  For CS faculty and administrative assistant, the following is the link to the shared OneDriver folder with files related to CS students and faculty: [https://cs.indstate.edu/CS-files CS Files OneDrive Folder]&lt;br /&gt;
&lt;br /&gt;
==Entering Grades and Attendance==&lt;br /&gt;
Note that the deadlines for entering grades and attendance are &#039;&#039;&#039;hard&#039;&#039;&#039; deadlines. It is not possible to submit these late. You 100% need to have these done on time, since this is very important to the administration (for purposes of federal reporting, etc.).&lt;br /&gt;
&lt;br /&gt;
===3 Week Attendance===&lt;br /&gt;
The instructor of record is required to enter 3 week attendance to the university. You get to this by doing - &lt;br /&gt;
* ISU portal, then Faculty Self Service, then Reporting Services, then Attendance Reporting, then select the term, then select each course.&lt;br /&gt;
* If it is showing the wrong term, then click on Attendance Reporting Worksheet at the bottom, then click on Select Term, and select the correct term, and then go back to click on Attendance Reporting again from the Faculty Self Service.&lt;br /&gt;
&lt;br /&gt;
You enter &amp;quot;Attended&amp;quot; if the student has participated in any way in the course. The fastest way to do this is to select Attended for everyone by repeatedly typing &amp;quot;tab tab a, tab tab a, tab tab a, ...&amp;quot; and then going back to change any that never attended. &lt;br /&gt;
&lt;br /&gt;
For students who have dropped the course, they do not show up in the gradebook in Canvas, but they do show up under People. So, in Canvas, click on People on the left hand side, and then click on the student. If you do not see People as an option on the left, then go to the Settings for the course, and Navigation, and set People so you can see it.&lt;br /&gt;
&lt;br /&gt;
This must normally be done during the 4th week of classes and by 4pm on the Friday of the 4th week. It is not possible to submit attendance after that time, so this is a hard deadline.&lt;br /&gt;
&lt;br /&gt;
===Interim Grades===&lt;br /&gt;
Interim grades are entered in a similar way to attendance. This is after the 6th week of class, and is only for undergraduate courses. You can decide how exactly you will calculate the interim grades, you just need to let the students know. It is good if it is a best guess of what their grade would be in the term ended now, but this is not required. &lt;br /&gt;
&lt;br /&gt;
===Final Grades===&lt;br /&gt;
Final grades are entered in a similar way to attendance. These are due by noon on the Tuesday after final exams.&lt;br /&gt;
&lt;br /&gt;
==Graduate Admissions==&lt;br /&gt;
===Entering Decisions===&lt;br /&gt;
Entering admissions decisions (for faculty member in charge of this).  Note that you will need to choose an advisor for the student and need that advisor&#039;s id #.  Note also that you need to know the student&#039;s undergraduate GPA.&lt;br /&gt;
* Start at: https://apply.indstate.edu/manage/&lt;br /&gt;
* Hover over icon that looks like a document with a bell, click on Slate Reader.&lt;br /&gt;
* Click on Queue on the left, select the applicant you want to put a decision for.&lt;br /&gt;
* Once that person is selected, click on &amp;quot;Review Form / Send to Bin&amp;quot; in the bottom right.&lt;br /&gt;
* Put in the decision and click through the form.  Note that after you have entered the decision, you won&#039;t see this applicant in Slate anymore.&lt;br /&gt;
&lt;br /&gt;
===Applicant Data===&lt;br /&gt;
* Undergraduate GPA - can be found in Banner with SHATERM (for those who went to ISU as an undergrad) or SOAPCOQ (for those who were undergrads at a different university).&lt;br /&gt;
* General application information - Banner screen SAAADMS.&lt;br /&gt;
&lt;br /&gt;
==GAs - Administrative Things ==&lt;br /&gt;
&#039;&#039;&#039;Kronos&#039;&#039;&#039; - &lt;br /&gt;
GA time should be reported in Kronos.  There is information about how to do this in the grad school&#039;s GA orientation. The departmental staff person who signs off on your time is [https://www.indstate.edu/faculty-staff/jessica-markle Jessica Markle].  You should normally report 20 hours worked, and make sure this is entered by Friday morning by the end of the 2 week pay period.  You should put a repeating calendar reminder for yourself so you will remember to do this on time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Picture&#039;&#039;&#039; - &lt;br /&gt;
A picture of you will be posted to [[ISU CS People]] and posted in the lab.  If you want something other than your ISU id photo used, send it to the CS faculty member who is managing the ISU CS People page.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teams Lab Hour&#039;&#039;&#039; - &lt;br /&gt;
For your lab hours, you will have Teams running so that people can come online for help as well.  Students can check the lab schedule and message you in Teams. You can message back and forth a bit, and if it seems a short online meeting would help then do that.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lab hours&#039;&#039;&#039; - &lt;br /&gt;
Send to the CS faculty member supervising the GAs your preferred hours (e.g., mostly afternoon, or give specifics) and hours you &#039;&#039;cannot&#039;&#039; do (e.g., classes, or recurring appointments).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Programming languages and operating systems&#039;&#039;&#039; - &lt;br /&gt;
Send to the CS faculty member managing the CS wiki which programming languages you can help students with (should include at least C and python since those are covered in your first term in the CS MS), and which operating systems you can help students with (should at least include the OS of your own personal computer(s)).&lt;br /&gt;
&lt;br /&gt;
==FERPA==&lt;br /&gt;
All graduate assistants and faculty members are required to be informed about FERPA (Family Educational Rights and Privacy Act) and agree to abide by it. This basically entails keeping all information about students (their grades, which courses they are in, etc.) private and not disclosing to anyone else (e.g., including their family members, unless the student has followed the process to grant anyone else access). &lt;br /&gt;
&lt;br /&gt;
To indicate your agreement, do the following: ISU portal / Employee self service / FERPA Acknowledgement, and then click the check box that you agree and Submit.&lt;br /&gt;
&lt;br /&gt;
==Course Setup, Jeff Kinne==&lt;br /&gt;
Some notes on how Jeff Kinne sets up his most of his courses...&lt;br /&gt;
* Merge sections: If there are multiple sections of the course, merge them in Canvas (see https://cs.indstate.edu/web/index.php/Procedures#Canvas_-_Merge.2FCombine_Sections).&lt;br /&gt;
* Syllabus/Course Schedule: Use whatever you like (document, webpage, CS wiki) to make the course schedule/syllabus. You either upload it into Canvas, or put a link in Canvas to the syllabus. You can use someone else&#039;s previous syllabus as a starting point (so it contains all of the required items in it).&lt;br /&gt;
** If you have a website for the course schedule, then you can have this embedded in Canvas. In Canvas, click on the Course Schedule, then click the right button to edit html. Then you put the link in an iframe tag, like the following. Note that if using a CS wiki page, the extra &amp;quot;?action=render&amp;quot; will make it show it doesn&#039;t show the extra left sidebar inside Canvas.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;iframe title=&amp;quot;Embedded Content&amp;quot; src=&amp;quot;https://cs.indstate.edu/web/index.php/CS_151_Fall_2026?action=render&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;500&amp;quot; loading=&amp;quot;lazy&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Teams lectures: Make a Teams meeting for the course, make it repeat each week for the right days/times for the class, and include the link to the meeting in the course schedule. For each lecture, remember to share screen, and start recording. The recordings will show up in the meeting chat after the meeting is over.&lt;br /&gt;
* Drawing: In the CS classrooms, there are drawing tablets that can be used to draw on the screen.&lt;br /&gt;
* Powerpoint notes: Start a new powerpoint presentation for each week of the class, named &amp;quot;Week __ - main topic&amp;quot; (e.g., Week 01 - Linux and Python getting started). Share your screen, and the powerpoint slides are what everyone sees. In the presentation for the week, put more details on announcements as needed. Use the presentation as the &amp;quot;board&amp;quot; for the lecture. You can type as you would write on the board. You can use the drawing tablet to draw (click on Draw at the top) things (e.g., math, data structures, whatever you would draw on a board). You can also put hints on assignments, solutions to assignments, anything that would go on the board. Try to keep the presentation notes organized with headings that make sense.&lt;br /&gt;
* Announcements: Each day there is a lecture, make a new announcement entry for the day in Canvas (e.g., Jan 13 class) with bullet points of announcements (upcoming assignments, things that have been graded recently, brief description of what the lecture plan is for the day, anything else that is important to keep in mind). Set the date for the announcement in the future if you want to type in notes that aren&#039;t available to the students yet, and then clear the date once class is over so students will be able to see the announcement (and probably get an email with the announcement, depending on their settings).&lt;br /&gt;
* Class documents: Make a OneDrive folder that you will put files into for the class. Keep the powerpoint slides here, and any other files you might want to share with the students. Make settings so the folder has read access for anyone at ISU and publish the link in the syllabus, so students can get back to these files if they want to.&lt;br /&gt;
* Programming assignments: Either use the handin system on the CS server for assignments (see [[Handin]] and https://cs.indstate.edu/web/index.php/Procedures#Handin_and_Class_accounts), or you can make the assignments in Canvas and have them turn in the assignments there (you can download a zip of all of the submitted files from all of the students).&lt;br /&gt;
* Math-ish assignments: Have them handed in with Canvas (so you don&#039;t have to deal with papers). Note that for most file types that they would hand in, you can highlight/draw on/make comments on their submitted files (may be easier/faster than typing in comments).&lt;br /&gt;
* Grading: All items that have grades should be in Canvas. You can use something else to have the assignment details, but the grades should be put into Canvas. After grading something, update the assignment information in Canvas to have some notes on what you took off for (e.g., -1 for no name in file, -10 program doesn&#039;t run, etc.). Canvas does not give a lot of options in how to calculate final grades. You can have grade categories that get a certain percentage of the total (e.g., Exams worth 50%), and that&#039;s it. Within a grade category it just adds up the total points, so you have to pick the number of points for assignments, quizzes, etc. so that the breakdown is about right.&lt;br /&gt;
* CS server accounts: See [[CS Accounts and CS Lab Computers]].&lt;br /&gt;
* Quizzes and exams: See https://cs.indstate.edu/web/index.php/Jeff_Kinne_Course_Policies#Quizzes&lt;br /&gt;
* Attendance: I record attendance but don&#039;t count it as any points. I tell the students that I am taking attendance, and I put this into Canvas (an assignment that is worth 0 points) every once in a while. If the students know that I am taking attendance, some are more likely to show up.&lt;br /&gt;
&lt;br /&gt;
==Class Picture Roster==&lt;br /&gt;
For an instructor to get pictures of students in their classes (to help remember names), you can view this in Canvas. Go to the course, then People, then click on &amp;quot;Photo Roster&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Lockdown Browser==&lt;br /&gt;
To require the lockdown browser for a quiz or exam in Canvas, you need to do this...&lt;br /&gt;
* Go to the course in Canvas, then Settings, then Navigation. Find Lockdown Browser in the list, and drag it to the ones that are visible to students. Save.&lt;br /&gt;
* On the left, you should now see Lockdown Browser in the menu on the left. Click on it. Then you can click the settings for each quiz or exam.&lt;br /&gt;
&lt;br /&gt;
==Textbook Adoptions==&lt;br /&gt;
Instructors are supposed to indicate to the book store what materials are required (i.e., textbook) or if none are required.  You get to this by logging into Canvas, and clicking on the &amp;quot;My Materials&amp;quot; icon on the bottom left. You may need to allow the popup that will open, and once it is open you may need to select the term.&lt;br /&gt;
&lt;br /&gt;
==Canvas - Merge/Combine Sections==&lt;br /&gt;
The steps are outlined here: https://indstate.teamdynamix.com/TDClient/1851/Portal/KB/ArticleDet?ID=139949&lt;br /&gt;
&lt;br /&gt;
If that does not work, then try this instead: https://community.instructure.com/en/kb/articles/660764-how-do-i-cross-list-a-section-in-a-course-as-an-instructor&lt;br /&gt;
&lt;br /&gt;
==Canvas - Creating MS Teams Team==&lt;br /&gt;
To create a MS Teams team for a course, do the following.  Note that the team will automatically contain all of the students, so you don&#039;t need to worry about adding students to the team.  If you are merging multiple sections, you should do that first before enabling the team.&lt;br /&gt;
* In the canvas site for the course, click Settings on the left menu.&lt;br /&gt;
* Click Integrations on the tab options on the top.&lt;br /&gt;
* Under Microsoft Sync, enable the push button and then click the Sync Now button.&lt;br /&gt;
&lt;br /&gt;
==Canvas - Importing==&lt;br /&gt;
To import course content, you go to the course you want to import into, click Settings at the bottom of the menu on the left, then Import Course Content on the right.&lt;br /&gt;
&lt;br /&gt;
==Canvas - Adding People==&lt;br /&gt;
Note that the +People button to add people to a course may be greyed out if it is past the end of the course&#039;s term. To be able to add someone, you need to go to the Settings and set it so the end of availability for the courses is in the future, and after adding a person you can then change it back to how it was.&lt;br /&gt;
&lt;br /&gt;
==Canvas - Email the class==&lt;br /&gt;
From canvas, click the Inbox icon on the left (that looks kind of like a printer), then click the icon that looks like a pencil for writing a new message.  From there it&#039;s relatively clear.  &lt;br /&gt;
&lt;br /&gt;
Note that if you have cross-listed sections (merged) this is likely the easiest way to write a message to the whole class.&lt;br /&gt;
&lt;br /&gt;
==Canvas - Let Students View Roster==&lt;br /&gt;
The roster in Canvas is under the &amp;quot;People&amp;quot; link on the left. By default this is not visible to students.  So you need to go to Settings, then Navigation, and drag People up to the part top area where the tools are that are visible to students.&lt;br /&gt;
&lt;br /&gt;
==Student Course Evaluations==&lt;br /&gt;
Student end of course evaluations are available for students to complete at the end of the term. The deadline for students is the last Friday of classes (before exam week). Faculty will be able to see them after final grades are turned in (after the Tuesday after exam week). For faculty to see the evaluations, go to the ISU Portal, then open Faculty Activity Database (use the search, or click around on the menu on the left), then click on Course Evaluations &amp;amp; Surveys.&lt;br /&gt;
&lt;br /&gt;
==TC 307, TC 308 - CS room setup==&lt;br /&gt;
To connect your laptop or use the CS system that is at the sympodium, do the following.&lt;br /&gt;
* In TC 307 and TC 308, press the On button on the podium, and press the PC button on the podium.&lt;br /&gt;
* For CS system, set the KVM switch to 1.&lt;br /&gt;
* For laptop use, set the KVM switch to 2.  You should plug in the usb-c cable coming as the output from the KVM switch into your laptop.  Depending on your laptop connections, you might need to unplug the HDMI USB cables from the usb-c dongle and plug the HDMI and USB cables directly into your laptop.&lt;br /&gt;
* Once things are going through the projector properly, check the audio.  You may need to adjust the volume knob on the top of the podium.&lt;br /&gt;
* You should also confirm that your microphone is working.&lt;br /&gt;
&lt;br /&gt;
If the connection is not working, some troubleshooting steps that sometimes work.&lt;br /&gt;
* Unplug each cable going into the KVM switch and plug back in.&lt;br /&gt;
* Unplug HDMI cables going into the wall and plug back in.&lt;br /&gt;
* Sometimes, powering off the entire podium and powering it on again is needed.  Note, though, that this also powers off the CS system in the podium, so make sure it comes back on.&lt;br /&gt;
&lt;br /&gt;
==Course Websites - CS Wiki==&lt;br /&gt;
If you want to use the CS wiki for a course website, you can pick a recent course that has used it and copy/paste the source code. You would need an account on the CS wiki. Write to the CS sys admin to get an account.&lt;br /&gt;
&lt;br /&gt;
==Course Websites - OLD==&lt;br /&gt;
Note - this maybe/probably still works, but has not been used by the CS sys admin in a while. So if you want to use this, you may need some assistance if it doesn&#039;t seem to be working.&lt;br /&gt;
&lt;br /&gt;
Using Steve Baker&#039;s course website system (for faculty) - &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/public_html&lt;br /&gt;
mkdir csXYZ&lt;br /&gt;
cd csXYZ&lt;br /&gt;
cp -R ~sbaker/public_html/cst/* .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then edit the files in ~/public_html/csXYZ. &lt;br /&gt;
&lt;br /&gt;
Some notes...&lt;br /&gt;
* The information about the course will be in ~/public_html/csXYZ/config.json.  You edit that file and make changes to individualize it to your course.&lt;br /&gt;
* This file is a json file - contains a javascript dictionary that contains all of the course information.&lt;br /&gt;
* Note that if you have syntax errors in config.json, the webpage won&#039;t render properly.&lt;br /&gt;
* config.json can have multiline strings, newlines _do not_ need to be escaped (a local modification to the JSON5 interpreter), but may be escaped with a backslash \, like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;courseDesc&amp;quot; : &amp;quot;This is a description\&lt;br /&gt;
of the course.  Is it not\&lt;br /&gt;
wonderful?&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Note - strings are interpreted with [https://github.com/erusev/parsedown parsedown markdown] which seems to follow the syntax of [https://daringfireball.net/projects/markdown/basics this], see [https://parsedown.org/tests/ parsedown tests] for examples of each supported markdown feature, the file as a whole is [https://json5.org/ JSON5].  Note that JSON5 does allow some things that JSON does not.&lt;br /&gt;
* The config.json file can have C style multi-line comments as well.&lt;br /&gt;
* The config can be validated on the CS server using the command &#039;&#039;&#039;&#039;json5 -v config.json&#039;&#039;&#039;&#039;.  Note that un-escaped newlines in strings will cause it to fail validation.&lt;br /&gt;
&lt;br /&gt;
== CS Online Teaching - OLD ==&lt;br /&gt;
Proposal for minimum standards and requirements for CS online courses (from perhaps 2020 or so).&lt;br /&gt;
&lt;br /&gt;
# Oversite - Include another CS faculty member in the Canvas site and any other systems, as a student.&lt;br /&gt;
# Email - Reply to emails within 24 hours during the work week, within 48 hours otherwise.&lt;br /&gt;
# Discussion - Use some discussion system where students can post questions, answer each other’s questions, and the instructor can do the same.  This could be in the Canvas course, or a Teams group for the course.&lt;br /&gt;
# Lecture content - lecture content (asynchronous videos and/or synchronous) must be at least half as many hours as the total # of lecture-credit-hours (1/2 of 45, for a 3 credit hour course).&lt;br /&gt;
# Assignments - assignments are well documented in text, and proper solutions and hints are demo’ed (either by a video demo, good powerpoint, etc.).&lt;br /&gt;
# Final exam - in Lockdown Browser.&lt;br /&gt;
# Phone/Teams - talk on the phone/teams/etc. with each student at least once, early in the semester.&lt;br /&gt;
# Content and assignments - cover the same content and use the same types of assignments as the face-to-face version of the course.&lt;br /&gt;
# Regular schedule - decide during the first week of classes what the regular schedule will be for the course and stick with it.  Preferred - pick two days per week when assignments can be due, and give at least 48 hours notice before any due date.  Preferred - pick a few different times per week to hold live-chat office hours (using some live-text-chat system).&lt;br /&gt;
# Absence - notify students and department when you will be absent from the normal course schedule (not available for email, not delivering content on normal schedule, etc.).&lt;br /&gt;
# Grading turnaround - items graded within 1 week of due date.&lt;br /&gt;
# CS policies - abide by all standard CS course policies&lt;br /&gt;
# Abide by university guidelines&lt;br /&gt;
&lt;br /&gt;
=== The following are suggestions from students ===&lt;br /&gt;
# Keep videos 20 minutes or shorter&lt;br /&gt;
# Make sure students have a way to interact with each other and instructor.  Make it not for many points.&lt;br /&gt;
# Keep regular assignments to keep students engaged and working on the course.&lt;br /&gt;
# Have enough videos and/or simulation/demos since most people are mainly visual learners.&lt;br /&gt;
&lt;br /&gt;
=== Suggestions from someone who has taught online at other universities ===&lt;br /&gt;
# Consistency - types of assignments, lecture content, off-line information, short web casts are the best&lt;br /&gt;
# 8 weeks or 16 or something else - 8 weeks can work, more pressure to stay on track&lt;br /&gt;
# Cheating - usual things, also can do live presentations, narrated powerpoints&lt;br /&gt;
# Training for faculty - similar to our OICC, not quite as heavyweight, have a peer review / mentor helping with first time doing one, require faculty to use each of the possible options so they know how to do it&lt;br /&gt;
# Training for students - yes for how to navigate courses, use the system, etc.&lt;br /&gt;
# Standards - actively taking care of the course (answering questions, etc.) at least 4 out of 6 days, peer review is important&lt;br /&gt;
# Requiring attendance at live sessions - could offer to let students who do this not be required to do discussion posts, etc.&lt;br /&gt;
# Hints/tips - due dates on Sunday/Saturday for flexibility, use group work, ability to get asynchronous help is very important, early assignments to get everyone on track&lt;br /&gt;
&lt;br /&gt;
== Syllabi / Course Schedule ==&lt;br /&gt;
The following link was at one point the standard template used for the syllabus for CS courses - https://docs.google.com/document/d/1cqXZZp0JOg0FOlGOBpMhffbDMiWBV-hw6VkV2KnwBO4/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
You can see a version that is in the CS wiki that is more recent and has more &amp;quot;required for all ISU courses&amp;quot; that has been added more recently: [[CS 151 Fall 2026]]&lt;br /&gt;
&lt;br /&gt;
==Student information==&lt;br /&gt;
Advisors can do the following for any student (whether it is your advisee or not)...&lt;br /&gt;
* ISU portal, then Faculty Self Service, then Advisor Services, then Advisee Search. Put in the current term and the information you have (id #, name, or email). After you click on a student you can look at their unofficial transcript (and click around for some other information - class schedule, etc.).&lt;br /&gt;
&lt;br /&gt;
Useful banner screens...&lt;br /&gt;
* SHATERM - undergrad GPA (at ISU), course grades, transfer courses&lt;br /&gt;
* SOAPCOQ - undergrad incoming GPA (from outside ISU)&lt;br /&gt;
* SOATEST - test scores (Maple TA, SAT)&lt;br /&gt;
* SPAAPIN - advising pin&lt;br /&gt;
* SAAADMS - student admission information&lt;br /&gt;
* SOAHOLD - information on holds&lt;br /&gt;
&lt;br /&gt;
==Printers and Supplies==&lt;br /&gt;
GAs have a key to the CS work room.  GAs can use the printers, copier/scanner, and supplies in the work room - for your use as students and lab assistants / TAs.  You will be told how to add these to their computers and the code needed for using the copier.  If you notice any supplies being low, let the administrative assistant know.&lt;br /&gt;
&lt;br /&gt;
==Faculty review==&lt;br /&gt;
For full time regular faculty, the college guidelines are here: [https://www.indstate.edu/policy-library/faculty-appointment-promotion-and-tenure-policies university guidelines], [https://www.indstate.edu/technology/sites/technology.indstate.edu/files/COT%20PTE%20Policy%20approved%20by%20COTFC-%2002142018.pdf BCET college guidelines], [https://cs.indstate.edu/info/files/ECET_P_and_T.pdf ECET department P&amp;amp;T guidelines 2018 version], [https://cs.indstate.edu/info/files/ECET%20TE%20DOCUMENT%20%20Approved%204.9.21.pdf ECET department faculty performance evaluation evaluation (triennial evaluation) 2021 version].&lt;br /&gt;
&lt;br /&gt;
= Email Lists =&lt;br /&gt;
See [[Email Lists]].&lt;br /&gt;
&lt;br /&gt;
=Honors Conversions=&lt;br /&gt;
Students in the honors program often decide to do an &amp;quot;honors conversion&amp;quot; for some of the courses in the major. It is up to the instructor and student to agree on an extra project or additional work to be done to count for the conversion.  &lt;br /&gt;
&lt;br /&gt;
One generic plan that can be given is the following: &#039;&#039;A significant project related to course material. This will be agreed upon at the mid-term. Possible options include: paper and presentations on the historical development of BLANK (whatever the course is) with a focus on key figures, paper and presentations highlighting applications of BLANK (whatever the course is) to computer science and beyond, tutorial materials that show how to solve more challenging problems within BLANK (whatever the course is).&#039;&#039;  This is fairly open-ended and has the student making connections between the course and something outside of the course.&lt;br /&gt;
&lt;br /&gt;
Another generic plan is to have the student work on more challenging problems/assignments throughout the semester. Each time there is an assignment for the course, the instructor would give some additional problems/requirements for the honors conversion students. &lt;br /&gt;
&lt;br /&gt;
The instructor also needs to put on the honors conversion form how the project or additional work will be evaluated.  One option is the following: &#039;&#039;The project will be given a letter grade, and the overall course grade given cannot be higher than the grade of the project. The rubric for the project grading will be agreed upon when the particular project is finalized.&#039;&#039; Note that this sets higher than &amp;quot;just&amp;quot; a pass/fail standard for the project, so is likely to provide more motivation to the student.&lt;br /&gt;
&lt;br /&gt;
= Graduate admissions =&lt;br /&gt;
A few times during the semester, CS graduate coordinator should write to all applicants in the admissions spreadsheet, and let them know what their status is (some do not know their application is missing something).  You can use the “MS Application Status” message below.  Applicant status comes to the department automatically once per week.  &lt;br /&gt;
&lt;br /&gt;
Requests from applicants.&lt;br /&gt;
* Change of term requests&lt;br /&gt;
** If more than one year since original application, they need to create a new application but should &#039;&#039;not&#039;&#039; be charged an application fee a second time.&lt;br /&gt;
** Within one calendar year: if referred application then department can update term, if admitted or incomplete application then department asks admissions office to update the term.&lt;br /&gt;
* Unofficial transcripts&lt;br /&gt;
** Unofficial transcripts can be used for international students for their application, but they also need to have official transcripts sent.  For domestic students, only official transcripts will be accepted.&lt;br /&gt;
** Test scores - only official test score reports will be accepted, these need to be sent directly from the testing company.&lt;br /&gt;
&lt;br /&gt;
= Graduate student probation and dismissals  =&lt;br /&gt;
Graduate students with below 3.0 GPA are put on probation and by default retained.  Having below 3.0 GPA for a second semester in a row by default results in a dismissal.  Students on the dismissal list can be retained if the department recommends this.  First semester students with below 3.0 GPA after the first semester can be dismissed if the department recommends this.  The dean of the graduate school writes with a probation and dismissal list in the week after final grades are due, and the department needs to respond promptly if we want any of the default options changed for any of the students.  Plan on checking email and replying to the dean’s message during the week that final grades are due.&lt;br /&gt;
&lt;br /&gt;
= CS graduate assistants =&lt;br /&gt;
&#039;&#039;Advising current GAs&#039;&#039;   First time GAs should be observed if they are teaching or lecturing.  First time GAs should also have their grading checked if they are grading for the first time.  GAs should be encouraged to observe each other, and check each other’s grading, and offer advice to each other.  GAs that are teaching for the first time should be mentored by a regular faculty member.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Beginning of semester meeting&#039;&#039;   The faculty member supervising the GAs normally meets with them as a group before or near the beginning of the semester to discuss expectations, answer questions, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Weekly meeting&#039;&#039;   The supervisor of the GAs can hold a brief weekly meeting with the GAs during the first part of the semester to make sure everyone is doing what they’re supposed to and to answer questions.  GAs should look at all the information linked off the CS homepage.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Website&#039;&#039;  One of the GAs can be chosen to make sure information on the website is current and get the GA schedule into the calendar that shows on the CS homepage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Other GA duties&#039;&#039;  Note - https://cs.indstate.edu/web/index.php/Unix_Lab_and_Help#Lab_Assistant_Duties&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Choosing GAs&#039;&#039;  See [[Graduate_Admissions#Assistantships_and_Funding|Assistantships and Funding]] for deadlines and discussion.&lt;br /&gt;
&lt;br /&gt;
= Transfer credit =&lt;br /&gt;
See [[Undergraduate Transfer Credit]] and [[Graduate Transfer Credit]].&lt;br /&gt;
&lt;br /&gt;
= Academic Misconduct =&lt;br /&gt;
See [[Policies]].  For any cheating or plagiarism, the case should be discussed with the CS faculty member that deals with academic misconduct.  This should normally done BEFORE discussing with the student or notifying the student there is a problem.  The faculty member gives advice on how to deal with the situation and is a second opinion to confirm that the activity is indeed cheating/plagiarism.&lt;br /&gt;
&lt;br /&gt;
= Assessment =&lt;br /&gt;
For undergraduate students, they are evaluated in ECT 437 and ECT 438. They also complete an exit survey in these courses.&lt;br /&gt;
&lt;br /&gt;
See also [[CS Program Assessment]].&lt;br /&gt;
&lt;br /&gt;
= Email Messages =&lt;br /&gt;
&lt;br /&gt;
The following are templates for email messages to send for various things.&lt;br /&gt;
&lt;br /&gt;
==MS Application Status==&lt;br /&gt;
&lt;br /&gt;
Subject: Status - Application to CS MS program at Indiana State University&lt;br /&gt;
&lt;br /&gt;
Body: &lt;br /&gt;
&lt;br /&gt;
I am writing to let you know the status of your application to the CS MS program at Indiana State University.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For Incomplete Application, use the following.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Your application status is: Incomplete Application&lt;br /&gt;
&lt;br /&gt;
See https://cs.indstate.edu/web/index.php/Graduate_Admissions#Applying for what this status means.  Note that our normal application deadline for the spring is Nov 15 and for the fall is June 15.  Our normal deadlines for consideration for department assistantship positions is March 15 for fall intake and Oct 15 for spring intake.  For all deadlines, a complete application and everything we have asked for should be in before the deadline.  &lt;br /&gt;
&lt;br /&gt;
If you have any questions, feel free to be in touch.  If you have a question about what is missing in your application, please first check your online application, and if you are still unsure then write to admissions@indstate.edu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For Admitted, use the following.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Reply to welcome email, and use the following for the email body.&lt;br /&gt;
&lt;br /&gt;
Cheers again to those admitted to the CS MS program to start in the fall.&lt;br /&gt;
&lt;br /&gt;
I am writing to ask that you please register for courses if you plan to start in the fall (if you have not already). If something changes you can drop the courses before the term starts and will not be charged. It looks like we may have a larger incoming group than normal, so I would like people to get registered so we can plan accordingly.&lt;br /&gt;
&lt;br /&gt;
Please see the links below about getting registered for courses.  For those of you starting full time, you should be registering for CS 501, CS 600, either AI 601 or AI 602 or another CS 500/600 level course that you feel prepared for - unless you have been given approval otherwise from your advisor (either Dr. Rafiey or Dr. Abhyankar). If you have any questions, you can be in touch with your advisor or myself about courses.&lt;br /&gt;
&lt;br /&gt;
==MS New Admits - Welcome, etc.==&lt;br /&gt;
&lt;br /&gt;
Subject: Indiana State University Computer Science - Welcome!&lt;br /&gt;
&lt;br /&gt;
Cheers.  You are receiving this message because you have been admitted to the CS MS at Indiana State University.  Information on signing up for courses is below.  See also the three linked webpages which contain answers to many of your questions.  Please read them all before replying to ask any questions.&lt;br /&gt;
&lt;br /&gt;
Make sure to start making arrangements for where you will live in Terre Haute.  My only recommendation in that regard is to not live in university housing unless you will have a roommate - it is pretty expensive.  &lt;br /&gt;
&lt;br /&gt;
Note also that the registration system opens for registering for courses in early November for the spring classes and early April for the summer and fall classes.&lt;br /&gt;
&lt;br /&gt;
Best regards,&lt;br /&gt;
&#039;&#039;signature...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please begin by reading the following pages completely - &lt;br /&gt;
  [[For New Graduate Students]]&lt;br /&gt;
  [[CS Programs]]&lt;br /&gt;
  [[Graduate Advising]]&lt;br /&gt;
&lt;br /&gt;
Note that the CS MS is updated starting Fall 2026 so that concentrations are no longer required. You will not need to pick a concentration. Stay tuned for information about the new requirements in June.&lt;br /&gt;
&lt;br /&gt;
Follow the instructions on the graduates-new page linked above to get your ISU id and sign up for courses.  Note that you can only sign up for 500 and 600 level courses.  &lt;br /&gt;
&lt;br /&gt;
Note that most 500 level courses (except CS 500) have prerequisites, so the system will not let you register.  Please go ahead and register for the courses you can, and then write an email to me with your list of courses you would like and which you need a prerequisite override for.  Include your id number in the email. &lt;br /&gt;
&lt;br /&gt;
Note that adding/dropping classes on or after the first day of classes results in a fee.&lt;br /&gt;
&lt;br /&gt;
==MS Application - Rejection==&lt;br /&gt;
Subject: your application - Indiana State University Computer Science&lt;br /&gt;
&lt;br /&gt;
Hello.  I am writing to inform you of the decision on your application to the MS in Computer Science at Indiana State University.  I am sorry to inform you that your application is being declined.  &lt;br /&gt;
&lt;br /&gt;
Please note that you are welcome to apply for a future term if you work on your basic programming skills and data structures &amp;amp; algorithms.  If you have not done so, you should check the sample questions at the end of the interview evaluation form linked from the Interview section of [[Graduate Admissions]].  If you work on solving these questions and would like to know if your solutions are correct please be in touch.&lt;br /&gt;
&lt;br /&gt;
We wish you the best, and feel free to be in touch if you have any remaining questions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Salutation&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Course_Scheduling_Announcements&amp;diff=899</id>
		<title>Course Scheduling Announcements</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Course_Scheduling_Announcements&amp;diff=899"/>
		<updated>2026-08-14T15:22:47Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* 2026-2027 Academic Year */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains announcements of changes from the normal scheduling of courses.&lt;br /&gt;
&lt;br /&gt;
Note that when a course substitution needs to be made because a regularly offered course is not offered, you should choose a CS course that is at the same or higher level.&lt;br /&gt;
&lt;br /&gt;
=2026-2027 Academic Year=&lt;br /&gt;
* 8/14/2026 - CS 479/579 is normally offered in the fall but is being cancelled for this fall (due to a staffing shortage and low enrollment in the course).&lt;br /&gt;
* 8/14/2026 - Students who need to take CS 331 this term should take ECT 301 instead. They are very similar courses, and MySAM will be fixed so that it shows ECT 301 as completing the requirement.&lt;br /&gt;
* 8/14/2026 - AI 602 is being moved to the second 8 weeks of the semester.&lt;br /&gt;
* 8/3/2026 - Students were informed earlier in the spring that once again CS 210 is not being offered, and that students who need it should register for ECT 373 instead.&lt;br /&gt;
* 5/14/2026 - CS faculty and courses will remain in Root Hall for fall 2026, and will be moving back to TC for spring 2027.&lt;br /&gt;
* 5/14/2026 - CS 600 is being added to the schedule so new CS MS students can take it. New CS MS students should take CS 600, CS 501 (if they haven&#039;t taken CS 401 already), and pick between AI 601, AI 602, or another CS 500/600 level course they are prepared for.&lt;br /&gt;
* 5/14/2026 - Two new courses will be offered in the fall, AI 601 Ethics of AI, and AI 602 Prompt Engineering Theory and Application. These have no prereqs and are intended for a general audience. CS student can take them and have them count as electives. See the schedule of classes for more details.&lt;br /&gt;
* 5/14/2026 - CS 617 will not be offered in the fall. Students who need it should register for AI 601 or AI 602 instead. TBD when CS 617 will be offered again.&lt;br /&gt;
&lt;br /&gt;
=2025-2026 Academic Year=&lt;br /&gt;
* 11/30/2025 - CS courses and faculty are moving temporarily to Root Hall for spring and summer 2026. The third floor of TC is getting renovated. CS faculty updated room numbers are at [[ISU CS People]].&lt;br /&gt;
* 11/12/2025 - CS 401, 456, 457, 458 - these all have lab sections that go with them. The prerequisites were updated for the lecture course but were not properly updated for the lab sections. If you are able to register for the lecture course but get a prereq error for the lab course (e.g., you can register for CS 401 but get a prereq error for CS 401L) we will do a prereq override to allow you to register for the lab. You can notify either myself or Emily Miller (if she is one of your advisors), and we will request a prereq override for you. &lt;br /&gt;
* 6/24/2025 - the CS MS is getting updated for the start of the 2026-2027 academic year. Starting in Fall 2026, concentrations will no longer be required. The program requirements will be: Core Courses (9 credit hours - CS 500, CS 501, and CS 600), Culminating experience (3 credit hours - CS 685, CS 695, or CS 699), CS electives (12 credit hours), general elective (3 credit hours in CS, ECT, MATH, BIO, or PHYS). Students will be able to choose electives from their interests, and we will continue to offer courses from across CS, data science, bioinformatics, etc. The total # of credit hours required will be 30 (is 33 currently), and at least 15 credit hours need to be 600 level.&lt;br /&gt;
* 6/2/2025 - CS 210 is being replaced with ECT 373 for the fall term. The content is similar, and ECT 373 will count in place of CS 210. CS BS students in the information science concentration should register for ECT 373 rather than CS 210.&lt;br /&gt;
* 6/2/2025 - CS 500 and CS 600 are being canceled for the fall term. These are normally for new CS MS students. New CS MS students will take CS 501 and choose two other 500/600 level courses. CS faculty will discuss and let you know which ones.&lt;br /&gt;
* 6/2/2025 - CS 602 is being canceled for the fall term. ECT 636 is similar, so students interested in the content should register for ECT 636 instead (and it will count towards the CS MS).&lt;br /&gt;
* 4/4/2025 - Going forward, for CS online courses where there is also a face to face section, we will only allow distance students to register for the distance section. Individual instructors can choose how flexible to be with attendance in these cases, but this makes it so that face to face students are required to take exams and quizzes in person (which we need to help prevent cheating).&lt;br /&gt;
* 4/4/2025 - For those taking ECT 437 (which is replacing CS 499) in the fall, you should register for one of the sections that has Jeff Kinne as instructor.&lt;br /&gt;
* 3/12/2025 - ECT 437 and ECT 438 - note that ECT 437 is offered only in the fall, and ECT 438 is offered only in the spring. For those who graduate in a spring term, you will take ECT 437 in your last fall and ECT 438 in your last spring. For those who graduate in a fall term, you will take ECT 437 in your second last fall, and ECT 438 in your last spring. For 2025-2026, the following should take ECT 437 in the fall: anyone graduating in spring 2026 or in fall 2026. &lt;br /&gt;
* 3/12/2025 - ECT 437 and ECT 438 are replacing CS 499 for all CS students starting in the fall. Students that started in Fall 2024 or later already had ECT 437 and ECT 438 in their MySAM. Remaining students that still needed to take CS 499 in the fall or spring have now had their MySAM updated to require ECT 437 and ECT 438 instead. Those who needed one more term of CS 499 will take ECT 437 in the fall. Those who needed two terms will take ECT 437 in the fall and ECT 438 in spring 2026.&lt;br /&gt;
&lt;br /&gt;
=2024-2025 Academic Year=&lt;br /&gt;
* 8/18/2024 - Even though many CS courses still have TBA for instructor, they will all run. Faculty have been hired to teach them, they are just in the process of being added. We will also have one of the tenured faculty added to each of these courses, so you have someone to communicate with in the meantime. That should be setup by the end of the first day of classes.&lt;br /&gt;
* 8/13/2024 - For undergrad students in the information science concentration, three of the courses that are required might show up as CS or CSS in your MySAM. These are CS 210, CS 211, and CS 331. If these show up in your MySAM as CSS, then taking the CS version will not make MySAM happy, and we&#039;ll put in a substitution for them. So, take the CS version of the course, and let your advisor know that you&#039;ll need a substitution.&lt;br /&gt;
* 8/9/2024 - The following courses have been changed to be offered during the second 8 weeks of the fall term - CS 401&amp;amp;L, CS 501, CS 602, CS 617.&lt;br /&gt;
* 8/1/2024 - Most CS courses for the coming year will have a face to face section and an online asynchronous section. If the online asynch section is taught by the same faculty member as the face to face section, it is very likely that the faculty member will have the face to face section available to join online synchronously and will record these for those who don&#039;t join live. This is the way most CS courses have been running, but now the online section will not have an official meeting time listed. Each faculty member can decide how they want to handle this.&lt;br /&gt;
&lt;br /&gt;
=2023-2024 Academic Year=&lt;br /&gt;
* CS 600 will be offered every term (previously was fall only) so new CS MS students can take it their first term, including for those entering in the spring.&lt;br /&gt;
* 12/14/2023 - students in the information science concentration, for the courses CS/CSS 210, 211, 331 - make sure to register for the one that shows in your MySAM. They are cross-listed, so it is the same either way, but you need to register for whichever is listed in your MySAM (CSS 211 if it says that, CS 211 if it says that).&lt;br /&gt;
* 11/28/2023 - CS 302 will not be offered in the spring anymore. Students who need to take courses in the fall that require CS 302 as a prereq will be granted prereq overrides to take those courses concurrently. Students taking courses in spring 2025 will not need prereq overrides because they can take CS 302 in the fall.&lt;br /&gt;
* Pending potential changes to the CS major (for students who start in 2024)... Count CS 210/211/331 or CSS 210/211/331 for information science concentration (either one would be fine). To get ready to move CS to the ECET department: information science concentration - CS 101 no longer required, replace CS/CSS 331 with ECT 301; all concentrations - drop CS 499, add ECT 130, 430, 437, 438.&lt;br /&gt;
* 9/25/2023 - 4+1 accelerated BS+MS program for computer science is now in effect. A student in their third last semester of their BS can apply for the CS MS and take a limited number of graduate courses during their senior year in order to potentially finish the CS MS in an additional year at ISU. See here for more details: https://cs.indstate.edu/info/programs.html&lt;br /&gt;
* 9/22/2023 - for students in the information science concentration, when registering for the courses CS 210/211/331 or CSS 210/211/331 you should register for the one that is listed in your MySAM (for most of you, it lists CSS). If you ended up taking the CS counterpart, notify your advisor so they can submit a petition to have MySAM properly count the CS course.&lt;br /&gt;
* 8/3/2023 - there will be many students getting prereq errors due to some courses changing numbers. CS 202 has been changed to CS 302 (Data Structures and Algorithms), and CS 303 has been changed to CS 203 (Discrete Math and COmputing Theory). Any courses that have either of those as prereqs may give prereq errors even when you took them. If you think you are getting a prereq error for either of these even though you did take the course (and got a C or higher), let your advisor know which course you are trying to register for (and your id #, as always).&lt;br /&gt;
&lt;br /&gt;
=2022-2023 Academic Year=&lt;br /&gt;
Dr. Sternfeld is retiring with his last term being Spring 2022. Steve Baker is also leaving ISU. So we will be down from 7 full time CS faculty to 5. We have plans to run a faculty search to replace one or both of them, but for 2022-2023 we need to make do with fewer full time faculty. To make the schedule work we are making the following changes.&lt;br /&gt;
* &#039;&#039;Part time lecturers&#039;&#039; - increase the number of courses taught by part time lecturers. &lt;br /&gt;
* &#039;&#039;Canceling a few courses&#039;&#039; - the following courses would normally be offered but will not be for the upcoming academic year - CS 305 Computer Science Teaching Methods, CS 452/552 Software Engineering, CS 619 Trends in Computer Science, CS 658 Algorithms II, CS 671 Operating Systems II. If your concentration requires any of these courses, please consult your advisor to decide on substitutions.&lt;br /&gt;
&lt;br /&gt;
Changes made after the schedule was originally released...&lt;br /&gt;
* 11/13/2022 - &#039;&#039;&#039;CS 151 Introduction to Computer Science&#039;&#039;&#039; - now has a prereq of B- in CS 101 or passing the CS 151 placement test.  For more, see https://cs.indstate.edu/web/index.php/FAQ#CS_101_versus_CS_151&lt;br /&gt;
* 10/28/2022 - &#039;&#039;&#039;CS 303 Discrete Math and Computing Theory&#039;&#039;&#039; - prereq is being updated to be just CS 151, so CS 303 can be taken along with CS 201 after CS 151.  This will be official for next academic year, and for spring 2023 we will do prereq overrides to allow students to register.  If you want to wait to take CS 303 until when you originally had it planned, that is okay too.&lt;br /&gt;
* 9/23/2022 - Due to a staffing shortage this year, we are &#039;&#039;&#039;canceling&#039;&#039;&#039; the following for the &#039;&#039;&#039;spring&#039;&#039;&#039; term - &#039;&#039;&#039;CS 256 Structured Design&#039;&#039;&#039; and &#039;&#039;&#039;CS 602 Mobile and Cloud Computing&#039;&#039;&#039;.  If you need to take either of these, be in touch with your advisor  to discuss your options.&lt;br /&gt;
* 9/23/2022 - Math &#039;&#039;&#039;will be offering MATH 503 Linear Algebra and Modeling&#039;&#039;&#039; after all in the spring, so data science students who have not taken it should take it. If it is not possible to fit it into your schedule, check with your advisor.&lt;br /&gt;
* 8/1/2022 - A course &#039;&#039;&#039;CS 510 Fast Track Into to Programming&#039;&#039;&#039; has been added to the fall and spring schedule. This is meant for those with little to no previous programming experience, those who want a refresher before taking other CS courses, or those looking to get ready to apply for the CS MS.  See [[CS 510]].&lt;br /&gt;
* 5/20/2022 - It appears that the math department will not be offering &amp;lt;del&amp;gt;MATH 503 Linear Algebra and Modeling for Data Science and&amp;lt;/del&amp;gt; &#039;&#039;&#039;MATH 540 Statistics for Data Science&#039;&#039;&#039; during the next academic year. This is required for the data science concentration. If you are completing the data science concentration you should take CS 600 to use this as a replacement for the course. &lt;br /&gt;
* 4/11/2022 - Changing &#039;&#039;&#039;CS 417 Machine Learning&#039;&#039;&#039; to be in the spring rather than the fall. A section of &#039;&#039;&#039;CS 459 Topics in CS: Big Data / Data Mining&#039;&#039;&#039; is being added to the fall schedule (should show up within a day or so). The prereq for that will be CS 401 and can be used in place of CS 417 if you cannot take CS 417 in the spring; write to the your advisor to ask to be granted an override to register for the course.&lt;br /&gt;
* 4/11/2022 - &#039;&#039;&#039;CS 473/573 Computer Networks&#039;&#039;&#039; in the fall has been changed to be a synchronous online course with meeting day/time of Tuesday 6-8pm.&lt;br /&gt;
&lt;br /&gt;
=2021-2022 Academic Year=&lt;br /&gt;
&#039;&#039;Lab sections&#039;&#039; - New this year, the following courses have required lab sections - CS 401, 456, 457, 458. These are required as co-requisites regardless of what your MySAM says (i.e., your MySAM does not list CS 456L as a requirement, but you need to register for it to take CS 456). These extra lab sections can count as electives of substitutions for those who need 400 level CS credits. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Credit hours&#039;&#039; - A few courses have had their number of credit hours: CS 303 is not 4 hours, CS 499 is now 2 hours. If your catalog year was for the smaller number of hours, then the additional hour can be counted towards electives or substitutions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Courses not offered&#039;&#039; - In order to offer required courses in the revised BS and MS programs every year, the following courses will not be offered for the foreseeable future: CS 420/520 Theory of Computation, CS 421/521 Formal Methods. Current students who have this listed as required should consult with your advisor to decide on substitutions. After substitutions are decided, your advisor will submit a petition so the substituted courses will show up in your MySAM (for undergrads) or plan of study (for grads).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Courses not offered&#039;&#039; - Due to staffing changes this year, the following courses that are required in the CS MS data science concentration are not being offered: Math 503 Linear Algebra and Modeling for Data Science, Math 540 Statistics for Data Science. Consult your advisor to decide on courses to substitute for these. We expect these courses to be offered again in the next academic year.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Courses online&#039;&#039; - CS programs are now offered completely online. For each required course in any of the CS programs, it will be offered at least once per year online. Most courses are offered in hybrid fashion - a combined section that has face to face students in the classroom, online synchronous students participating via Zoom or Teams, and asynchronous online students watching recordings and scheduling meetings as needed. Some courses are offered with a single asynchronous online section where all students participate asynchronously.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Help lab online&#039;&#039; - The CS help lab (aka the Unix Lab) is now available completely online. Lab assistants with hours during the day are in the help lab&lt;br /&gt;
and also available online. There are normally evening hours that are available online only. For more, see [[Labs and Office Hours]]&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Jeff_Kinne&amp;diff=898</id>
		<title>Jeff Kinne</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Jeff_Kinne&amp;diff=898"/>
		<updated>2026-08-14T12:00:22Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Publication list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is maintained by me, Jeff Kinne. I am a professor of computer science at Indiana State University. I have taught just about every CS course that we offer at the BS and MS levels. I was trained in computational complexity (within theoretical computer science) during my PhD studies and continue to be interested in this area. Since maybe 2015 or so, most of my research work has been in bioinformatics. If you want a laundry list of things I have done, you can see my [https://docs.google.com/document/d/1Z5ms6PFZH9H_dUcPF35VNS3u3IYnV2jlxagJVfJ9huE/edit#heading=h.h9dbt25tdl7r C.V.] (aka resume).&lt;br /&gt;
&lt;br /&gt;
==Contact==&lt;br /&gt;
I am currently in the midst of moving from Root Hall to Technology Center at ISU. My email address will not change, and I believe my phone number should stay the same as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Email&#039;&#039;&#039;: [http://mailto:jkinne@indstate.edu jkinne@indstate.edu] (also jkinne@cs.indstate.edu and jeffrey.kinne@indstate.edu all go to the same place).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Phone&#039;&#039;&#039;: office phone - 812-237-3394. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Office&#039;&#039;&#039;: Myers Technology Center (TC), room 301D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Virtual meetings&#039;&#039;&#039;: ISU uses Teams and Zoom. I am happy to meet on other platforms as well (Google meet, WebEx, Skype, etc.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schedule a meeting&#039;&#039;&#039;: https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
Note: I use a separate email account for things not related to ISU and research (e.g., things having to do with my kids&#039; school, scouts, etc.). If you&#039;re not sure what email address to use for me, feel free to use any that you have.&lt;br /&gt;
&lt;br /&gt;
==Recommendations==&lt;br /&gt;
For those current and former CS students who ask me to write a letter of recommendation for you, please send me the following when you ask for this: course(s) that you took with me as instructor (including the term you took it and your final grade), your resume or cv being used to apply, your unofficial transcript(s), anything else you are submitting with your applications (e.g., cover letter), and anything else to jog my memory about you.&lt;br /&gt;
&lt;br /&gt;
Also, if I ask you to schedule a short meeting with me, use my online scheduling link (above) to schedule a 15 minute online meeting. For this meeting I will do a short technical interview with you, so I have more to go on for writing the letter. For the technical interview you can expect questions about data structures and algorithms, programming, and courses you have taken.&lt;br /&gt;
&lt;br /&gt;
==Projects==&lt;br /&gt;
Other than ongoing research projects, a few things I have on my list to do (for courses, or other reasons).&lt;br /&gt;
&lt;br /&gt;
* [https://sycamoresindstate-my.sharepoint.com/:w:/r/personal/jeffrey_kinne_indstate_edu/_layouts/15/Doc.aspx?sourcedoc=%7B6F46EACC-CB89-4A9E-8BD5-823E7040E44E%7D&amp;amp;file=projects%20list.docx&amp;amp;action=default&amp;amp;mobileredirect=true project list] (must be logged in with ISU microsoft account).&lt;br /&gt;
* Past projects - put past small projects together onto github or gitlab.&lt;br /&gt;
&lt;br /&gt;
==Research==&lt;br /&gt;
&#039;&#039;&#039;Author ordering&#039;&#039;&#039; In CS and mathematics, author ordering is normally alphabetical (so you cannot tell who is the primary author just by looking at the author list). In biology / bioinformatics, author ordering is normally in order of who contributed the most - normally the primary author is listed first, and the director of the laboratory that paid for the research is listed last. Many papers published recently have a statement on author contributions (who did what, etc.) at the end of the paper.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Current projects&#039;&#039;&#039; Projects that I am still actively working on from among those listed below include: differential gene expression analysis, transcription factor binding site analysis, and gene expression analysis in cichlids. For other completed projects, there is always the possibility to improve the results or apply techniques to a new setting.&lt;br /&gt;
&lt;br /&gt;
===Posters===&lt;br /&gt;
&#039;&#039;Differential gene expression analysis&#039;&#039; - IAS 2024, &lt;br /&gt;
[https://cs.indstate.edu/info/posters/bd4isu2022-bartlett.pdf 2022 BD4ISU/SURE], &lt;br /&gt;
[https://cs.indstate.edu/info/posters/IAS_Poster-Schwab.pdf 2019 Indiana Academy of Sciences],&lt;br /&gt;
[https://cs.indstate.edu/info/posters/icibm2019-tally-.pdf 2019 ICIBM], &lt;br /&gt;
[https://cs.indstate.edu/info/posters/bd4isu2019-alvarezdubon-kaur.pdf 2019 BD4ISU/SURE],&lt;br /&gt;
[https://cs.indstate.edu/info/posters/bd4isu2018-tally-alvarez.pdf 2018 BD4ISU/SURE],&lt;br /&gt;
[https://cs.indstate.edu/info/posters/surf2018-revesz-knight.pdf 2018 SURF], &lt;br /&gt;
[https://cs.indstate.edu/info/posters/sure2018-williamson.pdf 2018 SURE]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Transcription factor binding site analysis&#039;&#039; - &lt;br /&gt;
[https://cs.indstate.edu/info/posters/bd4isu2022-hoffman.pdf 2022 BD4ISU/SURE], &lt;br /&gt;
[https://cs.indstate.edu/info/posters/bd4isu2019-bennet-bigler.pdf 2019 BD4ISU/SURE]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Transmembrane protein search in prokaryotes&#039;&#039; - &lt;br /&gt;
[https://cs.indstate.edu/info/posters/bd4isu2021-hoffman.pdf 2021 BD4ISU/SURE]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Predicting Drug-Gene Interactions&#039;&#039; -&lt;br /&gt;
[https://cs.indstate.edu/info/posters/bd4isu2020-bennett.pdf 2020 BD4ISU/SURE]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Gene expression analysis in cichlids&#039;&#039; - &lt;br /&gt;
[https://cs.indstate.edu/info/posters/bd4isu2021-gosnell.pdf 2021 BD4ISU/SURE], &lt;br /&gt;
[https://cs.indstate.edu/info/posters/bd4isu2020-gosnell-sagarsee.pdf 2020 BD4ISU/SURE]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;3d printing&#039;&#039; - &lt;br /&gt;
[https://cs.indstate.edu/info/posters/sure2016-golish-watts.pdf 2016 SURE]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Large prime searches&#039;&#039; - &lt;br /&gt;
[https://cs.indstate.edu/info/posters/sure2014-xiang.pdf 2014], &lt;br /&gt;
[https://cs.indstate.edu/info/posters/sure2013-salman-toure.pdf 2013 SURE], &lt;br /&gt;
[https://cs.indstate.edu/info/posters/csui2013-salman-toure.pdf 2013 CSUI]&lt;br /&gt;
&lt;br /&gt;
===Publication list===&lt;br /&gt;
&lt;br /&gt;
Majid Afshar and Jeff Kinne. A Non-Greedy Beam-Search Decision Tree. Proceedings of the 2026 CSCE. To be published in conference proceedings by Springer Nature.&lt;br /&gt;
&lt;br /&gt;
Tally, D.G.; Bombina, P.; Reed, J.; Kinne, J.; Abruzzo, L.V.; Coombes, K.R.; Abrams, Z.B. Clustering Digestive Tract Tumors Using Transcriptomic and Mutation Data. &#039;&#039;Cancers&#039;&#039; &#039;&#039;&#039;2026&#039;&#039;&#039;, 18, 1427. https://doi.org/10.3390/cancers18091427&lt;br /&gt;
&lt;br /&gt;
Isaiah Bartlett, Jeff Kinne, Grace Martin, Kevin Coombes, and Kristopher R. Schwab. A high-throughput gene expression analysis software tool for developmental time series and gene signature analysis of human cardiomyocyte differentiation. F1000 Research, 2024. Under review. [https://f1000research.com/articles/13-1097 full text], [https://gitlab.com/jkinne/devgea software/code]&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight:bold;line-height:1.6;&amp;quot;&amp;gt;Summary:&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Gene expression analysis has become a standard tool used to determine important genes in biological and biomedical studies. Biologists and medical researchers often work together with programmers, data scientists, or statisticians to complete the analysis after sequencing is performed. I have worked with the lab of biologist Dr. Kris Schwab at Indiana State University and Dr. Kevin Coombes of the Augusta University Medical College of Georgia to develop a software tool, the Developmental Gene Expression Analysis (devGEA), that encapsulates our analysis pipeline and can be used by biologists. The tool is written in the R programming language, uses the R shiny UI, and is available as both a stand-alone program and as a web tool. The Schwab lab and other labs at Indiana State University are now using devGEA to help streamline the analysis of gene expression experiments. devGEA performs the main steps of gene expression analysis: data import, filtering, normalization, scaling, statistical modeling and p value computation, clustering, and visualization. devGEA introduces a correlation-based clustering method that is conceptually simpler than other clustering methods and yields results that are easier to interpret. I was the lead programmer for the tool (together with Isaiah Bartlett and other student researchers) and shared with Drs. Schwab and Coombes in the design and analysis.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tara Hoffman, Jeff Kinne, Kyu Hong Cho. Pro-SMP finder-A systematic approach for discovering small membrane proteins in prokaryotes. PLoS One. 2024 Feb 29;19(2):e0299169. [https://dx.plos.org/10.1371/journal.pone.0299169. full text], [https://cs.indstate.edu/pro-smp-finder pipeline].&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight:bold;line-height:1.6;&amp;quot;&amp;gt;Summary:&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Prokaryotic chromosomes contain numerous small open reading frames (ORFs) of less than 200 bases. Since high-throughput proteomics methods often miss proteins containing fewer than 60 amino acids, it is difficult to discern if they encode proteins. Recent studies have revealed that many small proteins are membrane proteins with a single membrane-anchoring α-helix. As membrane anchoring or transmembrane motifs are accurately identifiable with high confidence using computational algorithms like Phobius and TMHMM, small membrane proteins (SMPS) can be predicted with high accuracy. I worked with Dr. Kyu Hong Cho at Indiana State University to create a software pipeline to systematically search for novel putative small membrane proteins in prokaryotic genomes. The pipeline is written in Python and uses previous work (Orfipy, Phobius, and Blast) for key steps in the pipeline. The pipeline is available as a web service and can be downloaded and run locally. Numerous parameters can be chosen depending on the needs of the researcher. This resource aims to assist researchers in identifying new SMPs encoded in microbial genomes of interest. We utilized the pipeline on numerous prokaryotic genomes to survey potential novel small membrane proteins across various species. Our findings indicate that each prokaryote possesses many SMPs, with some identified in the intergenic regions of currently annotated chromosomes. More extensively studied microorganisms, such as Escherichia coli and Bacillus subtilis, have more SMPs identified in their genomes compared to less studied microorganisms, suggesting the possibility of undiscovered SMPs in less studied microorganisms. I oversaw the programming and software development, sharing coding duties with student researcher Tara Hoffman. I shared with Dr. Cho in the overall design.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jeff Kinne, Akbar Rafiey, Arash Rafiey, Mohammad Sorkhpar. Vertex Ordering with Precedence Constraints. In: Fernau, H., Jansen, K. (eds) Fundamentals of Computation Theory. FCT 2023. Lecture Notes in Computer Science, vol 14292. Springer, Cham. [https://doi.org/10.1007/978-3-031-43587-4_22 DOI].&lt;br /&gt;
&lt;br /&gt;
Nick Gabry, Jeff Kinne, and Rusty Gonser. MetaPlex: An Ion Torrent COI metabarcoding workflow and toolkit to increase experimental efficacy and efficiency. [https://doi.org/10.22541/au.166322714.48673632/v1 manuscript], [https://github.com/NGabry/MetaPlex source code].&lt;br /&gt;
&lt;br /&gt;
Timothy J. Divoll, Veronica A. Brown, Jeff Kinne, Gary F. McCracken and Joy M. O&#039;Keefe. Disparities in second-generation DNA metabarcoding results exposed with accessible and repeatable workflows. Molecular Ecology Resources, 2018. [https://onlinelibrary.wiley.com/doi/abs/10.1111/1755-0998.12770 abstract], [https://github.com/tdivoll/Bat-Diet-Metabarcoding source code].&lt;br /&gt;
&lt;br /&gt;
Yongsheng Bai, Jeff Kinne, Lizhong Ding, Ethan Rath, Aaron Cox, Siva Naidu and Youping Deng. Identification of genome-wide non-canonical spliced regions and analysis of biological functions for spliced sequences using Read-Split-Fly. BMC Bioinformatics, 18(Suppl 11):382, 2017.  [https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-017-1801-y full text], [https://docs.google.com/presentation/d/1KtcMnQgTUsoFvKGxOGlOLtWa8Dypkyd7LhuF1K0z4Y0/edit?usp=sharing presentation (for ugrad CS majors)], [https://github.com/kinnejeff/read-split-fly source code], presented at ICIBM 2016.&lt;br /&gt;
&lt;br /&gt;
Yongsheng Bai, Jeff Kinne, Brandon Donham, Feng Jiang, Lizhong Ding, Justin R. Hassler, and Randal J. Kaufman. Read-Split-Run: An improved bioinformatics pipeline for identification of genome-wide non-canonical spliced regions using RNA-Seq data. BMC Genomics 17(Suppl 7):503, 2016. [https://bmcgenomics.biomedcentral.com/articles/10.1186/s12864-016-2896-7 full text],  [https://github.com/xuric/read-split-run source code], presented at ICIBM 2015.&lt;br /&gt;
&lt;br /&gt;
Ruiwen Chen, Valentine Kabanets, and Jeff Kinne. Lower Bounds against Weakly-Uniform Threshold Circuits. In special issue of Algorithmica for invited papers from the the 18th International Computing and Combinatorics Conference (COCOON), Volume 17, issue 1, pages 47-75, 2014, doi:10.1007/s00453-013-9823-y.  [http://cs.indstate.edu/~jkinne/research/CKK.pdf draft PDF], [http://eccc.hpi-web.de/report/2012/007/#revision1 ECCC report].&lt;br /&gt;
&lt;br /&gt;
Jeff Kinne. On TC0 Lower Bounds for the Permanent. In Proceedings of the 18th International Computing and Combinatorics Conference (COCOON), LNCS 7434, pages 420-432, 2012.  [http://cs.indstate.edu/~jkinne/research/perm-tc0.pdf draft PDF], [http://cs.indstate.edu/~jkinne/talks/COCOON2012.pdf presentation].&lt;br /&gt;
&lt;br /&gt;
George Karakostas, Jeff Kinne, Dieter van Melkebeek. On Derandomization and Average-Case Complexity of Monotone Functions. In Theoretical Computer Science, volume 434, pages 35-44, 2012. [http://cs.indstate.edu/~jkinne/research/mon.pdf draft PDF] &lt;br /&gt;
&lt;br /&gt;
Jeff Kinne, Dieter van Melkebeek, and Ronen Shaltiel. Pseudorandom Generators, Typically-Correct Derandomization, and Circuit Lower Bounds. In the special issue of Computational Complexity for selected papers from The 13th International Workshop on Randomization and Computation (RANDOM), Volume 21, number 1, pages 3-61, 2012.  [http://cs.indstate.edu/~jkinne/research/KvMS.pdf draft PDF], [http://eccc.uni-trier.de/report/2010/129/ ECCC report].&lt;br /&gt;
&lt;br /&gt;
Jeff Kinne. Deterministic Simulations and Hierarchy Theorems for Randomized Algorithms. Ph.D. dissertation from the Computer Sciences department at the University of Wisconsin-Madison, 2010. [http://cs.indstate.edu/~jkinne/research/Jeff-Kinne-thesis.pdf PDF], [http://cs.indstate.edu/~jkinne/talks/Jeff-Kinne-defense.pdf presentation].&lt;br /&gt;
&lt;br /&gt;
Jeff Kinne and Dieter van Melkebeek. Space Hierarchy Results for Randomized and Other Semantic Models. In Computational Complexity volume 19, number 3, 2010, pages 423-475.  [http://cs.indstate.edu/~jkinne/research/KM-space-hierarchies-CC.pdf draft PDF], [http://eccc.hpi-web.de/eccc-reports/2007/TR07-134/index.html ECCC report].&lt;br /&gt;
&lt;br /&gt;
Jeff Kinne, Dieter van Melkebeek, and Ronen Shaltiel. Pseudorandom Generators and Typically-Correct Derandomization. In Proceedings of the 13th International Workshop on Randomization and Computation (RANDOM), LNCS 5687, pages 574-587, 2009. [http://cs.indstate.edu/~jkinne/research/KvMS_derand_RANDOM09.pdf PDF],  [http://cs.indstate.edu/~jkinne/talks/typ-correct-derand.ppt presentation].&lt;br /&gt;
&lt;br /&gt;
Jeff Kinne and Dieter van Melkebeek. Space Hierarchy Results for Randomized Models. In Proceedings of the 25th International Symposium on Theoretical Aspects of Computer Science (STACS), pages 433-444, 2008.  [http://cs.indstate.edu/~jkinne/research/space-hierarchies-STACS2008.pdf PDF], [http://cs.indstate.edu/~jkinne/talks/jkinne-STACS2008-presentation-web.pps presentation].&lt;br /&gt;
&lt;br /&gt;
==Teaching==&lt;br /&gt;
For some of my recent thoughts on teaching, see [https://docs.google.com/document/d/1fnNjQ6comNXZ8c_UwsDVLN2TUcp9tJovfF0tqyAdFe8/edit?usp=sharing teaching thoughts]. I tend to update that once a year or few.&lt;br /&gt;
&lt;br /&gt;
And here is the laundry list of links to course websites...&lt;br /&gt;
&lt;br /&gt;
===Indiana State University===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Summer Honors (high school)&#039;&#039;&#039; - &lt;br /&gt;
[https://docs.google.com/document/d/13_NUmSFZ09gXjRUmwAmL-HWUgTFz6Hmo1KxbU7YZRtY/edit?usp=sharing Arificial Intelligence (2017)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GH 101 Computing and Data Science&#039;&#039;&#039; - &lt;br /&gt;
[https://cs.indstate.edu/~jkinne/cs101-f2021 fall 2021],&lt;br /&gt;
[https://docs.google.com/document/d/1BbmHvR47jKPkmNzi8J6EYxis0zKYlmLx5GK_2umti3E/edit?usp=sharing fall 2018]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 151 Introduction to Programming&#039;&#039;&#039; -&lt;br /&gt;
[https://cs.indstate.edu/web/index.php/CS_151 fall 2025], [https://cs.indstate.edu/web/index.php/CS_151_Spring_2025 spring 2025], [https://cs.indstate.edu/web/index.php/CS_151_Fall_2024 fall 2024], [https://cs.indstate.edu/web/index.php/CS_151_Spring_2024 spring 2024], [https://cs.indstate.edu/web/index.php/CS_151_Fall_2023 fall 2023], [http://cs.indstate.edu/~jkinne/cs151-su2020 summer 2020], [http://cs.indstate.edu/~jkinne/cs151-s2020 spring 2020], [http://cs.indstate.edu/~jkinne/cs151-f2019 fall 2019], [https://docs.google.com/document/d/1VEWRjgIMCfVNs_j4RvBGbLcERl7Q02zP_235LFm5DJE/edit?usp=sharing summer 2017] [https://docs.google.com/document/d/1i5BpZicaiHu2Zlaqalkc5_wLuxvoVI-OFzAW2KdIxz8/edit?usp=sharing fall 2014], [http://cs.indstate.edu/~jkinne/cs151-s2014 spring 2014], [http://cs.indstate.edu/~jkinne/cs151-f2013 fall 2013],&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs151-s2013 spring 2013 sections 001 and 003], [http://cs.indstate.edu/~jkinne/cs151-f2012 fall 2012 section 001], [http://cs.indstate.edu/~jkinne/cs151-s2012 spring 2012 sections 001 and 003], [http://cs.indstate.edu/~jkinne/cs151-f2011 fall 2011 sections 001 and 002],&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs151-s2011 spring 2011 section 003], [http://cs.indstate.edu/~jkinne/cs151-f2010 fall 2010 section 003]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 170 Web Programming I&#039;&#039;&#039; - &lt;br /&gt;
[https://docs.google.com/document/d/1LpYfGDfj5UAGdRDBuIkqJRx0v9GDvkzmfQSxjto5ez8/edit?usp=sharing Summer 2016] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 201 Computer Science I&#039;&#039;&#039; - &lt;br /&gt;
[https://docs.google.com/document/d/10N9tS-9aKqBMfd46XjtdUbS0UxXP6x4B9LNpP68rRtg/edit?usp=sharing Summer 2016], &lt;br /&gt;
[https://docs.google.com/document/d/1RqUrbIYWtuBRgnNlf1RQNrhttuKZTYjT_q5hBxlScCk/edit?usp=sharing spring 2015], &lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs201-s2014 spring 2014]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 203 (formerly 303) Discrete Structures and Computing Theory&#039;&#039;&#039; - &lt;br /&gt;
[https://cs.indstate.edu/web/index.php/CS_203_Spring_2025 spring 2025],&lt;br /&gt;
[https://cs.indstate.edu/web/index.php/CS_203_Fall_2024 fall 2024],&lt;br /&gt;
[https://cs.indstate.edu/web/index.php/CS_203_Spring_2024 spring 2024],&lt;br /&gt;
[https://cs.indstate.edu/web/index.php/CS_203_Fall_2024 fall 2023], [https://cs.indstate.edu/web/index.php/CS_303_Spring_2023 spring 2023], [https://cs.indstate.edu/web/index.php/CS_303_Fall_2022 fall 2022],&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 220 Java Programming&#039;&#039;&#039; - &lt;br /&gt;
[https://docs.google.com/document/d/11WUUvp8mwWOL0i8Et5t-Glsyu61iJAZz0njo78ZAzpg/edit?usp=sharing spring 2015]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 302 (formerly 202) Computer Science II&#039;&#039;&#039; -&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs202-f2020 fall 2020],&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs202-f2019/ fall 2019],&lt;br /&gt;
[https://docs.google.com/document/d/1z5FkzB_ttV0K1gfqZM194wHEDZ-wx5I_ovBiI4etJp8/edit?usp=sharing fall 2017], &lt;br /&gt;
[https://docs.google.com/document/d/1cAYqtdLtO5fCmiore0utezzpTRsxddfDWLcXi2yhmn0/edit?usp=sharing spring 2017], &lt;br /&gt;
[https://docs.google.com/document/d/1QadsJAAQgscX6I13gDF6HloHY3-hX2AX_6oa0TwSs3E/edit?usp=sharing spring 2016]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 420/520 Theory of Computation&#039;&#039;&#039; - &lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs420-s2019/index.html spring 2019], &lt;br /&gt;
[https://docs.google.com/document/d/1JzBW5D2nuXiPNLAvvr2UNaYJvkV9vvn6241MmbqLNl8/edit?usp=sharing fall 2016], &lt;br /&gt;
[https://docs.google.com/document/d/1qxGwx9a_5BZyTt5eJeSxutCYUZ-tbvvWW2FLB1yVdTM/edit?usp=sharing fall 2015]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 440/540 Graphics Programming&#039;&#039;&#039; -&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs440-f2012 fall 2012]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 457/557 Database Processing&#039;&#039;&#039; -&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs457-f2012 fall 2012]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 458/558 Algorithms&#039;&#039;&#039; - &lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs458-f2020 fall 2020],&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs458-f2013/ fall 2013]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 459/559 Topics in Computer Science&#039;&#039;&#039; - &lt;br /&gt;
[http://cs.indstate.edu/~jkinne/bd4isu-summer-2019/ BD4ISU Summer 2019],&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs459-bd4isu-s2019/ BD4ISU Bioinformatics Programming, Spring 2019],&lt;br /&gt;
[https://docs.google.com/document/d/1mzYcEOwY0_FPybYhXVZwszgHYRXK6k8yrQAqgEhjaBg/edit?usp=sharing Computational Software Packages and Tools, Summer I 2014]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 469/569 Unix/Linux Administration and Networking&#039;&#039;&#039; - &lt;br /&gt;
[https://cs.indstate.edu/~jkinne/cs469-s2022 spring 2022]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 471/571 Operating Systems&#039;&#039;&#039; - &lt;br /&gt;
[https://docs.google.com/document/d/1w2bGyWU5YWTlb4hvEJlIa5cAlKsbaOcKoACBGC8F-Is/edit?usp=sharing Fall 2018]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 473/573 Computer Networks&#039;&#039;&#039; - &lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs473-f2021 fall 2021],&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs473-s2021 spring 2021],&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs473-s2020 spring 2020],&lt;br /&gt;
[https://docs.google.com/document/d/1ObUd5k_iIVWf28LeZYUfBlNjzCLA87zBbM0US5aa5pY/edit?usp=sharing spring 2015]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 475/575 Artificial Intelligence&#039;&#039;&#039; -&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs475-f2011/ fall 2011]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 499 Senior Seminar&#039;&#039;&#039; - &lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs499-f2020 fall 2020],&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs499-f2019 fall 2019],&lt;br /&gt;
[https://docs.google.com/document/d/1p-v_b9Nr4bxCXGVX4rk4TJbdaMgFa9qkLutopfKcfmE/edit?usp=sharing information]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 500 Programming Fundamentals&#039;&#039;&#039; - &lt;br /&gt;
[https://cs.indstate.edu/web/index.php/CS_500 spring 2025],&lt;br /&gt;
[https://cs.indstate.edu/web/index.php/CS_500_Fall_2024 fall 2024],&lt;br /&gt;
[https://cs.indstate.edu/web/index.php/CS_500_Spring_2024 spring 2024],&lt;br /&gt;
[https://cs.indstate.edu/web/index.php/CS_500_Fall_2023 fall 2023], [https://cs.indstate.edu/web/index.php/CS_500_Spring_2023 spring 2023], [https://cs.indstate.edu/web/index.php/CS_500_Fall_2022 fall 2022]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 510 Fast Track Introduction to Programming&#039;&#039;&#039; - &lt;br /&gt;
[https://cs.indstate.edu/web/index.php/CS_510_Spring_2023 spring 2023], [https://cs.indstate.edu/web/index.php/CS_510_Fall_2022 fall 2022]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 559 Topics in Computer Science&#039;&#039;&#039; - &lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs559-f2013/ fall 2013]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 609 Web Programming and Applications&#039;&#039;&#039; - &lt;br /&gt;
[https://docs.google.com/document/d/1SSEoV9GVN2bufYw4Bf9cXnmwbMeq5IFqF6jX7SNH3vI/edit?usp=sharing fall 2015 (as CS 650-003)]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 603 Networking and Security&#039;&#039;&#039; - &lt;br /&gt;
[https://docs.google.com/document/d/1NAauNCjScp25i3Es0XUiKJRO38TdAEWeQ_m4D5N5LHs/edit?usp=sharing fall 2016]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 617 Databases, Data Mining, and Big Data&#039;&#039;&#039; - &lt;br /&gt;
[https://docs.google.com/document/d/1G_gtgO0f3fgNcV8qcQ_BOtrwQKMZ3uhCFO3psd6OusI/edit?usp=sharing fall 2017]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 618 Computational Biology&#039;&#039;&#039; - &lt;br /&gt;
[https://cs.indstate.edu/web/index.php/CS_618 summer 2024], [https://cs.indstate.edu/~jkinne/cs618-s2022 spring 2022]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 620 Theory of Computation II&#039;&#039;&#039; -&lt;br /&gt;
[https://docs.google.com/document/d/1ivvIzcExIW3rvdnxiL95cNwd0YHOhcFhhCwciCnHHA4/edit?usp=sharing  spring 2016], &lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs620-s2011 spring 2011], [http://cs.indstate.edu/~jkinne/cs620-f2010 fall 2010]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 658 Algorithms II&#039;&#039;&#039; -&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs658-s2014 spring 2014], [http://cs.indstate.edu/~jkinne/cs658-s2012 spring 2012]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 670 Concurrent Programming&#039;&#039;&#039; -&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs670-s2021 spring 2021], [http://cs.indstate.edu/~jkinne/cs670-s2012 spring 2013]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 671 Operating Systems II&#039;&#039;&#039; -&lt;br /&gt;
[https://docs.google.com/document/d/1kJVEYJYOo7mZyz5GcasP890V3K6mLji6naDUFa4m4UQ/edit?usp=sharing spring 2017]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 695 Computer Science Research&#039;&#039;&#039; -&lt;br /&gt;
[https://docs.google.com/document/d/1L8doHFFBIgnNuZ38X-uOq2OnU8vWJTBeGUC2jXj0yzc/edit?usp=sharing fall 2014], &lt;br /&gt;
[http://cs.indstate.edu/~jkinne/cs695-s2011 spring 2011]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 399/699 Computer Science Internship&#039;&#039;&#039; - &lt;br /&gt;
[https://docs.google.com/document/d/19IBirbzutL4ldaXIvKvzZHOMa9JULalt7clvvy0SDBk/edit?usp=sharing information]&lt;br /&gt;
&lt;br /&gt;
[http://cs.indstate.edu/~jkinne/bio491-f2014/ old bioinformatics stuff]&lt;br /&gt;
&lt;br /&gt;
===Wisconsin-Madison===&lt;br /&gt;
&#039;&#039;&#039;CS/Math 240 Discrete Mathematics&#039;&#039;&#039; -  [http://pages.cs.wisc.edu/~jkinne/CS240-sum2007/ summer 2007]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 810/710 Theory of Computation&#039;&#039;&#039; - [http://pages.cs.wisc.edu/~dieter/Courses/2007s-CS810 spring 2007]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CS 310 Problem Solving with Computers&#039;&#039;&#039; - [http://pages.cs.wisc.edu/~hasti/cs310/ fall 2003 - spring 2005]&lt;br /&gt;
&lt;br /&gt;
=Other presentations=&lt;br /&gt;
Other presentations I have given that I have saved...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Biology journal club at ISU&#039;&#039; on Oct 2, 2019. The intended audience are biology graduate students and faculty. The main goal of the talk is to do a detailed demo of the different &#039;&#039;tools used to process and analyze RNA sequence data&#039;&#039;, with a focus on performing differential gene expression analysis. [https://docs.google.com/presentation/d/1oNM-eA0NlzaFhY5s5nDZqmyk3SVkhI2N3uUF8_DpOtg/edit?usp=sharing google slides].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CCSC Midwest&#039;&#039; (Consortium for Computing Sciences in Colleges) on Sept 29, 2018 at the 2018 . The talk gives the current &#039;&#039;status of K-12 CS education in the state of Indiana&#039;&#039;. There were new state standards and resources available. It is a good time to be involved in CS Education in Indiana. [https://docs.google.com/presentation/d/1NVjVeq91qJ3UpeAlYrKmyVGtx2yIQPjA3A9lt2Nv8mE/edit#slide=id.p google slides].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Terre Haute Children&#039;s Museum K-4 Coding Camp&#039;&#039; on Jul 26, 2018. The basic format could work for any age K-8. [https://docs.google.com/presentation/d/1KtcMnQgTUsoFvKGxOGlOLtWa8Dypkyd7LhuF1K0z4Y0/edit?usp=sharing google slides].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Indiana Academy of Sciences&#039;&#039; on Mar 15, 2014. The goal of the talk was to give an overview of the &#039;&#039;records for largest known primes&#039;&#039;, and a touch of the computation that goes into these computer searches. The intended audience is people who are interested in the topic (fairly broad). [http://cs.indstate.edu/~jkinne/talks/IAS-jkinne-2014.pdf PDF].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Midwest Theory Day&#039;&#039; on Nov 23, 2013. The goal of the talk was to give an overview of the &#039;&#039;techniques and theorems used in computational searches for the largest (provably) known prime numbers&#039;&#039;. The intended audience is math and CS graduate students and faculty. [http://cs.indstate.edu/~jkinne/talks/MTD-jkinne-2013.pdf PDF].&lt;br /&gt;
&lt;br /&gt;
Capital University on Feb 4, 2013, Ohio Northern University on Feb 14, 2013, and Indiana State University on April 17. The goal of the talk was to introduce some &#039;&#039;research topics in the area of randomized algorithms and derandomization&#039;&#039; through some examples and considering the best algorithms known for primality testing. The intended audience was math and CS students. [http://cs.indstate.edu/~jkinne/talks/randAndDerand.pptx PPTx].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Panel discussion on undergraduate research&#039;&#039; at ISU on October 3, 2012 and October 9, 2012. The goal of the talk is to share my experiences with undergraduate research - as it applies to Math and CS students at ISU. The audience was an interdisciplinary group of faculty. [http://cs.indstate.edu/~jkinne/talks/undergradResearch.pdf PDF].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Math and CS Department Seminar&#039;&#039; on March 21, 2012. The goal of the talk was to give an overview of some of the important &#039;&#039;results in lower bounds in theory of computing&#039;&#039;. For many problems, we think they are intractable (require exponential time to solve), but this has not been proved yet. This talk looks at some things that are known. At the end is a mention of my own work in this area, but that is not the focus of the talk. [http://cs.indstate.edu/~jkinne/talks/lower-bounds-in-theory.pdf PDF].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Rose Hulman Institute of Technology Mathematics Seminar&#039;&#039; on April 27, 2011. The goal with the talk was to give a flavor of the &#039;&#039;problems looked at within computational complexity&#039;&#039;, how the problems are posed, some interesting results and open questions, ... The talk is aimed at a general audience with some knowledge of math and computer science. [https://docs.google.com/present/edit?id=0AbxM6icc2fOUZGhmM3FndzVfOTVnNmZubnBkMw&amp;amp;hl=en google doc].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ISU Math and CS department seminar&#039;&#039; on February 11 and 25, 2011. A series of two talks on (1) an algebraic version of the P versus NP problem and (2) connections between obtaining algorithms for polynomial identity testing and lower bounds against algebraic P. The talk is aimed at a general audience who has some knowledge of math and computer science. [PPTx].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Wabash College Math and CS department colloquium&#039;&#039; on November 16, 2010, on the &#039;&#039;P versus NP problem&#039;&#039;. The talk is aimed at a general audience who has some knowledge of computer science. [http://cs.indstate.edu/~jkinne/talks/p-versus-np.ppt PPT].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;My &amp;quot;job talk&amp;quot; that I gave at Indiana State&#039;&#039; when I was applying for the job. This describes my research within the context of some of the major open questions in computer science. The intended audience is people with some knowledge of computer science. [http://cs.indstate.edu/~jkinne/talks/isu-job-talk.pdf PDF].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hot topics on theory of computing&#039;&#039;. This talk, given in March of 2009 at UW-Madison, was given to a group of graduate students at UW-Madison who were on the job market. The idea was to give some flavor about what some of the topics are that theory researchers currently work on. [http://cs.indstate.edu/~jkinne/talks/theory-hot-topics.pdf PDF].&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
These are for my personal use, but I like to have them somewhere I can get to from anywhere.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;News/Info:&#039;&#039;&#039; Terre Haute ([http://tribstar.com/ tribune star] | [http://www.mywabashvalley.com mywabashvalley]), [http://www.indystar.com Indianapolis] | [http://www.cincinnati.com Cincinnati] |&lt;br /&gt;
[http://news.google.com Google News] ([https://news.google.com/home?hl=es-419&amp;amp;gl=US&amp;amp;ceid=US:es-419 es]) | [https://en.wikipedia.org/wiki/Main_Page Wikipedia] ([https://es.wikipedia.org/wiki/Wikipedia:Portada es]) | [https://www.bbc.com/mundo BBC Mundo]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Terre Haute/Indiana:&#039;&#039;&#039; weather ([http://forecast.weather.gov/MapClick.php?CityName=Terre+Haute&amp;amp;state=IN&amp;amp;site=IND&amp;amp;textField1=39.4704&amp;amp;textField2=-87.3835&amp;amp;e=0 NWS] | [https://www.wunderground.com/dashboard/pws/KINTERRE188 121 Jackson Blvd] | [https://www.windy.com/39.467/-87.414?38.988,-87.414,8 windy.com]) ([https://www.nws.noaa.gov/wtf/MapClick.php?CityName=Terre+Haute&amp;amp;state=IN&amp;amp;site=IND&amp;amp;textField1=39.4704&amp;amp;textField2=-87.3835&amp;amp;e=0&amp;amp;lg=sp es]) |&lt;br /&gt;
[http://library.indstate.edu ISU library] | [http://www.vigo.lib.in.us/ Public Library]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Non-public:&#039;&#039;&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/198I0idSJptzUU5wjQxrUIWQBgOYMgw_CrBvTDyrZY54/edit?usp=sharing Home repairs and bills] | [https://calendar.google.com Google Calendar]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;German:&#039;&#039;    [https://en.wikibooks.org/wiki/German Wikibook] | [https://docs.google.com/document/d/1kFzWpnl4kiEYwYbFJs3MsqyRyDkIMEBosDMm7g3P9Dg/edit?usp=sharing notes]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Astronomy:&#039;&#039; [http://www.skyandtelescope.com Sky and Telescope] | [http://www.heavens-above.com/?Loc=Terre+Haute&amp;amp;Lat=39.467&amp;amp;Lng=-87.414&amp;amp;Alt=138&amp;amp;TZ=EST Heavens Above Terre Haute] |&lt;br /&gt;
[http://www.cleardarksky.com/c/TrrHtINkey.html?1 Terre Haute Clear Sky Chart] | [https://www.lightpollutionmap.info/ light pollution map] | [http://worldwidetelescope.org World Wide Telescope] | [http://media.skyandtelescope.com/documents/MullaneyDeepSky111.pdf 111 treasures for light-polluted skies (PDF)] | [http://www.keo.org/uk/pages/introuk.html Space Time Capsule] | [https://stellarium.org/ Stellarium] ([https://stellarium-web.org/ web]) | [https://www.spaceweatherlive.com/ SpaceWeatherLive] | [https://www.cloudynights.com/ Cloudy Nights] | [https://astromart.com/ Astromart]&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_151_Fall_2026&amp;diff=897</id>
		<title>CS 151 Fall 2026</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_151_Fall_2026&amp;diff=897"/>
		<updated>2026-08-14T00:00:45Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CS 151 Introduction to Computer Science is taken by CS majors during their first term, along with ECT 130.&lt;br /&gt;
&lt;br /&gt;
This page contains the syllabus for CS 151 for the most recent offering (fall 2026). Previous terms - [[CS 151 Spring 2026]], [[CS 151 Fall 2025]], [[CS 151 Spring 2025]], [[CS 151 Fall 2024]], [[CS 151 Spring 2024]], [[CS 151 Fall 2023]].&lt;br /&gt;
&lt;br /&gt;
Note that all sections of the course will use the same homeworks and lab assignments. Quizzes and exams may be slightly different for the online versus face to face students.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to OneDrive folder with lecture slides and other files: [https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow OneDrive link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meeting link for lectures and recordings: [https://teams.microsoft.com/meet/236575882194707?p=nahhbIvsZOVY36FWQt Teams meeting link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Welcome and Getting Started=&lt;br /&gt;
An introduction to the course is given during the first week of classes. Look for an announcement and link to a recording. Slides are also available &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:p:/r/personal/jeffrey_kinne_indstate_edu/Documents/Courses/Jeff%20Kinne%20Lecture%20Notes/cs151/week%2000%20-%20course%20introduction.pptx?d=wef20c8e1c04d43e19956f03de52bd501&amp;amp;csf=1&amp;amp;web=1&amp;amp;e=A0ecC0 here]&#039;&#039;&#039; with the most important information.&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/CS_151&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Schedule a Meeting with Me:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; MWF 10-10:50am in Root Hall A-109, over Teams ([https://teams.microsoft.com/meet/236575882194707?p=nahhbIvsZOVY36FWQt Teams meeting link]), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Exams:&#039;&#039;  every three weeks on Wednesdays (Sep 2, Sep 23, Oct 14, Nov 4), during lecture time (10-10:50am) for face to face section, available from this time until midnight for the online section.&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; Monday, Dec 7, 10-11:50am. &#039;&#039;(For those in the online section with another class at that time, your exam time will be decided after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Supplemental Instructor/Hours&#039;&#039;&#039; There likely will be a supplemental instructor for the course. Details will be posted before classes start.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; There likely will be graduate assistant help for the course. Details will be posted before classes start.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - none.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CRN numbers&#039;&#039;&#039; - 53090 for the face to face section, 51027 for the online section.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
We will use selections from the following free online sources.&lt;br /&gt;
* Automate the Boring Stuff with Python (available free at https://automatetheboringstuff.com/2e/). We use the 2nd edition of the book (not the latest, which puts the topics in a different order than we will follow).&lt;br /&gt;
* [https://www.khanacademy.org/computing/ap-computer-science-principles Khan Academy AP CS Principles], in particular unit 1 digital information and unit 4 algorithms.&lt;br /&gt;
* Additional online sources as needed.&lt;br /&gt;
* [https://docs.google.com/presentation/d/1ccy6CXrdP9415bDEbzcI773cyDNI7p3rr3yA76QmgtQ/edit#slide=id.g877391eabf_0_116 turtle graphics]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs151/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~cs151/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technology Requirements&#039;&#039;&#039;&lt;br /&gt;
* Desktop or laptop computer (Windows, Mac OS, Linux, or Chrome OS) with the ability to save files and install programs.&lt;br /&gt;
* Your ISU account, to access Canvas and course notes.&lt;br /&gt;
* Free programs you will install: https://www.python.org/downloads/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Programming practice&#039;&#039;&#039; Challenge problems...&lt;br /&gt;
* [https://leetcode.com/explore/learn/card/the-leetcode-beginners-guide/692/challenge-problems/4421/ LeetCode beginning problems]&lt;br /&gt;
* [https://open.kattis.com/problems?f_language=-1&amp;amp;show_more_filters=on&amp;amp;f_min_difficulty=&amp;amp;f_max_difficulty=2&amp;amp;order=difficulty_data Open Kattis problems]&lt;br /&gt;
&lt;br /&gt;
=Supplemental Instruction=&lt;br /&gt;
This course uses a supplemental instructor (SI) to provide extra sessions to help students who can use additional instruction beyond the regular lecture hours. The SI is a student who previously took the course and did well, and who works closely with the instructor to help students. SI sessions review content from lecture and what is needed for homework assignments. The SI is part of the course in Canvas so you can communicate with them that way if you like.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Core concepts that are foundational in computer science, including programming, use of computers for dealing with files and programs, how data is stored, number systems. Focus on building skills needed for programming and further study of computer science, and intermediate mastery of a particular programming language.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weeks 1-6&#039;&#039;&#039;&lt;br /&gt;
* Setup accounts &lt;br /&gt;
* Intro to Linux &lt;br /&gt;
* Variables &lt;br /&gt;
* I/O &lt;br /&gt;
* Flow Control &lt;br /&gt;
* If-statements &lt;br /&gt;
* Turtle&lt;br /&gt;
* Loops &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weeks 7-14&#039;&#039;&#039;&lt;br /&gt;
* Functions &lt;br /&gt;
* Chapter 4 - Lists &lt;br /&gt;
* Chapter 5 - Collections &lt;br /&gt;
* Chapter 6 - Strings &lt;br /&gt;
* Bits, Bytes, Base and Logic &lt;br /&gt;
* Intro to algorithms &lt;br /&gt;
* Chapter 9 &amp;amp; 10 (Files) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Week 15-16&#039;&#039;&#039;&lt;br /&gt;
* Final project and interviews &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
* Able to use Linux systems and terminal - managing files, running code, using utility programs. &lt;br /&gt;
* Basic mastery of core programming concepts - data types, conditionals and loops, Boolean logic, functions, string operations, reading and writing files. In particular, &lt;br /&gt;
* Can take a specification and produce code implementing it. &lt;br /&gt;
* Can take code and &amp;quot;play computer&amp;quot; to determine the precise results of running the code on a given input. &lt;br /&gt;
* Can take a partially complete program and specification for how it should work, and complete it. &lt;br /&gt;
* Can take a program with syntax or logical errors and fix the errors. &lt;br /&gt;
* Understanding of good coding style and able to practice good coding style - use of functions to avoid redundant code, whitespace formatting, variable and function names, comments. &lt;br /&gt;
* Understanding of base systems, including ability to convert between binary, hex, octal, and decimal. &lt;br /&gt;
* Understanding of and ability to explain different file types - text versus binary. &lt;br /&gt;
* Able to read and write data with programs, including parsing simple file formats (e.g., csv). &lt;br /&gt;
* Understanding of sorting algorithms - able to &amp;quot;play computer&amp;quot; to execute sorting algorithms that were covered in class on small test cases.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=896</id>
		<title>CS 473</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=896"/>
		<updated>2026-08-13T23:54:50Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CS 473/573 Computer Networks is required in the academic concentration of the CS BS and can be taken as an elective for others.&lt;br /&gt;
&lt;br /&gt;
This page contains the syllabus/course schedule for CS 473/573 for the most recent offering (fall 2026). Previous terms - [[CS 473 Fall 2025|fall 2025 kinne]], [https://cs.indstate.edu/info/syllabi/cs473-f2022-cox.pdf fall 2022 Cox], [https://cs.indstate.edu/info/syllabi/cs473-f2021-kinne.pdf fall 2021 Kinne], [https://cs.indstate.edu/info/syllabi/cs473-s2019-baker.pdf fall 2019 Baker].&lt;br /&gt;
&lt;br /&gt;
Note that all sections of the course will use the same homeworks and lab assignments. Quizzes and exams may be slightly different for the online versus face to face students.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to OneDrive folder with lecture slides and other files: [https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgA4sPuiwtstR79DncedV5WLAYtZuo0T5oehIhGcpsQed5Y OneDrive link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teams meeting link to join lecture online or watch recordings: [https://teams.microsoft.com/meet/269099999478694?p=I09e4zkjtvudEaX33q Teams meeting link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/CS_473&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important&#039;&#039;&#039; - If you are a graduate student who took CS 473 as an undergraduate, or had transfer credit for CS 473, then you should NOT take CS 573. The system would let you register, but the course would not count towards your MS degree.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [http://mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Meeting:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; TR 11am-12:15pm in Root Hall (RO) A-106, over Teams ([https://teams.microsoft.com/meet/269099999478694?p=I09e4zkjtvudEaX33q Teams meeting link]), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Exams:&#039;&#039;  every three weeks on Thursdays (Sep 3, Sep 24, Oct 15, Nov 5) during lecture time (11am-12:15pm).  &#039;&#039;(For those with another class at that time, we will arrange the time after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; Thursday, Dec 10, 10-11:50am. &#039;&#039;(For those with another class at that time, your exam time will be decided after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - For CS 473 the prereq is: A grade of C or better in CS 203 or CS 303, and in CS 351. For CS 573 the prereq is: C or better in CS 456 or CS 556 or A- or better in CS 500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
We will use selections from the following free online sources. We may add to this list as needed.&lt;br /&gt;
* [http://beej.us/guide/bgnet/ Beej&#039;s Guide to Network Programming], [https://beej.us/guide/bgnet0/ Beej&#039;s Guide to Networking Concepts]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Internet_protocol_suite Internet Protocol], [https://en.wikipedia.org/wiki/Transmission_Control_Protocol TCP Protocol], [https://en.wikipedia.org/wiki/IPv4 IPv4], [https://en.wikipedia.org/wiki/Ethernet_frame#Ethernet_II Ethernet II], [https://en.wikipedia.org/wiki/HTTP HTTP on Wikipedia], [https://developer.mozilla.org/en-US/docs/Web/HTTP HTTP on MDN], [https://datatracker.ietf.org/doc/html/rfc2616 HTTP 1.1 definition]&lt;br /&gt;
* [https://docs.freebsd.org/44doc/psd/20.ipctut/paper.pdf An Introductory 4.4BSD Interprocess Communication Tutorial]&lt;br /&gt;
* Unix Network Programming, Volume 1: The Sockets Networking API 3rd Edition by W. Richard Stevens (Author), Bill Fenner (Author), Andrew M. Rudoff (Author) &lt;br /&gt;
* The Unix Manual Pages (man)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software/Programs&#039;&#039;&#039;&lt;br /&gt;
* [https://www.wireshark.org/download.html WireShark]&lt;br /&gt;
* Programming - probably some in Python, C, and Rust&lt;br /&gt;
* Telnet: [https://blog.mrkeyshop.com/en/guides/how-to-enable-and-use-telnet-on-windows-11-and-10/ install/enable on Windows]. For Mac OS, first install [https://brew.sh/ homebrew] and then [https://formulae.brew.sh/formula/telnet#default brew install telnet].&lt;br /&gt;
** If using the builtin Windows 10/11 telnet client, open a command prompt, then type telnet and Enter to start telnet. To open a connection, type something like: &amp;lt;code&amp;gt;open cs.indstate.edu 47300&amp;lt;/code&amp;gt; and enter. The display is a little quirky - when you type it will overwrite characters already on the screen.&lt;br /&gt;
* Putty: can also be used as a telnet client on Windows. [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html Download]. To use as a telnet client, when you run Putty, set the Hostname (e.g., cs.indstate.edu) and Port as desired (e.g., 47300), select Other for Connection Type, and click to change &amp;quot;Telnet&amp;quot; to &amp;quot;Raw&amp;quot;, then click Open.&lt;br /&gt;
* Netcat: there are various versions. One cross-platform version is: https://nmap.org/ncat/. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgA4sPuiwtstR79DncedV5WLAYtZuo0T5oehIhGcpsQed5Y this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs473/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~cs473/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The course is an introduction to networking and includes detailed study of Internet protocols and socket programming. Topics include a study of IP, UDP, and TCP protocols, as well as application layer protocols such as HTTP and SMTP. Students learn to program both a client and a server.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Network protocols, the Internet&lt;br /&gt;
* IPv4, IPv6, UDP, TCP&lt;br /&gt;
* Routing&lt;br /&gt;
* Client/server, ARP, DNS, HTTP, SSL&lt;br /&gt;
* Security, encryption&lt;br /&gt;
* How all of that works, and tools for looking at it&lt;br /&gt;
&lt;br /&gt;
Unit 2 Network Programming&lt;br /&gt;
* Interprocess communication (BSD IPC paper)&lt;br /&gt;
* Processes, pipes, signals, socketpairs, asynch I/O&lt;br /&gt;
* Threads, shared memory, etc. &lt;br /&gt;
&lt;br /&gt;
Unit 3 Selected topics&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
* Able to use Linux systems and terminal - managing files, running code, using utility programs. &lt;br /&gt;
* Understanding of data flow on the internet.&lt;br /&gt;
** Can give precise details (diagrams, trace through examples, explain tradeoffs) of how data is transmitted between programs on a single machine and on different machines via the Internet.&lt;br /&gt;
* Understanding the fundamentals of network security and encryption.&lt;br /&gt;
* Ability to write client and server programs.&lt;br /&gt;
** Completed multiple different client/server and related programs independently, can explain the overall design of the programs and the details of how they are implemented.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=895</id>
		<title>CS 473</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=895"/>
		<updated>2026-08-13T23:39:17Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CS 473/573 Computer Networks is required in the academic concentration of the CS BS and can be taken as an elective for others.&lt;br /&gt;
&lt;br /&gt;
This page contains the syllabus/course schedule for CS 473/573 for the most recent offering (fall 2026). Previous terms - [[CS 473 Fall 2025|fall 2025 kinne]], [https://cs.indstate.edu/info/syllabi/cs473-f2022-cox.pdf fall 2022 Cox], [https://cs.indstate.edu/info/syllabi/cs473-f2021-kinne.pdf fall 2021 Kinne], [https://cs.indstate.edu/info/syllabi/cs473-s2019-baker.pdf fall 2019 Baker].&lt;br /&gt;
&lt;br /&gt;
Note that all sections of the course will use the same homeworks and lab assignments. Quizzes and exams may be slightly different for the online versus face to face students.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to OneDrive folder with lecture slides and other files: [https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgA4sPuiwtstR79DncedV5WLAYtZuo0T5oehIhGcpsQed5Y OneDrive link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/CS_473&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important&#039;&#039;&#039; - If you are a graduate student who took CS 473 as an undergraduate, or had transfer credit for CS 473, then you should NOT take CS 573. The system would let you register, but the course would not count towards your MS degree.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [http://mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Meeting:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; TR 11am-12:15pm in Root Hall (RO) A-106, over Teams (link in Canvas, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Exams:&#039;&#039;  every three weeks on Thursdays (Sep 3, Sep 24, Oct 15, Nov 5) during lecture time (11am-12:15pm).  &#039;&#039;(For those with another class at that time, we will arrange the time after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; Thursday, Dec 10, 10-11:50am. &#039;&#039;(For those with another class at that time, your exam time will be decided after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - For CS 473 the prereq is: A grade of C or better in CS 203 or CS 303, and in CS 351. For CS 573 the prereq is: C or better in CS 456 or CS 556 or A- or better in CS 500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
We will use selections from the following free online sources. We may add to this list as needed.&lt;br /&gt;
* [http://beej.us/guide/bgnet/ Beej&#039;s Guide to Network Programming], [https://beej.us/guide/bgnet0/ Beej&#039;s Guide to Networking Concepts]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Internet_protocol_suite Internet Protocol], [https://en.wikipedia.org/wiki/Transmission_Control_Protocol TCP Protocol], [https://en.wikipedia.org/wiki/IPv4 IPv4], [https://en.wikipedia.org/wiki/Ethernet_frame#Ethernet_II Ethernet II], [https://en.wikipedia.org/wiki/HTTP HTTP on Wikipedia], [https://developer.mozilla.org/en-US/docs/Web/HTTP HTTP on MDN], [https://datatracker.ietf.org/doc/html/rfc2616 HTTP 1.1 definition]&lt;br /&gt;
* [https://docs.freebsd.org/44doc/psd/20.ipctut/paper.pdf An Introductory 4.4BSD Interprocess Communication Tutorial]&lt;br /&gt;
* Unix Network Programming, Volume 1: The Sockets Networking API 3rd Edition by W. Richard Stevens (Author), Bill Fenner (Author), Andrew M. Rudoff (Author) &lt;br /&gt;
* The Unix Manual Pages (man)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software/Programs&#039;&#039;&#039;&lt;br /&gt;
* [https://www.wireshark.org/download.html WireShark]&lt;br /&gt;
* Programming - probably some in Python, C, and Rust&lt;br /&gt;
* Telnet: [https://blog.mrkeyshop.com/en/guides/how-to-enable-and-use-telnet-on-windows-11-and-10/ install/enable on Windows]. For Mac OS, first install [https://brew.sh/ homebrew] and then [https://formulae.brew.sh/formula/telnet#default brew install telnet].&lt;br /&gt;
** If using the builtin Windows 10/11 telnet client, open a command prompt, then type telnet and Enter to start telnet. To open a connection, type something like: &amp;lt;code&amp;gt;open cs.indstate.edu 47300&amp;lt;/code&amp;gt; and enter. The display is a little quirky - when you type it will overwrite characters already on the screen.&lt;br /&gt;
* Putty: can also be used as a telnet client on Windows. [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html Download]. To use as a telnet client, when you run Putty, set the Hostname (e.g., cs.indstate.edu) and Port as desired (e.g., 47300), select Other for Connection Type, and click to change &amp;quot;Telnet&amp;quot; to &amp;quot;Raw&amp;quot;, then click Open.&lt;br /&gt;
* Netcat: there are various versions. One cross-platform version is: https://nmap.org/ncat/. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgA4sPuiwtstR79DncedV5WLAYtZuo0T5oehIhGcpsQed5Y this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs473/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~cs473/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The course is an introduction to networking and includes detailed study of Internet protocols and socket programming. Topics include a study of IP, UDP, and TCP protocols, as well as application layer protocols such as HTTP and SMTP. Students learn to program both a client and a server.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Network protocols, the Internet&lt;br /&gt;
* IPv4, IPv6, UDP, TCP&lt;br /&gt;
* Routing&lt;br /&gt;
* Client/server, ARP, DNS, HTTP, SSL&lt;br /&gt;
* Security, encryption&lt;br /&gt;
* How all of that works, and tools for looking at it&lt;br /&gt;
&lt;br /&gt;
Unit 2 Network Programming&lt;br /&gt;
* Interprocess communication (BSD IPC paper)&lt;br /&gt;
* Processes, pipes, signals, socketpairs, asynch I/O&lt;br /&gt;
* Threads, shared memory, etc. &lt;br /&gt;
&lt;br /&gt;
Unit 3 Selected topics&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
* Able to use Linux systems and terminal - managing files, running code, using utility programs. &lt;br /&gt;
* Understanding of data flow on the internet.&lt;br /&gt;
** Can give precise details (diagrams, trace through examples, explain tradeoffs) of how data is transmitted between programs on a single machine and on different machines via the Internet.&lt;br /&gt;
* Understanding the fundamentals of network security and encryption.&lt;br /&gt;
* Ability to write client and server programs.&lt;br /&gt;
** Completed multiple different client/server and related programs independently, can explain the overall design of the programs and the details of how they are implemented.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=894</id>
		<title>CS 473</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=894"/>
		<updated>2026-08-13T23:39:05Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CS 473/573 Computer Networks is required in the academic concentration of the CS BS and can be taken as an elective for others.&lt;br /&gt;
&lt;br /&gt;
This page contains the syllabus/course schedule for CS 473/573 for the most recent offering (fall 2026). Previous terms - [[CS 473 Fall 2025|fall 2025 kinne]], [https://cs.indstate.edu/info/syllabi/cs473-f2022-cox.pdf fall 2022 Cox], [https://cs.indstate.edu/info/syllabi/cs473-f2021-kinne.pdf fall 2021 Kinne], [https://cs.indstate.edu/info/syllabi/cs473-s2019-baker.pdf fall 2019 Baker].&lt;br /&gt;
&lt;br /&gt;
Note that all sections of the course will use the same homeworks and lab assignments. Quizzes and exams may be slightly different for the online versus face to face students.&lt;br /&gt;
&lt;br /&gt;
Link to OneDrive folder with lecture slides and other files: [https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgA4sPuiwtstR79DncedV5WLAYtZuo0T5oehIhGcpsQed5Y OneDrive link]&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/CS_473&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important&#039;&#039;&#039; - If you are a graduate student who took CS 473 as an undergraduate, or had transfer credit for CS 473, then you should NOT take CS 573. The system would let you register, but the course would not count towards your MS degree.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [http://mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Meeting:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; TR 11am-12:15pm in Root Hall (RO) A-106, over Teams (link in Canvas, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Exams:&#039;&#039;  every three weeks on Thursdays (Sep 3, Sep 24, Oct 15, Nov 5) during lecture time (11am-12:15pm).  &#039;&#039;(For those with another class at that time, we will arrange the time after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; Thursday, Dec 10, 10-11:50am. &#039;&#039;(For those with another class at that time, your exam time will be decided after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - For CS 473 the prereq is: A grade of C or better in CS 203 or CS 303, and in CS 351. For CS 573 the prereq is: C or better in CS 456 or CS 556 or A- or better in CS 500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
We will use selections from the following free online sources. We may add to this list as needed.&lt;br /&gt;
* [http://beej.us/guide/bgnet/ Beej&#039;s Guide to Network Programming], [https://beej.us/guide/bgnet0/ Beej&#039;s Guide to Networking Concepts]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Internet_protocol_suite Internet Protocol], [https://en.wikipedia.org/wiki/Transmission_Control_Protocol TCP Protocol], [https://en.wikipedia.org/wiki/IPv4 IPv4], [https://en.wikipedia.org/wiki/Ethernet_frame#Ethernet_II Ethernet II], [https://en.wikipedia.org/wiki/HTTP HTTP on Wikipedia], [https://developer.mozilla.org/en-US/docs/Web/HTTP HTTP on MDN], [https://datatracker.ietf.org/doc/html/rfc2616 HTTP 1.1 definition]&lt;br /&gt;
* [https://docs.freebsd.org/44doc/psd/20.ipctut/paper.pdf An Introductory 4.4BSD Interprocess Communication Tutorial]&lt;br /&gt;
* Unix Network Programming, Volume 1: The Sockets Networking API 3rd Edition by W. Richard Stevens (Author), Bill Fenner (Author), Andrew M. Rudoff (Author) &lt;br /&gt;
* The Unix Manual Pages (man)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software/Programs&#039;&#039;&#039;&lt;br /&gt;
* [https://www.wireshark.org/download.html WireShark]&lt;br /&gt;
* Programming - probably some in Python, C, and Rust&lt;br /&gt;
* Telnet: [https://blog.mrkeyshop.com/en/guides/how-to-enable-and-use-telnet-on-windows-11-and-10/ install/enable on Windows]. For Mac OS, first install [https://brew.sh/ homebrew] and then [https://formulae.brew.sh/formula/telnet#default brew install telnet].&lt;br /&gt;
** If using the builtin Windows 10/11 telnet client, open a command prompt, then type telnet and Enter to start telnet. To open a connection, type something like: &amp;lt;code&amp;gt;open cs.indstate.edu 47300&amp;lt;/code&amp;gt; and enter. The display is a little quirky - when you type it will overwrite characters already on the screen.&lt;br /&gt;
* Putty: can also be used as a telnet client on Windows. [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html Download]. To use as a telnet client, when you run Putty, set the Hostname (e.g., cs.indstate.edu) and Port as desired (e.g., 47300), select Other for Connection Type, and click to change &amp;quot;Telnet&amp;quot; to &amp;quot;Raw&amp;quot;, then click Open.&lt;br /&gt;
* Netcat: there are various versions. One cross-platform version is: https://nmap.org/ncat/. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgA4sPuiwtstR79DncedV5WLAYtZuo0T5oehIhGcpsQed5Y this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs473/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~cs473/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The course is an introduction to networking and includes detailed study of Internet protocols and socket programming. Topics include a study of IP, UDP, and TCP protocols, as well as application layer protocols such as HTTP and SMTP. Students learn to program both a client and a server.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Network protocols, the Internet&lt;br /&gt;
* IPv4, IPv6, UDP, TCP&lt;br /&gt;
* Routing&lt;br /&gt;
* Client/server, ARP, DNS, HTTP, SSL&lt;br /&gt;
* Security, encryption&lt;br /&gt;
* How all of that works, and tools for looking at it&lt;br /&gt;
&lt;br /&gt;
Unit 2 Network Programming&lt;br /&gt;
* Interprocess communication (BSD IPC paper)&lt;br /&gt;
* Processes, pipes, signals, socketpairs, asynch I/O&lt;br /&gt;
* Threads, shared memory, etc. &lt;br /&gt;
&lt;br /&gt;
Unit 3 Selected topics&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
* Able to use Linux systems and terminal - managing files, running code, using utility programs. &lt;br /&gt;
* Understanding of data flow on the internet.&lt;br /&gt;
** Can give precise details (diagrams, trace through examples, explain tradeoffs) of how data is transmitted between programs on a single machine and on different machines via the Internet.&lt;br /&gt;
* Understanding the fundamentals of network security and encryption.&lt;br /&gt;
* Ability to write client and server programs.&lt;br /&gt;
** Completed multiple different client/server and related programs independently, can explain the overall design of the programs and the details of how they are implemented.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=893</id>
		<title>CS 473</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=893"/>
		<updated>2026-08-13T23:32:58Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* General Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CS 473/573 Computer Networks is required in the academic concentration of the CS BS and can be taken as an elective for others.&lt;br /&gt;
&lt;br /&gt;
This page contains the syllabus/course schedule for CS 473/573 for the most recent offering (fall 2026). Previous terms - [[CS 473 Fall 2025|fall 2025 kinne]], [https://cs.indstate.edu/info/syllabi/cs473-f2022-cox.pdf fall 2022 Cox], [https://cs.indstate.edu/info/syllabi/cs473-f2021-kinne.pdf fall 2021 Kinne], [https://cs.indstate.edu/info/syllabi/cs473-s2019-baker.pdf fall 2019 Baker].&lt;br /&gt;
&lt;br /&gt;
Note that all sections of the course will use the same homeworks and lab assignments. Quizzes and exams may be slightly different for the online versus face to face students.&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/CS_473&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important&#039;&#039;&#039; - If you are a graduate student who took CS 473 as an undergraduate, or had transfer credit for CS 473, then you should NOT take CS 573. The system would let you register, but the course would not count towards your MS degree.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [http://mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Meeting:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; TR 11am-12:15pm in Root Hall (RO) A-106, over Teams (link in Canvas, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Exams:&#039;&#039;  every three weeks on Thursdays (Sep 3, Sep 24, Oct 15, Nov 5) during lecture time (11am-12:15pm).  &#039;&#039;(For those with another class at that time, we will arrange the time after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; Thursday, Dec 10, 10-11:50am. &#039;&#039;(For those with another class at that time, your exam time will be decided after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - For CS 473 the prereq is: A grade of C or better in CS 203 or CS 303, and in CS 351. For CS 573 the prereq is: C or better in CS 456 or CS 556 or A- or better in CS 500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
We will use selections from the following free online sources. We may add to this list as needed.&lt;br /&gt;
* [http://beej.us/guide/bgnet/ Beej&#039;s Guide to Network Programming], [https://beej.us/guide/bgnet0/ Beej&#039;s Guide to Networking Concepts]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Internet_protocol_suite Internet Protocol], [https://en.wikipedia.org/wiki/Transmission_Control_Protocol TCP Protocol], [https://en.wikipedia.org/wiki/IPv4 IPv4], [https://en.wikipedia.org/wiki/Ethernet_frame#Ethernet_II Ethernet II], [https://en.wikipedia.org/wiki/HTTP HTTP on Wikipedia], [https://developer.mozilla.org/en-US/docs/Web/HTTP HTTP on MDN], [https://datatracker.ietf.org/doc/html/rfc2616 HTTP 1.1 definition]&lt;br /&gt;
* [https://docs.freebsd.org/44doc/psd/20.ipctut/paper.pdf An Introductory 4.4BSD Interprocess Communication Tutorial]&lt;br /&gt;
* Unix Network Programming, Volume 1: The Sockets Networking API 3rd Edition by W. Richard Stevens (Author), Bill Fenner (Author), Andrew M. Rudoff (Author) &lt;br /&gt;
* The Unix Manual Pages (man)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software/Programs&#039;&#039;&#039;&lt;br /&gt;
* [https://www.wireshark.org/download.html WireShark]&lt;br /&gt;
* Programming - probably some in Python, C, and Rust&lt;br /&gt;
* Telnet: [https://blog.mrkeyshop.com/en/guides/how-to-enable-and-use-telnet-on-windows-11-and-10/ install/enable on Windows]. For Mac OS, first install [https://brew.sh/ homebrew] and then [https://formulae.brew.sh/formula/telnet#default brew install telnet].&lt;br /&gt;
** If using the builtin Windows 10/11 telnet client, open a command prompt, then type telnet and Enter to start telnet. To open a connection, type something like: &amp;lt;code&amp;gt;open cs.indstate.edu 47300&amp;lt;/code&amp;gt; and enter. The display is a little quirky - when you type it will overwrite characters already on the screen.&lt;br /&gt;
* Putty: can also be used as a telnet client on Windows. [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html Download]. To use as a telnet client, when you run Putty, set the Hostname (e.g., cs.indstate.edu) and Port as desired (e.g., 47300), select Other for Connection Type, and click to change &amp;quot;Telnet&amp;quot; to &amp;quot;Raw&amp;quot;, then click Open.&lt;br /&gt;
* Netcat: there are various versions. One cross-platform version is: https://nmap.org/ncat/. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgA4sPuiwtstR79DncedV5WLAYtZuo0T5oehIhGcpsQed5Y this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs473/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~cs473/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The course is an introduction to networking and includes detailed study of Internet protocols and socket programming. Topics include a study of IP, UDP, and TCP protocols, as well as application layer protocols such as HTTP and SMTP. Students learn to program both a client and a server.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Network protocols, the Internet&lt;br /&gt;
* IPv4, IPv6, UDP, TCP&lt;br /&gt;
* Routing&lt;br /&gt;
* Client/server, ARP, DNS, HTTP, SSL&lt;br /&gt;
* Security, encryption&lt;br /&gt;
* How all of that works, and tools for looking at it&lt;br /&gt;
&lt;br /&gt;
Unit 2 Network Programming&lt;br /&gt;
* Interprocess communication (BSD IPC paper)&lt;br /&gt;
* Processes, pipes, signals, socketpairs, asynch I/O&lt;br /&gt;
* Threads, shared memory, etc. &lt;br /&gt;
&lt;br /&gt;
Unit 3 Selected topics&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
* Able to use Linux systems and terminal - managing files, running code, using utility programs. &lt;br /&gt;
* Understanding of data flow on the internet.&lt;br /&gt;
** Can give precise details (diagrams, trace through examples, explain tradeoffs) of how data is transmitted between programs on a single machine and on different machines via the Internet.&lt;br /&gt;
* Understanding the fundamentals of network security and encryption.&lt;br /&gt;
* Ability to write client and server programs.&lt;br /&gt;
** Completed multiple different client/server and related programs independently, can explain the overall design of the programs and the details of how they are implemented.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=892</id>
		<title>CS 473</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=892"/>
		<updated>2026-08-13T23:27:12Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CS 473/573 Computer Networks is required in the academic concentration of the CS BS and can be taken as an elective for others.&lt;br /&gt;
&lt;br /&gt;
This page contains the syllabus/course schedule for CS 473/573 for the most recent offering (fall 2026). Previous terms - [[CS 473 Fall 2025|fall 2025 kinne]], [https://cs.indstate.edu/info/syllabi/cs473-f2022-cox.pdf fall 2022 Cox], [https://cs.indstate.edu/info/syllabi/cs473-f2021-kinne.pdf fall 2021 Kinne], [https://cs.indstate.edu/info/syllabi/cs473-s2019-baker.pdf fall 2019 Baker].&lt;br /&gt;
&lt;br /&gt;
Note that all sections of the course will use the same homeworks and lab assignments. Quizzes and exams may be slightly different for the online versus face to face students.&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/CS_473&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important&#039;&#039;&#039; - If you are a graduate student who took CS 473 as an undergraduate, or had transfer credit for CS 473, then you should NOT take CS 573. The system would let you register, but the course would not count towards your MS degree.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [http://mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Myers Technology Center (TC) 301D and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; normally in my office - MW 10:30-1pm, R 9-11am, 12:30-3pm, F 9am-3pm; normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Meeting:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; TR 11am-12:15pm in Myers Technology Center (TC) 308, over Zoom (link in Canvas, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Exams:&#039;&#039;  every three weeks on Thursdays (Sep 4, Sep 25, Oct 16, Nov 6) during lecture time (11am-12:15pm).  &#039;&#039;(For those with another class at that time, we will arrange the time after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; Thursday, Dec 11, 10-11:50am. &#039;&#039;(For those with another class at that time, your exam time will be decided after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - For CS 473 the prereq is: A grade of C or better in CS 203 or CS 303, and in CS 351. For CS 573 the prereq is: C or better in CS 456 or CS 556 or A- or better in CS 500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CRN numbers&#039;&#039;&#039; - 52629 (CS 473-001), 51234 (CS 473-301), 53103 (CS 573-003), 51235 (CS 573-301).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
We will use selections from the following free online sources. We may add to this list as needed.&lt;br /&gt;
* [http://beej.us/guide/bgnet/ Beej&#039;s Guide to Network Programming], [https://beej.us/guide/bgnet0/ Beej&#039;s Guide to Networking Concepts]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Internet_protocol_suite Internet Protocol], [https://en.wikipedia.org/wiki/Transmission_Control_Protocol TCP Protocol], [https://en.wikipedia.org/wiki/IPv4 IPv4], [https://en.wikipedia.org/wiki/Ethernet_frame#Ethernet_II Ethernet II], [https://en.wikipedia.org/wiki/HTTP HTTP on Wikipedia], [https://developer.mozilla.org/en-US/docs/Web/HTTP HTTP on MDN], [https://datatracker.ietf.org/doc/html/rfc2616 HTTP 1.1 definition]&lt;br /&gt;
* [https://docs.freebsd.org/44doc/psd/20.ipctut/paper.pdf An Introductory 4.4BSD Interprocess Communication Tutorial]&lt;br /&gt;
* Unix Network Programming, Volume 1: The Sockets Networking API 3rd Edition by W. Richard Stevens (Author), Bill Fenner (Author), Andrew M. Rudoff (Author) &lt;br /&gt;
* The Unix Manual Pages (man)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software/Programs&#039;&#039;&#039;&lt;br /&gt;
* [https://www.wireshark.org/download.html WireShark]&lt;br /&gt;
* Programming - probably some in Python and some in C&lt;br /&gt;
* Telnet: [https://blog.mrkeyshop.com/en/guides/how-to-enable-and-use-telnet-on-windows-11-and-10/ install/enable on Windows]. For Mac OS, first install [https://brew.sh/ homebrew] and then [https://formulae.brew.sh/formula/telnet#default brew install telnet].&lt;br /&gt;
** If using the builtin Windows 10/11 telnet client, open a command prompt, then type telnet and Enter to start telnet. To open a connection, type something like: &amp;lt;code&amp;gt;open cs.indstate.edu 47300&amp;lt;/code&amp;gt; and enter. The display is a little quirky - when you type it will overwrite characters already on the screen.&lt;br /&gt;
* Putty: can also be used as a telnet client on Windows. [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html Download]. To use as a telnet client, when you run Putty, set the Hostname (e.g., cs.indstate.edu) and Port as desired (e.g., 47300), select Other for Connection Type, and click to change &amp;quot;Telnet&amp;quot; to &amp;quot;Raw&amp;quot;, then click Open.&lt;br /&gt;
* Netcat: there are various versions. One cross-platform version is: https://nmap.org/ncat/. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs473/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~cs473/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The course is an introduction to networking and includes detailed study of Internet protocols and socket programming. Topics include a study of IP, UDP, and TCP protocols, as well as application layer protocols such as HTTP and SMTP. Students learn to program both a client and a server.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Network protocols, the Internet&lt;br /&gt;
* IPv4, IPv6, UDP, TCP&lt;br /&gt;
* Routing&lt;br /&gt;
* Client/server, ARP, DNS, HTTP, SSL&lt;br /&gt;
* Security, encryption&lt;br /&gt;
* How all of that works, and tools for looking at it&lt;br /&gt;
&lt;br /&gt;
Unit 2 Network Programming&lt;br /&gt;
* Interprocess communication (BSD IPC paper)&lt;br /&gt;
* Processes, pipes, signals, socketpairs, asynch I/O&lt;br /&gt;
* Threads, shared memory, etc. &lt;br /&gt;
&lt;br /&gt;
Unit 3 Selected topics&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
* Able to use Linux systems and terminal - managing files, running code, using utility programs. &lt;br /&gt;
* Understanding of data flow on the internet.&lt;br /&gt;
** Can give precise details (diagrams, trace through examples, explain tradeoffs) of how data is transmitted between programs on a single machine and on different machines via the Internet.&lt;br /&gt;
* Understanding the fundamentals of network security and encryption.&lt;br /&gt;
* Ability to write client and server programs.&lt;br /&gt;
** Completed multiple different client/server and related programs independently, can explain the overall design of the programs and the details of how they are implemented.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=891</id>
		<title>CS 473</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=891"/>
		<updated>2026-08-13T23:26:48Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CS 473/573 Computer Networks is required in the academic concentration of the CS BS and can be taken as an elective for others.&lt;br /&gt;
&lt;br /&gt;
This page contains the syllabus/course schedule for CS 473/573 for the most recent offering (fall 2026). Previous terms - [[CS 473 Fall 2025]], [https://cs.indstate.edu/info/syllabi/cs473-f2022-cox.pdf fall 2022 Cox], [https://cs.indstate.edu/info/syllabi/cs473-f2021-kinne.pdf fall 2021 Kinne], [https://cs.indstate.edu/info/syllabi/cs473-s2019-baker.pdf fall 2019 Baker].&lt;br /&gt;
&lt;br /&gt;
Note that all sections of the course will use the same homeworks and lab assignments. Quizzes and exams may be slightly different for the online versus face to face students.&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/CS_473&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important&#039;&#039;&#039; - If you are a graduate student who took CS 473 as an undergraduate, or had transfer credit for CS 473, then you should NOT take CS 573. The system would let you register, but the course would not count towards your MS degree.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [http://mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Myers Technology Center (TC) 301D and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; normally in my office - MW 10:30-1pm, R 9-11am, 12:30-3pm, F 9am-3pm; normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Meeting:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; TR 11am-12:15pm in Myers Technology Center (TC) 308, over Zoom (link in Canvas, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Exams:&#039;&#039;  every three weeks on Thursdays (Sep 4, Sep 25, Oct 16, Nov 6) during lecture time (11am-12:15pm).  &#039;&#039;(For those with another class at that time, we will arrange the time after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; Thursday, Dec 11, 10-11:50am. &#039;&#039;(For those with another class at that time, your exam time will be decided after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - For CS 473 the prereq is: A grade of C or better in CS 203 or CS 303, and in CS 351. For CS 573 the prereq is: C or better in CS 456 or CS 556 or A- or better in CS 500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CRN numbers&#039;&#039;&#039; - 52629 (CS 473-001), 51234 (CS 473-301), 53103 (CS 573-003), 51235 (CS 573-301).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
We will use selections from the following free online sources. We may add to this list as needed.&lt;br /&gt;
* [http://beej.us/guide/bgnet/ Beej&#039;s Guide to Network Programming], [https://beej.us/guide/bgnet0/ Beej&#039;s Guide to Networking Concepts]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Internet_protocol_suite Internet Protocol], [https://en.wikipedia.org/wiki/Transmission_Control_Protocol TCP Protocol], [https://en.wikipedia.org/wiki/IPv4 IPv4], [https://en.wikipedia.org/wiki/Ethernet_frame#Ethernet_II Ethernet II], [https://en.wikipedia.org/wiki/HTTP HTTP on Wikipedia], [https://developer.mozilla.org/en-US/docs/Web/HTTP HTTP on MDN], [https://datatracker.ietf.org/doc/html/rfc2616 HTTP 1.1 definition]&lt;br /&gt;
* [https://docs.freebsd.org/44doc/psd/20.ipctut/paper.pdf An Introductory 4.4BSD Interprocess Communication Tutorial]&lt;br /&gt;
* Unix Network Programming, Volume 1: The Sockets Networking API 3rd Edition by W. Richard Stevens (Author), Bill Fenner (Author), Andrew M. Rudoff (Author) &lt;br /&gt;
* The Unix Manual Pages (man)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software/Programs&#039;&#039;&#039;&lt;br /&gt;
* [https://www.wireshark.org/download.html WireShark]&lt;br /&gt;
* Programming - probably some in Python and some in C&lt;br /&gt;
* Telnet: [https://blog.mrkeyshop.com/en/guides/how-to-enable-and-use-telnet-on-windows-11-and-10/ install/enable on Windows]. For Mac OS, first install [https://brew.sh/ homebrew] and then [https://formulae.brew.sh/formula/telnet#default brew install telnet].&lt;br /&gt;
** If using the builtin Windows 10/11 telnet client, open a command prompt, then type telnet and Enter to start telnet. To open a connection, type something like: &amp;lt;code&amp;gt;open cs.indstate.edu 47300&amp;lt;/code&amp;gt; and enter. The display is a little quirky - when you type it will overwrite characters already on the screen.&lt;br /&gt;
* Putty: can also be used as a telnet client on Windows. [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html Download]. To use as a telnet client, when you run Putty, set the Hostname (e.g., cs.indstate.edu) and Port as desired (e.g., 47300), select Other for Connection Type, and click to change &amp;quot;Telnet&amp;quot; to &amp;quot;Raw&amp;quot;, then click Open.&lt;br /&gt;
* Netcat: there are various versions. One cross-platform version is: https://nmap.org/ncat/. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs473/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~cs473/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The course is an introduction to networking and includes detailed study of Internet protocols and socket programming. Topics include a study of IP, UDP, and TCP protocols, as well as application layer protocols such as HTTP and SMTP. Students learn to program both a client and a server.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Network protocols, the Internet&lt;br /&gt;
* IPv4, IPv6, UDP, TCP&lt;br /&gt;
* Routing&lt;br /&gt;
* Client/server, ARP, DNS, HTTP, SSL&lt;br /&gt;
* Security, encryption&lt;br /&gt;
* How all of that works, and tools for looking at it&lt;br /&gt;
&lt;br /&gt;
Unit 2 Network Programming&lt;br /&gt;
* Interprocess communication (BSD IPC paper)&lt;br /&gt;
* Processes, pipes, signals, socketpairs, asynch I/O&lt;br /&gt;
* Threads, shared memory, etc. &lt;br /&gt;
&lt;br /&gt;
Unit 3 Selected topics&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
* Able to use Linux systems and terminal - managing files, running code, using utility programs. &lt;br /&gt;
* Understanding of data flow on the internet.&lt;br /&gt;
** Can give precise details (diagrams, trace through examples, explain tradeoffs) of how data is transmitted between programs on a single machine and on different machines via the Internet.&lt;br /&gt;
* Understanding the fundamentals of network security and encryption.&lt;br /&gt;
* Ability to write client and server programs.&lt;br /&gt;
** Completed multiple different client/server and related programs independently, can explain the overall design of the programs and the details of how they are implemented.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=890</id>
		<title>CS 473</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_473&amp;diff=890"/>
		<updated>2026-08-13T19:10:43Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CS 473/573 Computer Networks is required in the academic concentration of the CS BS and can be taken as an elective for others.&lt;br /&gt;
&lt;br /&gt;
This page contains the syllabus/course schedule for CS 473/573 for the most recent offering (fall 2025). Previous terms - [[CS 473 Fall 2025]], [https://cs.indstate.edu/info/syllabi/cs473-f2022-cox.pdf fall 2022 Cox], [https://cs.indstate.edu/info/syllabi/cs473-f2021-kinne.pdf fall 2021 Kinne], [https://cs.indstate.edu/info/syllabi/cs473-s2019-baker.pdf fall 2019 Baker].&lt;br /&gt;
&lt;br /&gt;
Note that all sections of the course will use the same homeworks and lab assignments. Quizzes and exams may be slightly different for the online versus face to face students.&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/CS_473&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important&#039;&#039;&#039; - If you are a graduate student who took CS 473 as an undergraduate, or had transfer credit for CS 473, then you should NOT take CS 573. The system would let you register, but the course would not count towards your MS degree.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [http://mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Myers Technology Center (TC) 301D and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; normally in my office - MW 10:30-1pm, R 9-11am, 12:30-3pm, F 9am-3pm; normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Meeting:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; TR 11am-12:15pm in Myers Technology Center (TC) 308, over Zoom (link in Canvas, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Exams:&#039;&#039;  every three weeks on Thursdays (Sep 4, Sep 25, Oct 16, Nov 6) during lecture time (11am-12:15pm).  &#039;&#039;(For those with another class at that time, we will arrange the time after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; Thursday, Dec 11, 10-11:50am. &#039;&#039;(For those with another class at that time, your exam time will be decided after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - For CS 473 the prereq is: A grade of C or better in CS 203 or CS 303, and in CS 351. For CS 573 the prereq is: C or better in CS 456 or CS 556 or A- or better in CS 500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CRN numbers&#039;&#039;&#039; - 52629 (CS 473-001), 51234 (CS 473-301), 53103 (CS 573-003), 51235 (CS 573-301).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
We will use selections from the following free online sources. We may add to this list as needed.&lt;br /&gt;
* [http://beej.us/guide/bgnet/ Beej&#039;s Guide to Network Programming], [https://beej.us/guide/bgnet0/ Beej&#039;s Guide to Networking Concepts]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Internet_protocol_suite Internet Protocol], [https://en.wikipedia.org/wiki/Transmission_Control_Protocol TCP Protocol], [https://en.wikipedia.org/wiki/IPv4 IPv4], [https://en.wikipedia.org/wiki/Ethernet_frame#Ethernet_II Ethernet II], [https://en.wikipedia.org/wiki/HTTP HTTP on Wikipedia], [https://developer.mozilla.org/en-US/docs/Web/HTTP HTTP on MDN], [https://datatracker.ietf.org/doc/html/rfc2616 HTTP 1.1 definition]&lt;br /&gt;
* [https://docs.freebsd.org/44doc/psd/20.ipctut/paper.pdf An Introductory 4.4BSD Interprocess Communication Tutorial]&lt;br /&gt;
* Unix Network Programming, Volume 1: The Sockets Networking API 3rd Edition by W. Richard Stevens (Author), Bill Fenner (Author), Andrew M. Rudoff (Author) &lt;br /&gt;
* The Unix Manual Pages (man)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software/Programs&#039;&#039;&#039;&lt;br /&gt;
* [https://www.wireshark.org/download.html WireShark]&lt;br /&gt;
* Programming - probably some in Python and some in C&lt;br /&gt;
* Telnet: [https://blog.mrkeyshop.com/en/guides/how-to-enable-and-use-telnet-on-windows-11-and-10/ install/enable on Windows]. For Mac OS, first install [https://brew.sh/ homebrew] and then [https://formulae.brew.sh/formula/telnet#default brew install telnet].&lt;br /&gt;
** If using the builtin Windows 10/11 telnet client, open a command prompt, then type telnet and Enter to start telnet. To open a connection, type something like: &amp;lt;code&amp;gt;open cs.indstate.edu 47300&amp;lt;/code&amp;gt; and enter. The display is a little quirky - when you type it will overwrite characters already on the screen.&lt;br /&gt;
* Putty: can also be used as a telnet client on Windows. [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html Download]. To use as a telnet client, when you run Putty, set the Hostname (e.g., cs.indstate.edu) and Port as desired (e.g., 47300), select Other for Connection Type, and click to change &amp;quot;Telnet&amp;quot; to &amp;quot;Raw&amp;quot;, then click Open.&lt;br /&gt;
* Netcat: there are various versions. One cross-platform version is: https://nmap.org/ncat/. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs473/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~cs473/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The course is an introduction to networking and includes detailed study of Internet protocols and socket programming. Topics include a study of IP, UDP, and TCP protocols, as well as application layer protocols such as HTTP and SMTP. Students learn to program both a client and a server.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Network protocols, the Internet&lt;br /&gt;
* IPv4, IPv6, UDP, TCP&lt;br /&gt;
* Routing&lt;br /&gt;
* Client/server, ARP, DNS, HTTP, SSL&lt;br /&gt;
* Security, encryption&lt;br /&gt;
* How all of that works, and tools for looking at it&lt;br /&gt;
&lt;br /&gt;
Unit 2 Network Programming&lt;br /&gt;
* Interprocess communication (BSD IPC paper)&lt;br /&gt;
* Processes, pipes, signals, socketpairs, asynch I/O&lt;br /&gt;
* Threads, shared memory, etc. &lt;br /&gt;
&lt;br /&gt;
Unit 3 Selected topics&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
* Able to use Linux systems and terminal - managing files, running code, using utility programs. &lt;br /&gt;
* Understanding of data flow on the internet.&lt;br /&gt;
** Can give precise details (diagrams, trace through examples, explain tradeoffs) of how data is transmitted between programs on a single machine and on different machines via the Internet.&lt;br /&gt;
* Understanding the fundamentals of network security and encryption.&lt;br /&gt;
* Ability to write client and server programs.&lt;br /&gt;
** Completed multiple different client/server and related programs independently, can explain the overall design of the programs and the details of how they are implemented.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_473_Fall_2025&amp;diff=889</id>
		<title>CS 473 Fall 2025</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_473_Fall_2025&amp;diff=889"/>
		<updated>2026-08-13T19:01:51Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: Created page with &amp;quot;CS 473/573 Computer Networks is required in the academic concentration of the CS BS and can be taken as an elective for others.  This page contains the syllabus for CS 473/573 for the most recent offering (fall 2025). Previous terms - [https://cs.indstate.edu/info/syllabi/cs473-f2022-cox.pdf fall 2022 Cox], [https://cs.indstate.edu/info/syllabi/cs473-f2021-kinne.pdf fall 2021 Kinne], [https://cs.indstate.edu/info/syllabi/cs473-s2019-baker.pdf fall 2019 Baker].  Note that...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CS 473/573 Computer Networks is required in the academic concentration of the CS BS and can be taken as an elective for others.&lt;br /&gt;
&lt;br /&gt;
This page contains the syllabus for CS 473/573 for the most recent offering (fall 2025). Previous terms - [https://cs.indstate.edu/info/syllabi/cs473-f2022-cox.pdf fall 2022 Cox], [https://cs.indstate.edu/info/syllabi/cs473-f2021-kinne.pdf fall 2021 Kinne], [https://cs.indstate.edu/info/syllabi/cs473-s2019-baker.pdf fall 2019 Baker].&lt;br /&gt;
&lt;br /&gt;
Note that all sections of the course will use the same homeworks and lab assignments. Quizzes and exams may be slightly different for the online versus face to face students.&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/CS_473&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important&#039;&#039;&#039; - If you are a graduate student who took CS 473 as an undergraduate, or had transfer credit for CS 473, then you should NOT take CS 573. The system would let you register, but the course would not count towards your MS degree.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [http://mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Myers Technology Center (TC) 301D and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; normally in my office - MW 10:30-1pm, R 9-11am, 12:30-3pm, F 9am-3pm; normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Meeting:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; TR 11am-12:15pm in Myers Technology Center (TC) 308, over Zoom (link in Canvas, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Exams:&#039;&#039;  every three weeks on Thursdays (Sep 4, Sep 25, Oct 16, Nov 6) during lecture time (11am-12:15pm).  &#039;&#039;(For those with another class at that time, we will arrange the time after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; Thursday, Dec 11, 10-11:50am. &#039;&#039;(For those with another class at that time, your exam time will be decided after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - For CS 473 the prereq is: A grade of C or better in CS 203 or CS 303, and in CS 351. For CS 573 the prereq is: C or better in CS 456 or CS 556 or A- or better in CS 500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CRN numbers&#039;&#039;&#039; - 52629 (CS 473-001), 51234 (CS 473-301), 53103 (CS 573-003), 51235 (CS 573-301).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
We will use selections from the following free online sources. We may add to this list as needed.&lt;br /&gt;
* [http://beej.us/guide/bgnet/ Beej&#039;s Guide to Network Programming], [https://beej.us/guide/bgnet0/ Beej&#039;s Guide to Networking Concepts]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Internet_protocol_suite Internet Protocol], [https://en.wikipedia.org/wiki/Transmission_Control_Protocol TCP Protocol], [https://en.wikipedia.org/wiki/IPv4 IPv4], [https://en.wikipedia.org/wiki/Ethernet_frame#Ethernet_II Ethernet II], [https://en.wikipedia.org/wiki/HTTP HTTP on Wikipedia], [https://developer.mozilla.org/en-US/docs/Web/HTTP HTTP on MDN], [https://datatracker.ietf.org/doc/html/rfc2616 HTTP 1.1 definition]&lt;br /&gt;
* [https://docs.freebsd.org/44doc/psd/20.ipctut/paper.pdf An Introductory 4.4BSD Interprocess Communication Tutorial]&lt;br /&gt;
* Unix Network Programming, Volume 1: The Sockets Networking API 3rd Edition by W. Richard Stevens (Author), Bill Fenner (Author), Andrew M. Rudoff (Author) &lt;br /&gt;
* The Unix Manual Pages (man)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software/Programs&#039;&#039;&#039;&lt;br /&gt;
* [https://www.wireshark.org/download.html WireShark]&lt;br /&gt;
* Programming - probably some in Python and some in C&lt;br /&gt;
* Telnet: [https://blog.mrkeyshop.com/en/guides/how-to-enable-and-use-telnet-on-windows-11-and-10/ install/enable on Windows]. For Mac OS, first install [https://brew.sh/ homebrew] and then [https://formulae.brew.sh/formula/telnet#default brew install telnet].&lt;br /&gt;
** If using the builtin Windows 10/11 telnet client, open a command prompt, then type telnet and Enter to start telnet. To open a connection, type something like: &amp;lt;code&amp;gt;open cs.indstate.edu 47300&amp;lt;/code&amp;gt; and enter. The display is a little quirky - when you type it will overwrite characters already on the screen.&lt;br /&gt;
* Putty: can also be used as a telnet client on Windows. [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html Download]. To use as a telnet client, when you run Putty, set the Hostname (e.g., cs.indstate.edu) and Port as desired (e.g., 47300), select Other for Connection Type, and click to change &amp;quot;Telnet&amp;quot; to &amp;quot;Raw&amp;quot;, then click Open.&lt;br /&gt;
* Netcat: there are various versions. One cross-platform version is: https://nmap.org/ncat/. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~cs473/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~cs473/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The course is an introduction to networking and includes detailed study of Internet protocols and socket programming. Topics include a study of IP, UDP, and TCP protocols, as well as application layer protocols such as HTTP and SMTP. Students learn to program both a client and a server.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Network protocols, the Internet&lt;br /&gt;
* IPv4, IPv6, UDP, TCP&lt;br /&gt;
* Routing&lt;br /&gt;
* Client/server, ARP, DNS, HTTP, SSL&lt;br /&gt;
* Security, encryption&lt;br /&gt;
* How all of that works, and tools for looking at it&lt;br /&gt;
&lt;br /&gt;
Unit 2 Network Programming&lt;br /&gt;
* Interprocess communication (BSD IPC paper)&lt;br /&gt;
* Processes, pipes, signals, socketpairs, asynch I/O&lt;br /&gt;
* Threads, shared memory, etc. &lt;br /&gt;
&lt;br /&gt;
Unit 3 Selected topics&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
* Able to use Linux systems and terminal - managing files, running code, using utility programs. &lt;br /&gt;
* Understanding of data flow on the internet.&lt;br /&gt;
** Can give precise details (diagrams, trace through examples, explain tradeoffs) of how data is transmitted between programs on a single machine and on different machines via the Internet.&lt;br /&gt;
* Understanding the fundamentals of network security and encryption.&lt;br /&gt;
* Ability to write client and server programs.&lt;br /&gt;
** Completed multiple different client/server and related programs independently, can explain the overall design of the programs and the details of how they are implemented.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=FAQ&amp;diff=888</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=FAQ&amp;diff=888"/>
		<updated>2026-08-12T01:08:53Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Recommended Computer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Recommended Computer==&lt;br /&gt;
Much of what we do in CS courses can work in Windows, Mac OS, Linux, or Chrome.  There will be an odd thing or two still that may not work in Chrome.  &lt;br /&gt;
&lt;br /&gt;
All other things being equal, getting a computer that is not &amp;quot;bottom of the barrel&amp;quot; would be good.  Chromebooks in the $400+ range should generally work reasonably well.  For Windows/Linux/Mac OS laptops, you should be looking for 8GB RAM bare minimum, preferred 16GB if possible, and avoid getting a laptop with an i3 or Celeron processor; this roughly corresponds to the $500+ price range.  You can potentially get anything to work, but will have an easier time with a medium-range computer than a low-end system.&lt;br /&gt;
&lt;br /&gt;
If spending $1-2k on a computer isn&#039;t really a problem for you, that is all the better. Getting something in this price range should have no problems with any of your CS coursework, and is more likely to still be useable in a few years.&lt;br /&gt;
&lt;br /&gt;
If the particular OS doesn&#039;t really matter to you, probably the most common choice among CS professionals is to have a Windows computer, that you will at some point install Linux on as well. Mac OS and Linux are very similar, so those who choose a Mac OS will have a system that is also very good for programming. All this being said, it is no problem to stick with whichever OS you are most comfortable with.&lt;br /&gt;
&lt;br /&gt;
For laptops, we recommend getting at least a 3 year warranty (since they tend to break if you actually do transport them around).  Also, we recommend getting an option that has a long battery life (rule of thumb - battery life will be half of its original rating after 1-2 years of regular daily use). If you are really going to be carrying around the laptop a lot (daily use in your classes), you might prefer to get one that is light and portable (as opposed to getting something that is great for gaming, but a pain to lug around) and have a desktop at home that has nicer specs for gaming or other things.&lt;br /&gt;
&lt;br /&gt;
You should also have the ability to install programs on the system and have a normally reliable internet connection at home if possible.&lt;br /&gt;
&lt;br /&gt;
If you have a particular system in mind for purchase that you would like an opinion on, please feel free to contact one of the CS faculty members.&lt;br /&gt;
&lt;br /&gt;
University recommendations are listed [https://indstate.teamdynamix.com/TDClient/1851/Portal/KB/Article/71665/Student-Laptop-Minimum-Specifications here] and are similar to that described above.&lt;br /&gt;
&lt;br /&gt;
== CS 151 == &lt;br /&gt;
New students majoring in computer science should take ECT 130 and CS 151 their first term. ECT 130 is an overview of CS, IT, and CEET majors. It is required for all of those majors. There is a &#039;&#039;small&#039;&#039; amount of programming. CS 151 is the first programming course in the CS major, is a full semester of programming (in Python, as of 2026), and helps to decide whether you prefer CS or IT.&lt;br /&gt;
&lt;br /&gt;
If you are a new student and have a really full first semester, you might just take ECT 130 your first term, and wait to take CS 151 your second term. But we recommend taking CS 151 your first term if you can fit it in; it helps you decide if you want to stick with computer science, and it gets you further into the major sooner (which is good for applying for internships).&lt;br /&gt;
&lt;br /&gt;
== Should you buy your textbooks? ==&lt;br /&gt;
Find a copy for a reasoanble price, and yes, purchase it. You will be more likely to actually read it if you have a copy (rather than trying to borrow a copy or something). Whatever your major is, you should want to learn the course content. Also, not everything you need to know is covered in lecture (there just isn&#039;t enough time), and it&#039;s up to you to fill in the gaps.&lt;br /&gt;
&lt;br /&gt;
== Positions in the department ==&lt;br /&gt;
We consider all CS students whenever we have an opening. The most important qualities we consider are how well you do in your courses (are you one of the top few students?), how responsible and hard-working you are, and how well you communicate and interact with others.&lt;br /&gt;
&lt;br /&gt;
== Finding information at ISU ==&lt;br /&gt;
Think of what the department might be called, and try going to the [https://indianastate.edu/search/offices A-Z Department/Office Directory] and searching using the browser&#039;s search option (ctrl-f). You can also try doing a regular internet search (google, bing, etc.) with Indiana State University and whatever you are looking for (directory, schedule of classes, etc.). That sometimes gets you to the right page faster than using ISU&#039;s search page.&lt;br /&gt;
&lt;br /&gt;
== How to contact your professors ==&lt;br /&gt;
Check your professor&#039;s class schedule (see the schedule of classes linked off the [http://cs.indstate.edu CS homepage]). You can normally catch a professor just before or just after one of their classes, and then ask them when you could come to their office or how they prefer to be contacted. Once the semester starts office hours should be in the syllabus for each course.&lt;br /&gt;
&lt;br /&gt;
== Why are you Here? ==&lt;br /&gt;
Ask yourself why you are paying ISU thousands of dollars for a degree? Hopefully because you are &#039;&#039;interested&#039;&#039; in CS and also want to get a job in CS after graduating. This is much more likely to happen (getting a job in CS) if you take your courses seriously and put your full effort in. Students who do not do their best, or try to get others to to their work, have much less success in securing good jobs after graduating.&lt;br /&gt;
&lt;br /&gt;
== Programming and Linux ==&lt;br /&gt;
Many professors (e.g., Kinne) require students to turn in assignments on the CS server. For these courses you will do most (or all) of your programming assignments for the course on the CS server. To be counted as correct, in these courses your program must compile and run on the CS server. See [[Programming and CS - Getting Started]] for help in getting started on the CS machines.&lt;br /&gt;
&lt;br /&gt;
== Planning Ahead ==&lt;br /&gt;
You should begin to think about applying for jobs at least one year before you will do so. If you wait until you graduate to think about how to get a job after graduation, you will not be as successful. Some of our graduates have decided to complete an industry certification program (e.g., from Microsoft, Oracle, or Cisco) to increase their chances of getting a job after graduation; we have been told this can take about one year from when you begin.&lt;br /&gt;
&lt;br /&gt;
For both on campus jobs and jobs after graduation, you wil benefit by doing well in your classes - (i) doing well better prepares you, (ii) having a higher GPA looks better to prospective employers, and (iii) your professors can give you good recommendation letters if you have done well in their classes. It really does pay off to do your best in your classes (and participate fully - pay attention, answer/ask questions, etc.).&lt;br /&gt;
&lt;br /&gt;
== On Campus Jobs ==&lt;br /&gt;
You can view available on-campus jobs by visiting [http://jobs.indstate.edu/] and clicking on the appropriate category for you. Make sure to check back regularly because jobs might not all be posted by the beginning of the semester. To apply for a position, you need to apply online; it will normally not do you any good to contact the department in person as well. Make sure to submit all documents that are asked for (e.g., resume, transcripts, cover letter). A cover letter should briefly explain your background and interests, and indicate enthusiasm for the position you are applying for. For the resume, see [[Careers]] for advice and you can find examples online to get ideas for the appropriate format and contents; as a general philosophy, you should be very positive about yourself, but do not ever lie (e.g., do not say you know Java if you do not). For additional help in writing your resume and cover letter, you can contact the Career Center or more senior CS students (e.g., lab assistants who are currently on duty in the lab).&lt;br /&gt;
&lt;br /&gt;
Note for new students. The application system asks you to list some number of references. You can list professors who you will have in class or your advisor, but they will not be able to say much about you other than what they might know from your transcript. It is better to list a reference that knows you (possibly someone you had in previous studies or work). Once you have been in class long enough to have had some assignments or exams graded, the professors you have in class might able to give more support in a recommendation for you. And always check with someone before listing them as a reference.&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=FAQ&amp;diff=887</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=FAQ&amp;diff=887"/>
		<updated>2026-08-12T01:04:48Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Recommended Computer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Recommended Computer==&lt;br /&gt;
Much of what we do in CS courses can work in Windows, Mac OS, Linux, or Chrome.  There will be an odd thing or two still that may not work in Chrome.  &lt;br /&gt;
&lt;br /&gt;
All other things being equal, getting a computer that is not &amp;quot;bottom of the barrel&amp;quot; would be good.  Chromebooks in the $400+ range should generally work reasonably well.  For Windows/Linux/Mac OS laptops, you should be looking for 8GB RAM bare minimum, preferred 16GB if possible, and avoid getting a laptop with an i3 or Celeron processor; this roughly corresponds to the $500+ price range.  You can potentially get anything to work, but will have an easier time with a medium-range computer than a low-end system.&lt;br /&gt;
&lt;br /&gt;
If spending $1-2k on a computer isn&#039;t really a problem for you, that is all the better. Getting something in this price range should have no problems with any of your CS coursework, and is more likely to still be useable in a few years.&lt;br /&gt;
&lt;br /&gt;
If the particular OS doesn&#039;t really matter to you, probably the most common choice among CS professionals is to have a Windows computer, that you will at some point install Linux on as well. Mac OS and Linux are very similar, so those who choose a Mac OS will have a system that is also very good for programming. All this being said, it is no problem to stick with whichever OS you are most comfortable with.&lt;br /&gt;
&lt;br /&gt;
For laptops, we recommend getting at least a 3 year warranty (since they tend to break if you actually do transport them around).  Also, we recommend getting an option that has a long battery life (rule of thumb - battery life will be half of its original rating after 1-2 years of regular daily use).&lt;br /&gt;
&lt;br /&gt;
You should also have the ability to install programs on the system and have a normally reliable internet connection at home if possible.&lt;br /&gt;
&lt;br /&gt;
If you have a particular system in mind for purchase that you would like an opinion on, please feel free to contact one of the CS faculty members.&lt;br /&gt;
&lt;br /&gt;
University recommendations are listed [https://indstate.teamdynamix.com/TDClient/1851/Portal/KB/Article/71665/Student-Laptop-Minimum-Specifications here] and are similar to that described above.&lt;br /&gt;
&lt;br /&gt;
== CS 151 == &lt;br /&gt;
New students majoring in computer science should take ECT 130 and CS 151 their first term. ECT 130 is an overview of CS, IT, and CEET majors. It is required for all of those majors. There is a &#039;&#039;small&#039;&#039; amount of programming. CS 151 is the first programming course in the CS major, is a full semester of programming (in Python, as of 2026), and helps to decide whether you prefer CS or IT.&lt;br /&gt;
&lt;br /&gt;
If you are a new student and have a really full first semester, you might just take ECT 130 your first term, and wait to take CS 151 your second term. But we recommend taking CS 151 your first term if you can fit it in; it helps you decide if you want to stick with computer science, and it gets you further into the major sooner (which is good for applying for internships).&lt;br /&gt;
&lt;br /&gt;
== Should you buy your textbooks? ==&lt;br /&gt;
Find a copy for a reasoanble price, and yes, purchase it. You will be more likely to actually read it if you have a copy (rather than trying to borrow a copy or something). Whatever your major is, you should want to learn the course content. Also, not everything you need to know is covered in lecture (there just isn&#039;t enough time), and it&#039;s up to you to fill in the gaps.&lt;br /&gt;
&lt;br /&gt;
== Positions in the department ==&lt;br /&gt;
We consider all CS students whenever we have an opening. The most important qualities we consider are how well you do in your courses (are you one of the top few students?), how responsible and hard-working you are, and how well you communicate and interact with others.&lt;br /&gt;
&lt;br /&gt;
== Finding information at ISU ==&lt;br /&gt;
Think of what the department might be called, and try going to the [https://indianastate.edu/search/offices A-Z Department/Office Directory] and searching using the browser&#039;s search option (ctrl-f). You can also try doing a regular internet search (google, bing, etc.) with Indiana State University and whatever you are looking for (directory, schedule of classes, etc.). That sometimes gets you to the right page faster than using ISU&#039;s search page.&lt;br /&gt;
&lt;br /&gt;
== How to contact your professors ==&lt;br /&gt;
Check your professor&#039;s class schedule (see the schedule of classes linked off the [http://cs.indstate.edu CS homepage]). You can normally catch a professor just before or just after one of their classes, and then ask them when you could come to their office or how they prefer to be contacted. Once the semester starts office hours should be in the syllabus for each course.&lt;br /&gt;
&lt;br /&gt;
== Why are you Here? ==&lt;br /&gt;
Ask yourself why you are paying ISU thousands of dollars for a degree? Hopefully because you are &#039;&#039;interested&#039;&#039; in CS and also want to get a job in CS after graduating. This is much more likely to happen (getting a job in CS) if you take your courses seriously and put your full effort in. Students who do not do their best, or try to get others to to their work, have much less success in securing good jobs after graduating.&lt;br /&gt;
&lt;br /&gt;
== Programming and Linux ==&lt;br /&gt;
Many professors (e.g., Kinne) require students to turn in assignments on the CS server. For these courses you will do most (or all) of your programming assignments for the course on the CS server. To be counted as correct, in these courses your program must compile and run on the CS server. See [[Programming and CS - Getting Started]] for help in getting started on the CS machines.&lt;br /&gt;
&lt;br /&gt;
== Planning Ahead ==&lt;br /&gt;
You should begin to think about applying for jobs at least one year before you will do so. If you wait until you graduate to think about how to get a job after graduation, you will not be as successful. Some of our graduates have decided to complete an industry certification program (e.g., from Microsoft, Oracle, or Cisco) to increase their chances of getting a job after graduation; we have been told this can take about one year from when you begin.&lt;br /&gt;
&lt;br /&gt;
For both on campus jobs and jobs after graduation, you wil benefit by doing well in your classes - (i) doing well better prepares you, (ii) having a higher GPA looks better to prospective employers, and (iii) your professors can give you good recommendation letters if you have done well in their classes. It really does pay off to do your best in your classes (and participate fully - pay attention, answer/ask questions, etc.).&lt;br /&gt;
&lt;br /&gt;
== On Campus Jobs ==&lt;br /&gt;
You can view available on-campus jobs by visiting [http://jobs.indstate.edu/] and clicking on the appropriate category for you. Make sure to check back regularly because jobs might not all be posted by the beginning of the semester. To apply for a position, you need to apply online; it will normally not do you any good to contact the department in person as well. Make sure to submit all documents that are asked for (e.g., resume, transcripts, cover letter). A cover letter should briefly explain your background and interests, and indicate enthusiasm for the position you are applying for. For the resume, see [[Careers]] for advice and you can find examples online to get ideas for the appropriate format and contents; as a general philosophy, you should be very positive about yourself, but do not ever lie (e.g., do not say you know Java if you do not). For additional help in writing your resume and cover letter, you can contact the Career Center or more senior CS students (e.g., lab assistants who are currently on duty in the lab).&lt;br /&gt;
&lt;br /&gt;
Note for new students. The application system asks you to list some number of references. You can list professors who you will have in class or your advisor, but they will not be able to say much about you other than what they might know from your transcript. It is better to list a reference that knows you (possibly someone you had in previous studies or work). Once you have been in class long enough to have had some assignments or exams graded, the professors you have in class might able to give more support in a recommendation for you. And always check with someone before listing them as a reference.&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=LEAD_399_Fall_2026&amp;diff=886</id>
		<title>LEAD 399 Fall 2026</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=LEAD_399_Fall_2026&amp;diff=886"/>
		<updated>2026-08-08T15:58:48Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: Created page with &amp;quot;LEAD 399 is running in the fall of 2026 as a 1 credit topics course &amp;quot;AI for College and Career&amp;quot;. This is a seminar aimed at junior/senior students looking to get up to date on AI use - the good, the bad, etc. The course is running asynchronous online.  Link to OneDrive folder with lecture slides and other files: &amp;#039;&amp;#039;&amp;#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgAz72vkRjfCR54w5u_0VHZJAXlZs0Tv7GPTyhLSq_32vb8?e=7dv82M OneDrive link]...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;LEAD 399 is running in the fall of 2026 as a 1 credit topics course &amp;quot;AI for College and Career&amp;quot;. This is a seminar aimed at junior/senior students looking to get up to date on AI use - the good, the bad, etc. The course is running asynchronous online.&lt;br /&gt;
&lt;br /&gt;
Link to OneDrive folder with lecture slides and other files: &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgAz72vkRjfCR54w5u_0VHZJAXlZs0Tv7GPTyhLSq_32vb8?e=7dv82M OneDrive link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Welcome and Getting Started=&lt;br /&gt;
An introduction to the course is given during the first week of classes. Look for an announcement and link to a recording. Slides are also available &#039;&#039;&#039;[ here]&#039;&#039;&#039; with the most important information.&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/LEAD_151_Fall_2026&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Schedule a Meeting with Me:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; MWF 10-10:50am in Root Hall A-109, over Teams (link in Canvas/Teams, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Exams:&#039;&#039;  every three weeks on Wednesdays (Sep 2, Sep 23, Oct 14, Nov 4), during lecture time (10-10:50am) for face to face section, available from this time until midnight for the online section.&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; Monday, Dec 7, 10-11:50am. &#039;&#039;(For those in the online section with another class at that time, your exam time will be decided after the term starts.)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Supplemental Instructor/Hours&#039;&#039;&#039; There likely will be a supplemental instructor for the course. Details will be posted before classes start.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; There likely will be graduate assistant help for the course. Details will be posted before classes start.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - none.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CRN numbers&#039;&#039;&#039; - 53090 for the face to face section, 51027 for the online section.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
We will use selections from the following free online sources.&lt;br /&gt;
* Additional online sources as needed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgAz72vkRjfCR54w5u_0VHZJAXlZs0Tv7GPTyhLSq_32vb8?e=7dv82M this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technology Requirements&#039;&#039;&#039;&lt;br /&gt;
* Desktop or laptop computer (Windows, Mac OS, Linux, or Chrome OS) with the ability to save files and install programs.&lt;br /&gt;
* Your ISU account, to access Canvas and course notes.&lt;br /&gt;
* Free programs you will install: &lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas. HWs will be due one week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=ECT_437_Fall_2026&amp;diff=885</id>
		<title>ECT 437 Fall 2026</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=ECT_437_Fall_2026&amp;diff=885"/>
		<updated>2026-08-08T15:48:08Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* General Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ECT 437 Senior Project 1: Project Management and ECT 438 Senior Project 2: Capstone together comprise the senior project for students in the following majors: computer science, information technology, computer and electrical engineering technology. ECT 437 is taken in the fall, and ECT 438 is taken in the spring. For ECT 437, we will be doing some &amp;quot;standard textbook&amp;quot; material on project management, do a project together as a class, and get started with project proposals that will be completed in the spring (in ECT 438).&lt;br /&gt;
&lt;br /&gt;
This website is used to keep track of the sections of ECT 437 that are for the CS majors, taught by Jeff Kinne. The sections for other majors is managed separately and taught by Dr. Javaid.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to OneDrive folder with lecture slides and other files: [https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgDrcWQrRLP4SKUamRmy5HwSAcL6arTwA3EgqY-rc75mcAg?e=DOItt7 OneDrive link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/ECT_437_Fall_2026&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Schedule a Meeting with Me:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; MW 1-2:50pm in Myers Technology Center (TC) 316, over Teams (link in Canvas/Teams, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; We have two exam slots that we will likely use for project presentations: Monday Dec 7, 3-4:50pm and Wednesday Dec 9, 1-2:50pm. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - Junior or senior standing. For those that graduate in the spring, you take ECT 437 in the preceding fall; for those who graduate in a fall semester, you take ECT 437 the previous fall (so that you can take ECT 438 in your last spring term).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CRN numbers&#039;&#039;&#039; - 52352 (ECT 437-003), 50880 (ECT 437-301).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
For the project management content of the course, we will the the following.&lt;br /&gt;
* Free online - [https://opentextbc.ca/projectmanagement/ Project Management – 2nd Edition] by Adrienne Watt.&lt;br /&gt;
* Git reading: https://www.tutorialspoint.com/git/&lt;br /&gt;
* Information technology Project Management by Schwalbe (maybe not free).&lt;br /&gt;
Note that the other sections of the course use the following textbook. This is not required for Jeff Kinne&#039;s sections of the course.&lt;br /&gt;
* [https://www.pearson.com/en-us/subject-catalog/p/project-management-for-engineering-and-technology/P200000001110/9780132817523?srsltid=AfmBOorbY72RPx2VISEBqx9WhJLN3_N5KnkwO2Q-OzlVwimjnNKmgcce Project Management for Engineering and Technology] by David L. Goetsch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technology Requirements&#039;&#039;&#039;&lt;br /&gt;
* Desktop or laptop computer (Windows, Mac OS, Linux, or Chrome OS) with the ability to save files and install programs.&lt;br /&gt;
* Your ISU account, to access Canvas and course notes.&lt;br /&gt;
* Free programs you will install: TBA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~ect437/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~ect437/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Evaluation of control computers in an industrial environment; the direct and indirect cost trade-off of implementing a hardwired vs. a programmed controller. The effect of management decisions on industrial computer applications. Economics of open and closed systems, software vs. hardware, in-house vs. contract maintenance, and multi-vendor vs. single vendor systems.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Since these are the sections of the course for CS majors, we will be focusing our discussions and projects on software management and development. We may have some groups that work together with students in the other sections of the course if there are projects that make sense for this to happen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Project Management&lt;br /&gt;
&lt;br /&gt;
Unit 2 Class Project&lt;br /&gt;
&lt;br /&gt;
Unit 3 Student Projects&lt;br /&gt;
&lt;br /&gt;
Note that we will be working through units 1 and 2 at the same time (we will be doing &amp;quot;textbook&amp;quot; style material and getting to work on a class project simultaneously).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
# Demonstrate proficiency in the correct usage of PM and technical terminology.&lt;br /&gt;
# Explain PM concepts of scope, schedule, resources, constraints, risks, and closure and apply this information to the semester project.&lt;br /&gt;
# Explain the research approach for analyzing the project details for design.&lt;br /&gt;
# Demonstrate skills for project initiation, planning, execution, monitoring and control, and closure. &lt;br /&gt;
# Demonstrate ability in written, oral, and graphical communication in well-defined technical and non-technical environments; and an ability to identify and use appropriate technical literature.&lt;br /&gt;
# Demonstrate communication skills for change, diversity, and adversity. &lt;br /&gt;
# Demonstrate an ability to function effectively as a member as well as a leader on technical teams.&lt;br /&gt;
# Demonstrate ability to use software development tools as part of a team.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=884</id>
		<title>Gitlab - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=884"/>
		<updated>2026-08-06T16:40:13Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* SSH Keys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Git=&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a version control system that can be used to keep track of your files (programming code, but also other files as well).  &lt;br /&gt;
&lt;br /&gt;
Two of the most popular installations of git (as of 2020) are [https://github.com/ github] and [https://gitlab.com/ gitlab].  When Microsoft purchased github, it became fashionable to prefer gitlab.  Github allows for projects to be hosted on their servers.  Gitlab allows for hosting either on their servers or to run a local installation of gitlab on ones own servers.&lt;br /&gt;
&lt;br /&gt;
Of late, we have hosted projects using gitlab either on gitlab&#039;s servers or on ISU&#039;s local installation of gitlab.&lt;br /&gt;
&lt;br /&gt;
=Account Setup=&lt;br /&gt;
&#039;&#039;&#039;On gitlab.com&#039;&#039;&#039; - Account setup on [https://gitlab.com/ gitlab.com] is just like any other website.  You create a free account, choose your username/password, etc.  The account is yours and is not tied in any particular way to ISU.  You can give access to your projects in much the same way as you give access to files on google drive, onedrive, dropbox, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On git.indstate.edu&#039;&#039;&#039; - ISU&#039;s local installation of gitlab is at https://git.indstate.edu/.  For this system you use your ISU portal id and password.  You do not need to create an account.  The first time you login into the system, it initializes an account for you.  CS courses and ISU CS projects in general tend to use ISU&#039;s local installation because we can tie access based on course rosters, etc.&lt;br /&gt;
&lt;br /&gt;
=SSH Keys=&lt;br /&gt;
You will normally want to have SSH keys setup so that you can interact with the git server without having to enter a username and password. Instructions are here: https://docs.gitlab.com/user/ssh/&lt;br /&gt;
&lt;br /&gt;
You will need to edit your ssh configuration so that it knows which key to use when connecting to git.indstate.edu. On a Mac or Linux, edit the file &amp;lt;code&amp;gt;~/.ssh/config&amp;lt;/code&amp;gt; and put a section like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host git.indstate.edu&lt;br /&gt;
  PreferredAuthentications publickey&lt;br /&gt;
  IdentityFile ~/.ssh/git_indstate_id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should replace the name git_indstate_id with whatever filename you used for the private key.&lt;br /&gt;
&lt;br /&gt;
You can clone a repository from git.indstate.edu using a command like this: &amp;lt;code&amp;gt;git clone git+ssh://git@git.indstate.edu/ect-437-fall-2026/hello-class.git&amp;lt;/code&amp;gt;, but where you would replace the link with whatever repository you are cloning.&lt;br /&gt;
&lt;br /&gt;
=Getting Around=&lt;br /&gt;
Whether you are using gitlab.com or git.indstate.edu, the functionality and &amp;quot;how to get around&amp;quot; is about the same.  You have two main methods for using either.&lt;br /&gt;
&lt;br /&gt;
==Web browser interface==&lt;br /&gt;
You can view projects within your web browser.  How to get around is fairly intuitive - as is the case with any web page, you look around and click around to see what different things do.  When you have something specific you want to do but don&#039;t see how to do, you ask the internet or ask your instructor (and we may update this wiki to give instructions on how to do it).&lt;br /&gt;
&lt;br /&gt;
==Terminal interface==&lt;br /&gt;
Git allows for downloading/uploading/etc. files in your projects from the terminal.  In order to do this, you need to (a) have a git client installed on your system, (b) understand the terminology that git uses for keeping track of files and the steps in using git to download/update/upload files, (c) make it so.&lt;br /&gt;
&lt;br /&gt;
Some reading material about using git - https://www.tutorialspoint.com/git/index.htm&lt;br /&gt;
&lt;br /&gt;
===Vocab / Cheat Sheet===&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
A common use case is that you will need to download someone else&#039;s (e.g., instructor&#039;s) gitlab project, create your own version of some part of the project, test/debug your version of the project, eventually put in a request to update the main project with your code.  The steps involved in that workflow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clone&#039;&#039;&#039; - To download the current version of the project you (a) browse in your terminal to the directory where you want to have the project code, (b) run &amp;lt;code&amp;gt;git clone url_to_project&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039; - If a branch has already been created for you, then you can set that as your active branch by running &amp;lt;code&amp;gt;git checkout branch_name&amp;lt;/code&amp;gt;.  If a branch has not yet been created for you, you run &amp;lt;code&amp;gt;git branch branch_name&amp;lt;/code&amp;gt; to create a new branch.  In either case, you have a branch of the project to work within.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do your work&#039;&#039;&#039; - You work on your files locally - test, debug, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage/Commit/Push&#039;&#039;&#039; - To save your work to the remote server, you need to stage, commit, and push.  You can stage/commit batches of changes, or do a stage/commit for each discreet task accomplished.  If you are working in some_file.txt, you would run the following sequence of commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add some_file.txt  # this &amp;quot;stages&amp;quot; the file to be part of the next commit&lt;br /&gt;
git commit -m &amp;quot;Some updates to the file&amp;quot; # This commits, will be a permanent record of this version of the file&lt;br /&gt;
git push               # sends all committed changes to the remote server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the push will likely ask for login information to the remote server.  Note that if you want there to be a record of a particular version of a file, you need to stage/commit the file.  It is the commit&#039;ed versions of files that are stored permanently.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pull&#039;&#039;&#039; - To pull/download updates that have happened (by others), you use &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge&#039;&#039;&#039; - When you ready to have your changes merged in to the main branch of the project, ask the owner of the project to check your branch.  When the owner is ready for it, the owner can run the following commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git branch main        # owner is working in the main branch&lt;br /&gt;
git merge branch_name  # merge your branch into the main branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=883</id>
		<title>Gitlab - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=883"/>
		<updated>2026-08-06T14:58:04Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Account Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Git=&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a version control system that can be used to keep track of your files (programming code, but also other files as well).  &lt;br /&gt;
&lt;br /&gt;
Two of the most popular installations of git (as of 2020) are [https://github.com/ github] and [https://gitlab.com/ gitlab].  When Microsoft purchased github, it became fashionable to prefer gitlab.  Github allows for projects to be hosted on their servers.  Gitlab allows for hosting either on their servers or to run a local installation of gitlab on ones own servers.&lt;br /&gt;
&lt;br /&gt;
Of late, we have hosted projects using gitlab either on gitlab&#039;s servers or on ISU&#039;s local installation of gitlab.&lt;br /&gt;
&lt;br /&gt;
=Account Setup=&lt;br /&gt;
&#039;&#039;&#039;On gitlab.com&#039;&#039;&#039; - Account setup on [https://gitlab.com/ gitlab.com] is just like any other website.  You create a free account, choose your username/password, etc.  The account is yours and is not tied in any particular way to ISU.  You can give access to your projects in much the same way as you give access to files on google drive, onedrive, dropbox, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On git.indstate.edu&#039;&#039;&#039; - ISU&#039;s local installation of gitlab is at https://git.indstate.edu/.  For this system you use your ISU portal id and password.  You do not need to create an account.  The first time you login into the system, it initializes an account for you.  CS courses and ISU CS projects in general tend to use ISU&#039;s local installation because we can tie access based on course rosters, etc.&lt;br /&gt;
&lt;br /&gt;
=SSH Keys=&lt;br /&gt;
You will normally want to have SSH keys setup so that you can interact with the git server without having to enter a username and password. Instructions are here: https://docs.gitlab.com/user/ssh/&lt;br /&gt;
&lt;br /&gt;
=Getting Around=&lt;br /&gt;
Whether you are using gitlab.com or git.indstate.edu, the functionality and &amp;quot;how to get around&amp;quot; is about the same.  You have two main methods for using either.&lt;br /&gt;
&lt;br /&gt;
==Web browser interface==&lt;br /&gt;
You can view projects within your web browser.  How to get around is fairly intuitive - as is the case with any web page, you look around and click around to see what different things do.  When you have something specific you want to do but don&#039;t see how to do, you ask the internet or ask your instructor (and we may update this wiki to give instructions on how to do it).&lt;br /&gt;
&lt;br /&gt;
==Terminal interface==&lt;br /&gt;
Git allows for downloading/uploading/etc. files in your projects from the terminal.  In order to do this, you need to (a) have a git client installed on your system, (b) understand the terminology that git uses for keeping track of files and the steps in using git to download/update/upload files, (c) make it so.&lt;br /&gt;
&lt;br /&gt;
Some reading material about using git - https://www.tutorialspoint.com/git/index.htm&lt;br /&gt;
&lt;br /&gt;
===Vocab / Cheat Sheet===&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
A common use case is that you will need to download someone else&#039;s (e.g., instructor&#039;s) gitlab project, create your own version of some part of the project, test/debug your version of the project, eventually put in a request to update the main project with your code.  The steps involved in that workflow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clone&#039;&#039;&#039; - To download the current version of the project you (a) browse in your terminal to the directory where you want to have the project code, (b) run &amp;lt;code&amp;gt;git clone url_to_project&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039; - If a branch has already been created for you, then you can set that as your active branch by running &amp;lt;code&amp;gt;git checkout branch_name&amp;lt;/code&amp;gt;.  If a branch has not yet been created for you, you run &amp;lt;code&amp;gt;git branch branch_name&amp;lt;/code&amp;gt; to create a new branch.  In either case, you have a branch of the project to work within.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do your work&#039;&#039;&#039; - You work on your files locally - test, debug, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage/Commit/Push&#039;&#039;&#039; - To save your work to the remote server, you need to stage, commit, and push.  You can stage/commit batches of changes, or do a stage/commit for each discreet task accomplished.  If you are working in some_file.txt, you would run the following sequence of commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add some_file.txt  # this &amp;quot;stages&amp;quot; the file to be part of the next commit&lt;br /&gt;
git commit -m &amp;quot;Some updates to the file&amp;quot; # This commits, will be a permanent record of this version of the file&lt;br /&gt;
git push               # sends all committed changes to the remote server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the push will likely ask for login information to the remote server.  Note that if you want there to be a record of a particular version of a file, you need to stage/commit the file.  It is the commit&#039;ed versions of files that are stored permanently.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pull&#039;&#039;&#039; - To pull/download updates that have happened (by others), you use &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge&#039;&#039;&#039; - When you ready to have your changes merged in to the main branch of the project, ask the owner of the project to check your branch.  When the owner is ready for it, the owner can run the following commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git branch main        # owner is working in the main branch&lt;br /&gt;
git merge branch_name  # merge your branch into the main branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=882</id>
		<title>Gitlab - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=882"/>
		<updated>2026-08-05T20:29:17Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Getting Around */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Git=&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a version control system that can be used to keep track of your files (programming code, but also other files as well).  &lt;br /&gt;
&lt;br /&gt;
Two of the most popular installations of git (as of 2020) are [https://github.com/ github] and [https://gitlab.com/ gitlab].  When Microsoft purchased github, it became fashionable to prefer gitlab.  Github allows for projects to be hosted on their servers.  Gitlab allows for hosting either on their servers or to run a local installation of gitlab on ones own servers.&lt;br /&gt;
&lt;br /&gt;
Of late, we have hosted projects using gitlab either on gitlab&#039;s servers or on ISU&#039;s local installation of gitlab.&lt;br /&gt;
&lt;br /&gt;
=Account Setup=&lt;br /&gt;
&#039;&#039;&#039;On gitlab.com&#039;&#039;&#039; - Account setup on [https://gitlab.com/ gitlab.com] is just like any other website.  You create a free account, choose your username/password, etc.  The account is yours and is not tied in any particular way to ISU.  You can give access to your projects in much the same way as you give access to files on google drive, onedrive, dropbox, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On git.indstate.edu&#039;&#039;&#039; - ISU&#039;s local installation of gitlab is at https://git.indstate.edu/.  For this system you use your ISU portal id and password.  You do not need to create an account.  The first time you login into the system, it initializes an account for you.  CS courses and ISU CS projects in general tend to use ISU&#039;s local installation because we can tie access based on course rosters, etc.&lt;br /&gt;
&lt;br /&gt;
=Getting Around=&lt;br /&gt;
Whether you are using gitlab.com or git.indstate.edu, the functionality and &amp;quot;how to get around&amp;quot; is about the same.  You have two main methods for using either.&lt;br /&gt;
&lt;br /&gt;
==Web browser interface==&lt;br /&gt;
You can view projects within your web browser.  How to get around is fairly intuitive - as is the case with any web page, you look around and click around to see what different things do.  When you have something specific you want to do but don&#039;t see how to do, you ask the internet or ask your instructor (and we may update this wiki to give instructions on how to do it).&lt;br /&gt;
&lt;br /&gt;
==Terminal interface==&lt;br /&gt;
Git allows for downloading/uploading/etc. files in your projects from the terminal.  In order to do this, you need to (a) have a git client installed on your system, (b) understand the terminology that git uses for keeping track of files and the steps in using git to download/update/upload files, (c) make it so.&lt;br /&gt;
&lt;br /&gt;
Some reading material about using git - https://www.tutorialspoint.com/git/index.htm&lt;br /&gt;
&lt;br /&gt;
===Vocab / Cheat Sheet===&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
A common use case is that you will need to download someone else&#039;s (e.g., instructor&#039;s) gitlab project, create your own version of some part of the project, test/debug your version of the project, eventually put in a request to update the main project with your code.  The steps involved in that workflow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clone&#039;&#039;&#039; - To download the current version of the project you (a) browse in your terminal to the directory where you want to have the project code, (b) run &amp;lt;code&amp;gt;git clone url_to_project&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039; - If a branch has already been created for you, then you can set that as your active branch by running &amp;lt;code&amp;gt;git checkout branch_name&amp;lt;/code&amp;gt;.  If a branch has not yet been created for you, you run &amp;lt;code&amp;gt;git branch branch_name&amp;lt;/code&amp;gt; to create a new branch.  In either case, you have a branch of the project to work within.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do your work&#039;&#039;&#039; - You work on your files locally - test, debug, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage/Commit/Push&#039;&#039;&#039; - To save your work to the remote server, you need to stage, commit, and push.  You can stage/commit batches of changes, or do a stage/commit for each discreet task accomplished.  If you are working in some_file.txt, you would run the following sequence of commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add some_file.txt  # this &amp;quot;stages&amp;quot; the file to be part of the next commit&lt;br /&gt;
git commit -m &amp;quot;Some updates to the file&amp;quot; # This commits, will be a permanent record of this version of the file&lt;br /&gt;
git push               # sends all committed changes to the remote server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the push will likely ask for login information to the remote server.  Note that if you want there to be a record of a particular version of a file, you need to stage/commit the file.  It is the commit&#039;ed versions of files that are stored permanently.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pull&#039;&#039;&#039; - To pull/download updates that have happened (by others), you use &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge&#039;&#039;&#039; - When you ready to have your changes merged in to the main branch of the project, ask the owner of the project to check your branch.  When the owner is ready for it, the owner can run the following commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git branch main        # owner is working in the main branch&lt;br /&gt;
git merge branch_name  # merge your branch into the main branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=881</id>
		<title>Gitlab - Getting Started</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Gitlab_-_Getting_Started&amp;diff=881"/>
		<updated>2026-08-05T20:27:15Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Account Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is part of [[Programming and CS - Getting Started]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Git=&lt;br /&gt;
[https://en.wikipedia.org/wiki/Git Git] is a version control system that can be used to keep track of your files (programming code, but also other files as well).  &lt;br /&gt;
&lt;br /&gt;
Two of the most popular installations of git (as of 2020) are [https://github.com/ github] and [https://gitlab.com/ gitlab].  When Microsoft purchased github, it became fashionable to prefer gitlab.  Github allows for projects to be hosted on their servers.  Gitlab allows for hosting either on their servers or to run a local installation of gitlab on ones own servers.&lt;br /&gt;
&lt;br /&gt;
Of late, we have hosted projects using gitlab either on gitlab&#039;s servers or on ISU&#039;s local installation of gitlab.&lt;br /&gt;
&lt;br /&gt;
=Account Setup=&lt;br /&gt;
&#039;&#039;&#039;On gitlab.com&#039;&#039;&#039; - Account setup on [https://gitlab.com/ gitlab.com] is just like any other website.  You create a free account, choose your username/password, etc.  The account is yours and is not tied in any particular way to ISU.  You can give access to your projects in much the same way as you give access to files on google drive, onedrive, dropbox, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On git.indstate.edu&#039;&#039;&#039; - ISU&#039;s local installation of gitlab is at https://git.indstate.edu/.  For this system you use your ISU portal id and password.  You do not need to create an account.  The first time you login into the system, it initializes an account for you.  CS courses and ISU CS projects in general tend to use ISU&#039;s local installation because we can tie access based on course rosters, etc.&lt;br /&gt;
&lt;br /&gt;
=Getting Around=&lt;br /&gt;
Whether you are using gitlab.com or gitlab.indstate.edu, the functionality and &amp;quot;how to get around&amp;quot; is about the same.  You have two main methods for using either.&lt;br /&gt;
&lt;br /&gt;
==Web browser interface==&lt;br /&gt;
You can view projects within your web browser.  How to get around is fairly intuitive - as is the case with any web page, you look around and click around to see what different things do.  When you have something specific you want to do but don&#039;t see how to do, you ask the internet or ask your instructor (and we may update this wiki to give instructions on how to do it).&lt;br /&gt;
&lt;br /&gt;
==Terminal interface==&lt;br /&gt;
Git allows for downloading/uploading/etc. files in your projects from the terminal.  In order to do this, you need to (a) have a git client installed on your system, (b) understand the terminology that git uses for keeping track of files and the steps in using git to download/update/upload files, (c) make it so.&lt;br /&gt;
&lt;br /&gt;
Some reading material about using git - https://www.tutorialspoint.com/git/index.htm&lt;br /&gt;
&lt;br /&gt;
===Vocab / Cheat Sheet===&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
A common use case is that you will need to download someone else&#039;s (e.g., instructor&#039;s) gitlab project, create your own version of some part of the project, test/debug your version of the project, eventually put in a request to update the main project with your code.  The steps involved in that workflow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clone&#039;&#039;&#039; - To download the current version of the project you (a) browse in your terminal to the directory where you want to have the project code, (b) run &amp;lt;code&amp;gt;git clone url_to_project&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039; - If a branch has already been created for you, then you can set that as your active branch by running &amp;lt;code&amp;gt;git checkout branch_name&amp;lt;/code&amp;gt;.  If a branch has not yet been created for you, you run &amp;lt;code&amp;gt;git branch branch_name&amp;lt;/code&amp;gt; to create a new branch.  In either case, you have a branch of the project to work within.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do your work&#039;&#039;&#039; - You work on your files locally - test, debug, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage/Commit/Push&#039;&#039;&#039; - To save your work to the remote server, you need to stage, commit, and push.  You can stage/commit batches of changes, or do a stage/commit for each discreet task accomplished.  If you are working in some_file.txt, you would run the following sequence of commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add some_file.txt  # this &amp;quot;stages&amp;quot; the file to be part of the next commit&lt;br /&gt;
git commit -m &amp;quot;Some updates to the file&amp;quot; # This commits, will be a permanent record of this version of the file&lt;br /&gt;
git push               # sends all committed changes to the remote server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the push will likely ask for login information to the remote server.  Note that if you want there to be a record of a particular version of a file, you need to stage/commit the file.  It is the commit&#039;ed versions of files that are stored permanently.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pull&#039;&#039;&#039; - To pull/download updates that have happened (by others), you use &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Merge&#039;&#039;&#039; - When you ready to have your changes merged in to the main branch of the project, ask the owner of the project to check your branch.  When the owner is ready for it, the owner can run the following commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git branch main        # owner is working in the main branch&lt;br /&gt;
git merge branch_name  # merge your branch into the main branch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=ECT_437_Fall_2026&amp;diff=880</id>
		<title>ECT 437 Fall 2026</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=ECT_437_Fall_2026&amp;diff=880"/>
		<updated>2026-08-05T19:44:42Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ECT 437 Senior Project 1: Project Management and ECT 438 Senior Project 2: Capstone together comprise the senior project for students in the following majors: computer science, information technology, computer and electrical engineering technology. ECT 437 is taken in the fall, and ECT 438 is taken in the spring. For ECT 437, we will be doing some &amp;quot;standard textbook&amp;quot; material on project management, do a project together as a class, and get started with project proposals that will be completed in the spring (in ECT 438).&lt;br /&gt;
&lt;br /&gt;
This website is used to keep track of the sections of ECT 437 that are for the CS majors, taught by Jeff Kinne. The sections for other majors is managed separately and taught by Dr. Javaid.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to OneDrive folder with lecture slides and other files: [https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/IgDrcWQrRLP4SKUamRmy5HwSAcL6arTwA3EgqY-rc75mcAg?e=DOItt7 OneDrive link]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/ECT_437_Fall_2026&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Schedule a Meeting with Me:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; MW 1-2:50pm in Myers Technology Center (TC) 316, over Teams (link in Canvas/Teams, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; We have two exam slots that we will likely use for project presentations: Monday Dec 7, 3-4:50pm and Wednesday Dec 9, 1-2:50pm. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - Junior or senior standing. For those that graduate in the spring, you take ECT 437 in the preceding fall; for those who graduate in a fall semester, you take ECT 437 the previous fall (so that you can take ECT 438 in your last spring term).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CRN numbers&#039;&#039;&#039; - 52352 (ECT 437-003), 50880 (ECT 437-301).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
For the project management content of the course, we will the the following.&lt;br /&gt;
* Free online - [https://opentextbc.ca/projectmanagement/ Project Management – 2nd Edition] by Adrienne Watt.&lt;br /&gt;
* Information technology Project Management by Schwalbe (maybe not free).&lt;br /&gt;
Note that the other sections of the course use the following textbook. This is not required for Jeff Kinne&#039;s sections of the course.&lt;br /&gt;
* [https://www.pearson.com/en-us/subject-catalog/p/project-management-for-engineering-and-technology/P200000001110/9780132817523?srsltid=AfmBOorbY72RPx2VISEBqx9WhJLN3_N5KnkwO2Q-OzlVwimjnNKmgcce Project Management for Engineering and Technology] by David L. Goetsch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technology Requirements&#039;&#039;&#039;&lt;br /&gt;
* Desktop or laptop computer (Windows, Mac OS, Linux, or Chrome OS) with the ability to save files and install programs.&lt;br /&gt;
* Your ISU account, to access Canvas and course notes.&lt;br /&gt;
* Free programs you will install: TBA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~ect437/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~ect437/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Evaluation of control computers in an industrial environment; the direct and indirect cost trade-off of implementing a hardwired vs. a programmed controller. The effect of management decisions on industrial computer applications. Economics of open and closed systems, software vs. hardware, in-house vs. contract maintenance, and multi-vendor vs. single vendor systems.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Since these are the sections of the course for CS majors, we will be focusing our discussions and projects on software management and development. We may have some groups that work together with students in the other sections of the course if there are projects that make sense for this to happen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Project Management&lt;br /&gt;
&lt;br /&gt;
Unit 2 Class Project&lt;br /&gt;
&lt;br /&gt;
Unit 3 Student Projects&lt;br /&gt;
&lt;br /&gt;
Note that we will be working through units 1 and 2 at the same time (we will be doing &amp;quot;textbook&amp;quot; style material and getting to work on a class project simultaneously).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
# Demonstrate proficiency in the correct usage of PM and technical terminology.&lt;br /&gt;
# Explain PM concepts of scope, schedule, resources, constraints, risks, and closure and apply this information to the semester project.&lt;br /&gt;
# Explain the research approach for analyzing the project details for design.&lt;br /&gt;
# Demonstrate skills for project initiation, planning, execution, monitoring and control, and closure. &lt;br /&gt;
# Demonstrate ability in written, oral, and graphical communication in well-defined technical and non-technical environments; and an ability to identify and use appropriate technical literature.&lt;br /&gt;
# Demonstrate communication skills for change, diversity, and adversity. &lt;br /&gt;
# Demonstrate an ability to function effectively as a member as well as a leader on technical teams.&lt;br /&gt;
# Demonstrate ability to use software development tools as part of a team.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Jeff_Kinne_Course_Policies&amp;diff=879</id>
		<title>Jeff Kinne Course Policies</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Jeff_Kinne_Course_Policies&amp;diff=879"/>
		<updated>2026-08-05T19:36:44Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Grades */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Jeff Kinne Course Policies=&lt;br /&gt;
Note that many of my course policies changed for the 2025-2026 academic year. In particular, I now allow the use of AI on assignments, but then also focus a much higher percentage of points on exams and interviews / demonstrations.&lt;br /&gt;
&lt;br /&gt;
To see what my course policies were previously, see [[Jeff Kinne Course Policies 2024]].&lt;br /&gt;
==Summary==&lt;br /&gt;
* &#039;&#039;&#039;Assignments&#039;&#039;&#039; - 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&#039;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.&lt;br /&gt;
* &#039;&#039;&#039;Exams&#039;&#039;&#039; - 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). &#039;&#039;Note - no exams in my ECT 437/438.&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Code review / demo&#039;&#039;&#039; - 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.&lt;br /&gt;
* &#039;&#039;&#039;Project&#039;&#039;&#039; - 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 &amp;quot;real&amp;quot;, interesting, and/or exciting, and have something you can use in your portfolio (i.e., github).&lt;br /&gt;
* &#039;&#039;&#039;Academic misconduct&#039;&#039;&#039; - 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.&lt;br /&gt;
* &#039;&#039;&#039;AI&#039;&#039;&#039; - allowed for assignments and projects, you will get 0 points for code review/demo if you don&#039;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.&lt;br /&gt;
* &#039;&#039;&#039;Total course grade&#039;&#039;&#039; - 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). &#039;&#039;(Note: for ECT 437/438, the breakdown is different - 50% code review/demos, 50% participation.)&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;400/500 level courses&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
Note - all CS [[Policies]] are in effect.&lt;br /&gt;
&lt;br /&gt;
More details are in the rest of this page.&lt;br /&gt;
&lt;br /&gt;
==400/500 Level Courses==&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Attendance==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==AI Learning Unit==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Grades==&lt;br /&gt;
Your overall course grade will be computed as: exams 60%, participation 10%, demonstrations/interviews 30%. &#039;&#039;(Note: for ECT 437/438, the breakdown is different - 50% code review/demos, 50% participation, with no exams.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exams&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Participation&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstrations/interviews/projects&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
For each of the above categories, the total grade for that category will just be the sum of all the points in that category.&lt;br /&gt;
&lt;br /&gt;
==Assignments==&lt;br /&gt;
&lt;br /&gt;
===Attribution and Comments===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Author: your name&lt;br /&gt;
* Contents: what is this file for (e.g., hw 1 cs 500)&lt;br /&gt;
* Date: date handed in&lt;br /&gt;
* Summary: summary of a sentence or few - what does the program do or what is the file about, what changes did you make, etc.&lt;br /&gt;
* 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&#039;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 &amp;quot;none&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Missing&#039;&#039;&#039; - if this summary is missing, you get a 0 for the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inaccurate attribution&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Very limited effort&#039;&#039;&#039; - 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&#039;s response. Or, if all you did was copy code from the internet or another student.&lt;br /&gt;
&lt;br /&gt;
==Schedule==&lt;br /&gt;
The default schedule for my courses is the following.&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==Exam Content==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The final exam is normally cumulative.&lt;br /&gt;
&lt;br /&gt;
==Academic Misconduct==&lt;br /&gt;
What is considered academic misconduct in this course - &lt;br /&gt;
* Assignments/projects - &#039;&#039;&#039;lack of citation&#039;&#039;&#039;. 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), &#039;&#039;&#039;that is academic misconduct&#039;&#039;&#039;.&lt;br /&gt;
* Quiz/exam - &#039;&#039;&#039;using anything that is not allowed&#039;&#039;&#039;. 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. &#039;&#039;&#039;Using any of these is academic misconduct.&#039;&#039;&#039;&lt;br /&gt;
* 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; &#039;&#039;&#039;doing so would be academic misconduct&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Penalty for academic misconduct - &lt;br /&gt;
* F for the course. This is a 0 tolerance policy. You do not get a second chance, the penalty is F for the course.&lt;br /&gt;
* 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).&lt;br /&gt;
&lt;br /&gt;
==Grading Programs and Problems==&lt;br /&gt;
* &#039;&#039;&#039;Programs&#039;&#039;&#039;: 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]].&lt;br /&gt;
* &#039;&#039;&#039;Math/proofs/essays&#039;&#039;&#039;: 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]].&lt;br /&gt;
&lt;br /&gt;
==Complaints or Questions==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Course Announcements==&lt;br /&gt;
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&#039;t able to find the option, try a different browser or search online for things like - outlook online forward email setting).&lt;br /&gt;
&lt;br /&gt;
==Classroom Conduct==&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Office hours==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Canvas==&lt;br /&gt;
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&#039;t you may need to click on the Courses icon and then click the &amp;quot;All courses&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==Online Lectures (using Teams) ==&lt;br /&gt;
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 &amp;quot;I can watch the videos tomorrow&amp;quot; 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).&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Upcoming&amp;quot; heading; click on the &amp;quot;Recordings&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==Participating online==&lt;br /&gt;
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&#039;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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;no questions from me right now&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Course Policies Quiz==&lt;br /&gt;
The following is a quiz over Jeff Kinne&#039;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&#039;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.&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Jeff_Kinne_Course_Policies&amp;diff=878</id>
		<title>Jeff Kinne Course Policies</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Jeff_Kinne_Course_Policies&amp;diff=878"/>
		<updated>2026-08-05T19:35:54Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Jeff Kinne Course Policies=&lt;br /&gt;
Note that many of my course policies changed for the 2025-2026 academic year. In particular, I now allow the use of AI on assignments, but then also focus a much higher percentage of points on exams and interviews / demonstrations.&lt;br /&gt;
&lt;br /&gt;
To see what my course policies were previously, see [[Jeff Kinne Course Policies 2024]].&lt;br /&gt;
==Summary==&lt;br /&gt;
* &#039;&#039;&#039;Assignments&#039;&#039;&#039; - 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&#039;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.&lt;br /&gt;
* &#039;&#039;&#039;Exams&#039;&#039;&#039; - 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). &#039;&#039;Note - no exams in my ECT 437/438.&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Code review / demo&#039;&#039;&#039; - 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.&lt;br /&gt;
* &#039;&#039;&#039;Project&#039;&#039;&#039; - 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 &amp;quot;real&amp;quot;, interesting, and/or exciting, and have something you can use in your portfolio (i.e., github).&lt;br /&gt;
* &#039;&#039;&#039;Academic misconduct&#039;&#039;&#039; - 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.&lt;br /&gt;
* &#039;&#039;&#039;AI&#039;&#039;&#039; - allowed for assignments and projects, you will get 0 points for code review/demo if you don&#039;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.&lt;br /&gt;
* &#039;&#039;&#039;Total course grade&#039;&#039;&#039; - 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). &#039;&#039;(Note: for ECT 437/438, the breakdown is different - 50% code review/demos, 50% participation.)&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;400/500 level courses&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
Note - all CS [[Policies]] are in effect.&lt;br /&gt;
&lt;br /&gt;
More details are in the rest of this page.&lt;br /&gt;
&lt;br /&gt;
==400/500 Level Courses==&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Attendance==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==AI Learning Unit==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Grades==&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exams&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Participation&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstrations/interviews/projects&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
For each of the above categories, the total grade for that category will just be the sum of all the points in that category.&lt;br /&gt;
&lt;br /&gt;
==Assignments==&lt;br /&gt;
&lt;br /&gt;
===Attribution and Comments===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Author: your name&lt;br /&gt;
* Contents: what is this file for (e.g., hw 1 cs 500)&lt;br /&gt;
* Date: date handed in&lt;br /&gt;
* Summary: summary of a sentence or few - what does the program do or what is the file about, what changes did you make, etc.&lt;br /&gt;
* 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&#039;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 &amp;quot;none&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Missing&#039;&#039;&#039; - if this summary is missing, you get a 0 for the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inaccurate attribution&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Very limited effort&#039;&#039;&#039; - 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&#039;s response. Or, if all you did was copy code from the internet or another student.&lt;br /&gt;
&lt;br /&gt;
==Schedule==&lt;br /&gt;
The default schedule for my courses is the following.&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==Exam Content==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The final exam is normally cumulative.&lt;br /&gt;
&lt;br /&gt;
==Academic Misconduct==&lt;br /&gt;
What is considered academic misconduct in this course - &lt;br /&gt;
* Assignments/projects - &#039;&#039;&#039;lack of citation&#039;&#039;&#039;. 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), &#039;&#039;&#039;that is academic misconduct&#039;&#039;&#039;.&lt;br /&gt;
* Quiz/exam - &#039;&#039;&#039;using anything that is not allowed&#039;&#039;&#039;. 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. &#039;&#039;&#039;Using any of these is academic misconduct.&#039;&#039;&#039;&lt;br /&gt;
* 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; &#039;&#039;&#039;doing so would be academic misconduct&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Penalty for academic misconduct - &lt;br /&gt;
* F for the course. This is a 0 tolerance policy. You do not get a second chance, the penalty is F for the course.&lt;br /&gt;
* 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).&lt;br /&gt;
&lt;br /&gt;
==Grading Programs and Problems==&lt;br /&gt;
* &#039;&#039;&#039;Programs&#039;&#039;&#039;: 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]].&lt;br /&gt;
* &#039;&#039;&#039;Math/proofs/essays&#039;&#039;&#039;: 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]].&lt;br /&gt;
&lt;br /&gt;
==Complaints or Questions==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Course Announcements==&lt;br /&gt;
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&#039;t able to find the option, try a different browser or search online for things like - outlook online forward email setting).&lt;br /&gt;
&lt;br /&gt;
==Classroom Conduct==&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Office hours==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Canvas==&lt;br /&gt;
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&#039;t you may need to click on the Courses icon and then click the &amp;quot;All courses&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==Online Lectures (using Teams) ==&lt;br /&gt;
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 &amp;quot;I can watch the videos tomorrow&amp;quot; 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).&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Upcoming&amp;quot; heading; click on the &amp;quot;Recordings&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==Participating online==&lt;br /&gt;
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&#039;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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;no questions from me right now&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Course Policies Quiz==&lt;br /&gt;
The following is a quiz over Jeff Kinne&#039;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&#039;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.&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Jeff_Kinne_Course_Policies&amp;diff=877</id>
		<title>Jeff Kinne Course Policies</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Jeff_Kinne_Course_Policies&amp;diff=877"/>
		<updated>2026-08-05T19:34:15Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Jeff Kinne Course Policies=&lt;br /&gt;
Note that many of my course policies changed for the 2025-2026 academic year. In particular, I now allow the use of AI on assignments, but then also focus a much higher percentage of points on exams and interviews / demonstrations.&lt;br /&gt;
&lt;br /&gt;
To see what my course policies were previously, see [[Jeff Kinne Course Policies 2024]].&lt;br /&gt;
==Summary==&lt;br /&gt;
* &#039;&#039;&#039;Assignments&#039;&#039;&#039; - 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&#039;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.&lt;br /&gt;
* &#039;&#039;&#039;Exams&#039;&#039;&#039; - 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). &#039;&#039;Note - no exams in my ECT 437/438.&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Code review / demo&#039;&#039;&#039; - 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.&lt;br /&gt;
* &#039;&#039;&#039;Project&#039;&#039;&#039; - 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 &amp;quot;real&amp;quot;, interesting, and/or exciting, and have something you can use in your portfolio (i.e., github).&lt;br /&gt;
* &#039;&#039;&#039;Academic misconduct&#039;&#039;&#039; - 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.&lt;br /&gt;
* &#039;&#039;&#039;AI&#039;&#039;&#039; - allowed for assignments and projects, you will get 0 points for code review/demo if you don&#039;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.&lt;br /&gt;
* &#039;&#039;&#039;Total course grade&#039;&#039;&#039; - 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.)&lt;br /&gt;
* &#039;&#039;&#039;400/500 level courses&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
Note - all CS [[Policies]] are in effect.&lt;br /&gt;
&lt;br /&gt;
More details are in the rest of this page.&lt;br /&gt;
&lt;br /&gt;
==400/500 Level Courses==&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Attendance==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==AI Learning Unit==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Grades==&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exams&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Participation&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstrations/interviews/projects&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
For each of the above categories, the total grade for that category will just be the sum of all the points in that category.&lt;br /&gt;
&lt;br /&gt;
==Assignments==&lt;br /&gt;
&lt;br /&gt;
===Attribution and Comments===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Author: your name&lt;br /&gt;
* Contents: what is this file for (e.g., hw 1 cs 500)&lt;br /&gt;
* Date: date handed in&lt;br /&gt;
* Summary: summary of a sentence or few - what does the program do or what is the file about, what changes did you make, etc.&lt;br /&gt;
* 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&#039;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 &amp;quot;none&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Missing&#039;&#039;&#039; - if this summary is missing, you get a 0 for the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inaccurate attribution&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Very limited effort&#039;&#039;&#039; - 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&#039;s response. Or, if all you did was copy code from the internet or another student.&lt;br /&gt;
&lt;br /&gt;
==Schedule==&lt;br /&gt;
The default schedule for my courses is the following.&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==Exam Content==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The final exam is normally cumulative.&lt;br /&gt;
&lt;br /&gt;
==Academic Misconduct==&lt;br /&gt;
What is considered academic misconduct in this course - &lt;br /&gt;
* Assignments/projects - &#039;&#039;&#039;lack of citation&#039;&#039;&#039;. 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), &#039;&#039;&#039;that is academic misconduct&#039;&#039;&#039;.&lt;br /&gt;
* Quiz/exam - &#039;&#039;&#039;using anything that is not allowed&#039;&#039;&#039;. 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. &#039;&#039;&#039;Using any of these is academic misconduct.&#039;&#039;&#039;&lt;br /&gt;
* 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; &#039;&#039;&#039;doing so would be academic misconduct&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Penalty for academic misconduct - &lt;br /&gt;
* F for the course. This is a 0 tolerance policy. You do not get a second chance, the penalty is F for the course.&lt;br /&gt;
* 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).&lt;br /&gt;
&lt;br /&gt;
==Grading Programs and Problems==&lt;br /&gt;
* &#039;&#039;&#039;Programs&#039;&#039;&#039;: 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]].&lt;br /&gt;
* &#039;&#039;&#039;Math/proofs/essays&#039;&#039;&#039;: 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]].&lt;br /&gt;
&lt;br /&gt;
==Complaints or Questions==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Course Announcements==&lt;br /&gt;
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&#039;t able to find the option, try a different browser or search online for things like - outlook online forward email setting).&lt;br /&gt;
&lt;br /&gt;
==Classroom Conduct==&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Office hours==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Canvas==&lt;br /&gt;
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&#039;t you may need to click on the Courses icon and then click the &amp;quot;All courses&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==Online Lectures (using Teams) ==&lt;br /&gt;
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 &amp;quot;I can watch the videos tomorrow&amp;quot; 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).&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Upcoming&amp;quot; heading; click on the &amp;quot;Recordings&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==Participating online==&lt;br /&gt;
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&#039;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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;no questions from me right now&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Course Policies Quiz==&lt;br /&gt;
The following is a quiz over Jeff Kinne&#039;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&#039;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.&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=Jeff_Kinne_Course_Policies&amp;diff=876</id>
		<title>Jeff Kinne Course Policies</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=Jeff_Kinne_Course_Policies&amp;diff=876"/>
		<updated>2026-08-05T19:33:23Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: /* Jeff Kinne Course Policies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Jeff Kinne Course Policies=&lt;br /&gt;
Note that many of my course policies changed for the 2025-2026 academic year. In particular, I now allow the use of AI on assignments, but then also focus a much higher percentage of points on exams and interviews / demonstrations.&lt;br /&gt;
&lt;br /&gt;
To see what my course policies were previously, see [[Jeff Kinne Course Policies 2024]].&lt;br /&gt;
==Summary==&lt;br /&gt;
* &#039;&#039;&#039;Assignments&#039;&#039;&#039; - 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&#039;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.&lt;br /&gt;
* &#039;&#039;&#039;Exams&#039;&#039;&#039; - 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).&lt;br /&gt;
* &#039;&#039;&#039;Code review / demo&#039;&#039;&#039; - 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.&lt;br /&gt;
* &#039;&#039;&#039;Project&#039;&#039;&#039; - 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 &amp;quot;real&amp;quot;, interesting, and/or exciting, and have something you can use in your portfolio (i.e., github).&lt;br /&gt;
* &#039;&#039;&#039;Academic misconduct&#039;&#039;&#039; - 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.&lt;br /&gt;
* &#039;&#039;&#039;AI&#039;&#039;&#039; - allowed for assignments and projects, you will get 0 points for code review/demo if you don&#039;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.&lt;br /&gt;
* &#039;&#039;&#039;Total course grade&#039;&#039;&#039; - 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.)&lt;br /&gt;
* &#039;&#039;&#039;400/500 level courses&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
Note - all CS [[Policies]] are in effect.&lt;br /&gt;
&lt;br /&gt;
More details are in the rest of this page.&lt;br /&gt;
&lt;br /&gt;
==400/500 Level Courses==&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Attendance==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==AI Learning Unit==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Grades==&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exams&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Participation&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Demonstrations/interviews/projects&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
For each of the above categories, the total grade for that category will just be the sum of all the points in that category.&lt;br /&gt;
&lt;br /&gt;
==Assignments==&lt;br /&gt;
&lt;br /&gt;
===Attribution and Comments===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Author: your name&lt;br /&gt;
* Contents: what is this file for (e.g., hw 1 cs 500)&lt;br /&gt;
* Date: date handed in&lt;br /&gt;
* Summary: summary of a sentence or few - what does the program do or what is the file about, what changes did you make, etc.&lt;br /&gt;
* 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&#039;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 &amp;quot;none&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Missing&#039;&#039;&#039; - if this summary is missing, you get a 0 for the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inaccurate attribution&#039;&#039;&#039; - 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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Very limited effort&#039;&#039;&#039; - 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&#039;s response. Or, if all you did was copy code from the internet or another student.&lt;br /&gt;
&lt;br /&gt;
==Schedule==&lt;br /&gt;
The default schedule for my courses is the following.&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==Exam Content==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The final exam is normally cumulative.&lt;br /&gt;
&lt;br /&gt;
==Academic Misconduct==&lt;br /&gt;
What is considered academic misconduct in this course - &lt;br /&gt;
* Assignments/projects - &#039;&#039;&#039;lack of citation&#039;&#039;&#039;. 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), &#039;&#039;&#039;that is academic misconduct&#039;&#039;&#039;.&lt;br /&gt;
* Quiz/exam - &#039;&#039;&#039;using anything that is not allowed&#039;&#039;&#039;. 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. &#039;&#039;&#039;Using any of these is academic misconduct.&#039;&#039;&#039;&lt;br /&gt;
* 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; &#039;&#039;&#039;doing so would be academic misconduct&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Penalty for academic misconduct - &lt;br /&gt;
* F for the course. This is a 0 tolerance policy. You do not get a second chance, the penalty is F for the course.&lt;br /&gt;
* 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).&lt;br /&gt;
&lt;br /&gt;
==Grading Programs and Problems==&lt;br /&gt;
* &#039;&#039;&#039;Programs&#039;&#039;&#039;: 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]].&lt;br /&gt;
* &#039;&#039;&#039;Math/proofs/essays&#039;&#039;&#039;: 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]].&lt;br /&gt;
&lt;br /&gt;
==Complaints or Questions==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Course Announcements==&lt;br /&gt;
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&#039;t able to find the option, try a different browser or search online for things like - outlook online forward email setting).&lt;br /&gt;
&lt;br /&gt;
==Classroom Conduct==&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
==Office hours==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Canvas==&lt;br /&gt;
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&#039;t you may need to click on the Courses icon and then click the &amp;quot;All courses&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==Online Lectures (using Teams) ==&lt;br /&gt;
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 &amp;quot;I can watch the videos tomorrow&amp;quot; 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).&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;Upcoming&amp;quot; heading; click on the &amp;quot;Recordings&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==Participating online==&lt;br /&gt;
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&#039;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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;no questions from me right now&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Course Policies Quiz==&lt;br /&gt;
The following is a quiz over Jeff Kinne&#039;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&#039;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.&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=ECT_437_Fall_2026&amp;diff=875</id>
		<title>ECT 437 Fall 2026</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=ECT_437_Fall_2026&amp;diff=875"/>
		<updated>2026-08-05T19:32:30Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: Created page with &amp;quot;ECT 437 Senior Project 1: Project Management and ECT 438 Senior Project 2: Capstone together comprise the senior project for students in the following majors: computer science, information technology, computer and electrical engineering technology. ECT 437 is taken in the fall, and ECT 438 is taken in the spring. For ECT 437, we will be doing some &amp;quot;standard textbook&amp;quot; material on project management, do a project together as a class, and get started with project proposals...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ECT 437 Senior Project 1: Project Management and ECT 438 Senior Project 2: Capstone together comprise the senior project for students in the following majors: computer science, information technology, computer and electrical engineering technology. ECT 437 is taken in the fall, and ECT 438 is taken in the spring. For ECT 437, we will be doing some &amp;quot;standard textbook&amp;quot; material on project management, do a project together as a class, and get started with project proposals that will be completed in the spring (in ECT 438).&lt;br /&gt;
&lt;br /&gt;
This website is used to keep track of the sections of ECT 437 that are for the CS majors, taught by Jeff Kinne. The sections for other majors is managed separately and taught by Dr. Javaid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&#039;&#039;&#039;Course website&#039;&#039;&#039; - https://cs.indstate.edu/web/index.php/ECT_437_Fall_2026&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Instructor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://kinnejeff.com Jeff Kinne], [mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Office:&#039;&#039; Root Hall A-165 and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Instructor Office Hours:&#039;&#039; I am normally in my office between roughly 8:30am-3pm when I am not in class or meetings. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting. I have class/meetings the following days/times (so not available these times): MWF 10-11am, MW 1-3pm, T 3:30-4:30pm, TR 11am-12:30pm. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Schedule a Meeting with Me:&#039;&#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graduate assistant help&#039;&#039;&#039; - TBD. See https://cs.indstate.edu/web/index.php/ISU_CS_People#CS_Departmental_Graduate_Assistants&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lecture, Exam&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Lecture:&#039;&#039; MW 1-2:50pm in Myers Technology Center (TC) 316, over Teams (link in Canvas/Teams, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&#039;&#039;Final exam:&#039;&#039; We have two exam slots that we will likely use for project presentations: Monday Dec 7, 3-4:50pm and Wednesday Dec 9, 1-2:50pm. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites&#039;&#039;&#039; - Junior or senior standing. For those that graduate in the spring, you take ECT 437 in the preceding fall; for those who graduate in a fall semester, you take ECT 437 the previous fall (so that you can take ECT 438 in your last spring term).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CRN numbers&#039;&#039;&#039; - 52352 (ECT 437-003), 50880 (ECT 437-301).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Required text&#039;&#039;&#039;&lt;br /&gt;
For the project management content of the course, we will the the following.&lt;br /&gt;
* Free online - [https://opentextbc.ca/projectmanagement/ Project Management – 2nd Edition] by Adrienne Watt.&lt;br /&gt;
* Information technology Project Management by Schwalbe (maybe not free).&lt;br /&gt;
Note that the other sections of the course use the following textbook. This is not required for Jeff Kinne&#039;s sections of the course.&lt;br /&gt;
* [https://www.pearson.com/en-us/subject-catalog/p/project-management-for-engineering-and-technology/P200000001110/9780132817523?srsltid=AfmBOorbY72RPx2VISEBqx9WhJLN3_N5KnkwO2Q-OzlVwimjnNKmgcce Project Management for Engineering and Technology] by David L. Goetsch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technology Requirements&#039;&#039;&#039;&lt;br /&gt;
* Desktop or laptop computer (Windows, Mac OS, Linux, or Chrome OS) with the ability to save files and install programs.&lt;br /&gt;
* Your ISU account, to access Canvas and course notes.&lt;br /&gt;
* Free programs you will install: TBA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class notes&#039;&#039;&#039; - Notes during class will mostly be kept in the documents in &#039;&#039;&#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow this OneDrive folder]&#039;&#039;&#039;.  Note that you will need to authenticate with your ISU account to view the folder. Some files from lecture may be kept at https://cs.indstate.edu/~ect437/ which can also be seen when you are logged into the terminal by doing: &amp;lt;code&amp;gt;cd ~ect437/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&#039;&#039;&#039;HW&#039;&#039;&#039;&lt;br /&gt;
These are posted in Canvas or on the CS server. Some HWs are due the next lecture day, some are due a week after assigned. All times are Eastern US time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rules&#039;&#039;&#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Announcements&#039;&#039;&#039;&lt;br /&gt;
Announcements will normally be posted to the course in Canvas (and will probably be emailed to your ISU email address if you have the default settings for notifications in Canvas).&lt;br /&gt;
&lt;br /&gt;
=Course Description and Content=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Description&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The official description of this course from the catalog is  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Evaluation of control computers in an industrial environment; the direct and indirect cost trade-off of implementing a hardwired vs. a programmed controller. The effect of management decisions on industrial computer applications. Economics of open and closed systems, software vs. hardware, in-house vs. contract maintenance, and multi-vendor vs. single vendor systems.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Since these are the sections of the course for CS majors, we will be focusing our discussions and projects on software management and development. We may have some groups that work together with students in the other sections of the course if there are projects that make sense for this to happen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Course Outline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This course outline is subject to change.  &lt;br /&gt;
&lt;br /&gt;
Unit 1 Project Management&lt;br /&gt;
&lt;br /&gt;
Unit 2 Class Project&lt;br /&gt;
&lt;br /&gt;
Unit 3 Student Projects&lt;br /&gt;
&lt;br /&gt;
Note that we will be working through units 1 and 2 at the same time (we will be doing &amp;quot;textbook&amp;quot; style material and getting to work on a class project simultaneously).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning Outcomes&#039;&#039;&#039;&lt;br /&gt;
# Demonstrate proficiency in the correct usage of PM and technical terminology.&lt;br /&gt;
# Explain PM concepts of scope, schedule, resources, constraints, risks, and closure and apply this information to the semester project.&lt;br /&gt;
# Explain the research approach for analyzing the project details for design.&lt;br /&gt;
# Demonstrate skills for project initiation, planning, execution, monitoring and control, and closure. &lt;br /&gt;
# Demonstrate ability in written, oral, and graphical communication in well-defined technical and non-technical environments; and an ability to identify and use appropriate technical literature.&lt;br /&gt;
# Demonstrate communication skills for change, diversity, and adversity. &lt;br /&gt;
# Demonstrate an ability to function effectively as a member as well as a leader on technical teams.&lt;br /&gt;
# Demonstrate ability to use software development tools as part of a team.&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Assignments and Exam Studying Early&#039;&#039;&#039; - &lt;br /&gt;
I suggest attempting an assignment the day it is given, or the day after, so that if you have a problem you can ask early. If you continue to have problems in trying to complete the assignment, you will have time to ask again. Many of the assignments require thought and problem solving, which takes &amp;quot;time on the calendar&amp;quot; not just &amp;quot;time on the clock&amp;quot;. By that I mean that spending an hour on 3 consecutive days is likely to be more productive than trying to spend 3 hours at once on the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Expected Amount of Work&#039;&#039;&#039; - &lt;br /&gt;
If you take this class seriously and get what you should out of it, some weeks you will likely be spending around &#039;&#039;&#039;6-10 hours or more&#039;&#039;&#039; on the class.  The students who get A’s in their CS courses and have an easier time finding jobs do spend this much time on this course.  Not everyone would need to spend this much time and not all weeks will be the same, but you should plan on putting in whatever time it takes.  Note that the federal government definition of 1 credit hour as requiring 2 hours worth of time on the course for each credit hour of lecture, so you should think of this as the default for all of your courses. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note - your classes in your major should ideally be more important than your part-time job.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Each week&#039;&#039;&#039;, you will normally have at least one assignment, often more than one (in particular at the beginning when the assignments are pretty small).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings=&lt;br /&gt;
The letter grades are intended to have the following rough meaning. For letter grades I will use the usual breakdown as a starting point (90 is A-, 80 is B-, etc.), but will raise letter grades above this if I think it is needed (e.g., if assignments, exams, and quizzes are really tough).&lt;br /&gt;
* A+/A: You understand everything and probably could teach the course yourself.&lt;br /&gt;
* B+/A-: You understand nearly everything, and should be all set to use this knowledge in other courses or in a job.&lt;br /&gt;
* C/C+/B-/B: Some things you understand very well and others you don&#039;t (more towards the former for a B and more towards the latter for a C).&lt;br /&gt;
* D-/D+/C-: You did put some effort in, and understand many things at a high level, but you haven&#039;t mastered the details well enough to be able to use this knowledge in the future.&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something in the course.&lt;br /&gt;
&lt;br /&gt;
{{:Jeff Kinne Course Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:Policies}}&lt;br /&gt;
&lt;br /&gt;
{{:ISU Syllabus Items}}&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=ECT_437&amp;diff=874</id>
		<title>ECT 437</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=ECT_437&amp;diff=874"/>
		<updated>2026-08-05T19:13:08Z</updated>

		<summary type="html">&lt;p&gt;Jkinne: Jkinne moved page ECT 437 to ECT 437 Fall 2025&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ECT 437 Fall 2025]]&lt;/div&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
</feed>