<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://cs.indstate.edu/web/index.php?action=history&amp;feed=atom&amp;title=CS_500_Spring_2026</id>
	<title>CS 500 Spring 2026 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://cs.indstate.edu/web/index.php?action=history&amp;feed=atom&amp;title=CS_500_Spring_2026"/>
	<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_500_Spring_2026&amp;action=history"/>
	<updated>2026-04-13T11:55:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_500_Spring_2026&amp;diff=629&amp;oldid=prev</id>
		<title>Jkinne: /* General Information */</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_500_Spring_2026&amp;diff=629&amp;oldid=prev"/>
		<updated>2026-01-22T14:38:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;General Information&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:38, 22 January 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l12&quot;&gt;Line 12:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 12:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://kinnejeff.com Jeff Kinne], [http://mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://kinnejeff.com Jeff Kinne], [http://mailto:jkinne@indstate.edu jkinne@indstate.edu] &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Office:&amp;#039;&amp;#039; Root Hall A-165 and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Office:&amp;#039;&amp;#039; Root Hall A-165 and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;Instructor Office Hours:&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;TBD&lt;/del&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;Instructor Office Hours:&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;normally in my office - M 8:30am-10am; 11:30am-1pm; T 9:30am-3pm; W 8:30-10am; 11:30am-1pm; R 8:30am-3pm; F 8:30am-2:45am. I am normally available for online meetings - MTWRF 8am-4pm, SMTWR 8-10pm if I am not in class or a meeting&lt;/ins&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Meeting:&amp;#039;&amp;#039; https://cs.indstate.edu/jkinne-meeting&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Meeting:&amp;#039;&amp;#039; https://cs.indstate.edu/jkinne-meeting&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki2:diff:1.41:old-623:rev-629:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_500_Spring_2026&amp;diff=623&amp;oldid=prev</id>
		<title>Jkinne: /* General Information */</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_500_Spring_2026&amp;diff=623&amp;oldid=prev"/>
		<updated>2026-01-09T19:41:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;General Information&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:41, 9 January 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l21&quot;&gt;Line 21:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 21:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Lecture:&amp;#039;&amp;#039; MW 1-2:15pm, Root Hall A-109 and over Teams (link in Canvas, see below), and recorded&amp;lt;br&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Lecture:&amp;#039;&amp;#039; MW 1-2:15pm, Root Hall A-109 and over Teams (link in Canvas, see below), and recorded&amp;lt;br&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Exams:&amp;#039;&amp;#039;  every three weeks on Wednesdays (Jan 28, Feb 18, Mar 18, Apr 1) during lecture time (1-2:15am).  &amp;#039;&amp;#039;(For those with another class at that time, we will arrange the time after the term starts.)&amp;#039;&amp;#039;&amp;lt;br&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;Exams:&amp;#039;&amp;#039;  every three weeks on Wednesdays (Jan 28, Feb 18, Mar 18, Apr 1) during lecture time (1-2:15am).  &amp;#039;&amp;#039;(For those with another class at that time, we will arrange the time after the term starts.)&amp;#039;&amp;#039;&amp;lt;br&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;Final exam:&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Wedday&lt;/del&gt;, May 6, 1-2:50pm. &#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;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;Final exam:&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Wednesday&lt;/ins&gt;, May 6, 1-2:50pm. &#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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Prerequisites&amp;#039;&amp;#039;&amp;#039; - admission to the CS MS program or approval of instructor, should be a competent programmer in some programming language. See section below on CS 500 versus CS 510 for helping to decide if you are ready to take this course, and you can contact the instructor as well.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Prerequisites&amp;#039;&amp;#039;&amp;#039; - admission to the CS MS program or approval of instructor, should be a competent programmer in some programming language. See section below on CS 500 versus CS 510 for helping to decide if you are ready to take this course, and you can contact the instructor as well.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki2:diff:1.41:old-621:rev-623:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_500_Spring_2026&amp;diff=621&amp;oldid=prev</id>
		<title>Jkinne: Created page with &quot;CS 500 Fundamentals of Programming is taken by CS MS students during their first term in the MS program. The main outcomes of the course are proficiency in C programming and data structures and algorithms.   It is assumed that students starting the course have passed the CS MS admissions process (see Graduate Admissions Interview, in particular those taking the course should be proficient in some programming language).   This page contains the syllabus for CS 500 for...&quot;</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_500_Spring_2026&amp;diff=621&amp;oldid=prev"/>
		<updated>2026-01-09T19:35:53Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;CS 500 Fundamentals of Programming is taken by CS MS students during their first term in the MS program. The main outcomes of the course are proficiency in C programming and data structures and algorithms.   It is assumed that students starting the course have passed the CS MS admissions process (see &lt;a href=&quot;/web/index.php/Graduate_Admissions_Interview&quot; title=&quot;Graduate Admissions Interview&quot;&gt;Graduate Admissions Interview&lt;/a&gt;, in particular those taking the course should be proficient in some programming language).   This page contains the syllabus for CS 500 for...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;CS 500 Fundamentals of Programming is taken by CS MS students during their first term in the MS program. The main outcomes of the course are proficiency in C programming and data structures and algorithms. &lt;br /&gt;
&lt;br /&gt;
It is assumed that students starting the course have passed the CS MS admissions process (see [[Graduate Admissions Interview]], in particular those taking the course should be proficient in some programming language). &lt;br /&gt;
&lt;br /&gt;
This page contains the syllabus for CS 500 for spring 2026. Previous terms - [[CS 500 Spring 2025]], [[CS 500 Fall 2024]], [[CS 500 Spring 2024]], [[CS 500 Fall 2023]], [[CS 500 Spring 2023]], [[CS 500 Fall 2022]].&lt;br /&gt;
&lt;br /&gt;
=General Information=&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Course website&amp;#039;&amp;#039;&amp;#039; - https://cs.indstate.edu/web/index.php/CS_500&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Your Instructor&amp;#039;&amp;#039;&amp;#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;
&amp;#039;&amp;#039;Office:&amp;#039;&amp;#039; Root Hall A-165 and in Microsoft Teams, phone 812-237-3394 &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Instructor Office Hours:&amp;#039;&amp;#039; TBD&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Meeting:&amp;#039;&amp;#039; https://cs.indstate.edu/jkinne-meeting&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Graduate assistant help&amp;#039;&amp;#039;&amp;#039; - TBD&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Lecture, Exam&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Lecture:&amp;#039;&amp;#039; MW 1-2:15pm, Root Hall A-109 and over Teams (link in Canvas, see below), and recorded&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;#039;&amp;#039;Exams:&amp;#039;&amp;#039;  every three weeks on Wednesdays (Jan 28, Feb 18, Mar 18, Apr 1) during lecture time (1-2:15am).  &amp;#039;&amp;#039;(For those with another class at that time, we will arrange the time after the term starts.)&amp;#039;&amp;#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;#039;&amp;#039;Final exam:&amp;#039;&amp;#039; Wedday, May 6, 1-2:50pm. &amp;#039;&amp;#039;(For those with another class at that time, your exam time will be decided after the term starts.)&amp;#039;&amp;#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Prerequisites&amp;#039;&amp;#039;&amp;#039; - admission to the CS MS program or approval of instructor, should be a competent programmer in some programming language. See section below on CS 500 versus CS 510 for helping to decide if you are ready to take this course, and you can contact the instructor as well.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CRN numbers&amp;#039;&amp;#039;&amp;#039; - 10874 for the 001 face to face section, 11202 for the 301 online section&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Required text&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
We will use the following free online sources.&lt;br /&gt;
* For C programming - &amp;#039;&amp;#039;&amp;#039;[http://cslibrary.stanford.edu/101/EssentialC.pdf Essential C]&amp;#039;&amp;#039;&amp;#039; by Nick Parlante, https://cplusplus.com/. For an easier introduction, see [https://www.w3schools.com/c/c_getstarted.php w3schools].&lt;br /&gt;
* For data structures and algorithms - &amp;#039;&amp;#039;&amp;#039;[https://opendatastructures.org/ Open Data Stuctures]&amp;#039;&amp;#039;&amp;#039; by Pat Morin, [http://jeffe.cs.illinois.edu/teaching/algorithms/ Algorithms] by Jeff Erickson&lt;br /&gt;
* For math content - [https://mfleck.cs.illinois.edu/building-blocks/index-sp2020.html Building Blocks for Theoretical Computer Science] by Margaret M. Fleck, [https://courses.csail.mit.edu/6.042/spring18/mcs.pdf Mathematics for Computer Science] by Eric Lehman, F Thomson Leighton, and Albert R Meyer&lt;br /&gt;
* [https://cglab.ca/~michiel/TheoryOfComputation/TheoryOfComputation.pdf Introduction to Theory of Computation] by Anil Maheshwari and Michiel Smid&lt;br /&gt;
* Additional sources - as needed.&lt;br /&gt;
** [[GNU Debugger]], [[Make]]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Master_theorem_(analysis_of_algorithms) Master Theorem]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Ncurses Ncurses] ([https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ HowTo]), [https://en.wikipedia.org/wiki/GLib GLib]&lt;br /&gt;
** Lists of C libraries to consider: [https://www.incredibuild.com/blog/top-13-c-libraries-to-watch-out-for 13 C libraries], [https://www.gnu.org/manual/blurbs.html GNU projects], [https://github.com/oz123/awesome-c Awesome C]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Class notes&amp;#039;&amp;#039;&amp;#039; - Notes during class will mostly be kept in the documents in &amp;#039;&amp;#039;&amp;#039;[https://sycamoresindstate-my.sharepoint.com/:f:/g/personal/jeffrey_kinne_indstate_edu/EiJJbQVND3FMr25IAoHydnUBADrC7z-tZH_OTaD1h_A8Ow this OneDrive folder]&amp;#039;&amp;#039;&amp;#039;.  Note that you will need to authenticate with your ISU account to view the notebook.  Programs that we develop during lecture will be available on the CS server here: https://cs.indstate.edu/~cs500/.  If you are logged into one of the CS systems in a terminal, you can get to these files by doing: &amp;lt;code&amp;gt;cd ~cs500/public_html/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Announcements/Assignments/Quizzes/Exams=&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;HW and Labs&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
These are posted in Canvas and 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;
&amp;#039;&amp;#039;&amp;#039;Rules&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Rules for HWs, quizzes, exams are in the course policies below.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Announcements&amp;#039;&amp;#039;&amp;#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;
&amp;#039;&amp;#039;&amp;#039;Course Description&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
The catalog description for this course is: &amp;quot;Review of undergraduate topics in Computer Science including Data Structures, Computer Architecture, and Computer Organization. Review of a computer programming language that students can expect to use in advanced courses.&amp;quot; The two main goals are that you leave the course as proficient C programmers and proficient at using and analyzing the most important data structures and algorithms.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Course Outline&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Getting started - system setup, git, linux, bash, make, apache, math background, development on your personal computer.&lt;br /&gt;
* Data structures - understanding/use of most important data structures - arrays, linked lists, skip list, binary search trees, red black trees, hash tables, heaps, B tree.  Implementation of some of these in C.&lt;br /&gt;
* Algorithms - understanding/use of basic algorithms - sorting (various), binary/linear search (and uses), graph algorithms (basic properties, BFS, DFS, MST, shortest path), strings (edit distance) - including some algorithms that are each of - greedy, dynamic programming, heuristic, randomized, brute force / backtracking.&lt;br /&gt;
* C programming basics - operators, reserved words, data types, base systems, overflow.&lt;br /&gt;
* C programming strings - manipulation of C strings.&lt;br /&gt;
* C programming memory management - different types of memory in C, how to use them, pros and cons.&lt;br /&gt;
* C programming style - good programming style for reliability, readability, extensibility, security.&lt;br /&gt;
* Vocab - additional terms, algorithms, concepts at a shallow level.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Learning Outcomes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* System setup - personal computer setup for both remote (connecting to CS server with terminal, sftp, X windows) and local development (editor, compiler).&lt;br /&gt;
* Git - basic use of git for source code management.&lt;br /&gt;
* Linux - proficient using the Linux terminal for development.&lt;br /&gt;
* Bash - basic use of bash scripts for testing code.&lt;br /&gt;
* Make - basic use of GNU make for compiling code.&lt;br /&gt;
* Apache - able to post content to your CS accounts to be viewable over the web.&lt;br /&gt;
* Math background - proficient in math background needed for data structures and algorithms.&lt;br /&gt;
* Personal computer - is setup for development so you can do coursework from your home computer as well.&lt;br /&gt;
* C programming - understanding of all language features, proficient in writing code using the most common, write code using good programming style.&lt;br /&gt;
* Data structures - understanding of operations, efficiency, use cases, can write code in C for data structure operations.&lt;br /&gt;
* Algorithms - understanding of basic algorithms, arguments for correctness and efficiency, can use the right algorithms to solve problems efficiently.&lt;br /&gt;
&lt;br /&gt;
=Prerequisite, CS 500=&lt;br /&gt;
The prerequisite for CS 500 is admission to the CS MS program or permission of instructor. You should be a competent programmer in some programming language and have studied data structures and algorithms as a part of some course in the past. &lt;br /&gt;
&lt;br /&gt;
You can check the CS MS admissions programming quiz to gauge your programming level - https://indstate.instructure.com/courses/12565/quizzes/238564&lt;br /&gt;
&lt;br /&gt;
=Assignments=&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Start Assignments and Quiz Studying Early&amp;#039;&amp;#039;&amp;#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;
&amp;#039;&amp;#039;&amp;#039;Expected Amount of Work&amp;#039;&amp;#039;&amp;#039; - &lt;br /&gt;
My expectation is that an average student will spend about 5-10 hours OUTSIDE of class each week (that is in addition to class time or viewing lecture videos) WORKING PRODUCTIVELY/EFFICIENTLY (not just staring at the computer) to complete their coursework for this class. Some students may spend less time than this, and some students will spend more.&lt;br /&gt;
&lt;br /&gt;
This is the foundation for the rest of CS, so it definitely pays off to do your best here. &lt;br /&gt;
&lt;br /&gt;
Note - please find a way to spend enough time on this class (the investment will pay off in terms of skills, being able to get a job, etc.).&lt;br /&gt;
&lt;br /&gt;
=Grade Meanings= &lt;br /&gt;
Letter grades in this course are intended to have the following rough meaning. &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&amp;#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&amp;#039;t mastered the details well enough to be able to use this knowledge in the future.  &amp;#039;&amp;#039;&amp;#039;Note that the lowest grade for grad courses is a C, so if you fall in the range below C then your letter grade will be an F.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* F: Normally, students that get an F simply stopped doing the required work at some point, or cheated on something.&lt;br /&gt;
The default assignment of letter grades will initially be the usual one (90 is an A-, 80 is a B-, etc.), but these cutoffs will be adjusted down (in your favor). I will adjust these cutoffs and let you know where you stand periodically throughout the term.&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>
</feed>