<?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_470_Programming_Languages</id>
	<title>CS 470 Programming Languages - 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_470_Programming_Languages"/>
	<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_470_Programming_Languages&amp;action=history"/>
	<updated>2026-04-14T21:47:42Z</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_470_Programming_Languages&amp;diff=97&amp;oldid=prev</id>
		<title>Jkinne: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_470_Programming_Languages&amp;diff=97&amp;oldid=prev"/>
		<updated>2025-08-17T13:22:12Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&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 13:22, 17 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki2:diff:1.41:old-96:rev-97 --&gt;
&lt;/table&gt;</summary>
		<author><name>Jkinne</name></author>
	</entry>
	<entry>
		<id>https://cs.indstate.edu/web/index.php?title=CS_470_Programming_Languages&amp;diff=96&amp;oldid=prev</id>
		<title>wiki_previous&gt;Znoble1 at 13:13, 18 May 2021</title>
		<link rel="alternate" type="text/html" href="https://cs.indstate.edu/web/index.php?title=CS_470_Programming_Languages&amp;diff=96&amp;oldid=prev"/>
		<updated>2021-05-18T13:13:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Catalog Description ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the course is to develop an understanding of the organization of programming languages and introduce the formal study of programming language specification and analysis. Topics covered usually include: language definition structure, data types and structures, control structures and data flow, run-time consideration, interpretative languages, lexical analysis, and parsing.  Prerequisite - C or better in CS 202.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Student must have knowledge of   Programming and Elementary Data Structures&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Standard Content ==&lt;br /&gt;
===Course Outline ===&lt;br /&gt;
The course begins with a history of programming languages, and the various  programming paradigms are introduced. The Logic Programming paradigm is covered using Prolog as the example. Backtracking, unification, recursion, the cut , depth first search are covered. Stack overflows, occurs check , and floundering problems are covered. Applications covered are list processing, state space problem solving, constraint processing, expert systems, natural language processing and parsing.&lt;br /&gt;
The Functional Programming paradigm  is illustrated using Haskell. Covered are list processing and the conversion to  tail recursion using the method of accumulating parameters, fixed point computation, square root computation and sorting, testing of perfect numbers, and implementing the Sieve or Eratosthenes using Lazy Evaluation, available in Haskell. Proofs of list properties using structural induction are covered, and the implementation of data structures using Haskell is covered.&lt;br /&gt;
The Object Oriented Programming paradigm is covered using Smalltalk: introduced are the elements of the GUI: browsers, Workspaces, and Transcripts, Defining classes, and objects, inheritance and aggregation hierarchies are introduced. Avoidance of conditional code through polymorphism, polymorphism within and across inheritance hierarchies is considered, and the model –view – controller pattern through the use of the dependency mechanism are described. The issue of aggregation vs. inheritance is discussed  via a concrete example.&lt;br /&gt;
The Concurrent Programming paradigm is introduced. Three synchronization problems are considered: Serialization, Mutual Exclusion and the Rendezvous. Semaphores are introduced and the use of Semaphores  in solving the synchronization problems are discussed. Implementations of the solutions are given in Smalltalk, using the Process and Semaphore implementations available in Smalltalk.&lt;br /&gt;
Finally aspects of the syntax and semantics of programming languages are covered.&lt;br /&gt;
&lt;br /&gt;
===Learning Outcomes===&lt;br /&gt;
Functional, Logic, Object-Oriented and Concurrent programming paradigms, syntax and semantics of programming languages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Important Assignments and/or Exam Questions===&lt;br /&gt;
In each of the programming paradigms, short assignments, and a larger assignment are given.&lt;br /&gt;
&lt;br /&gt;
=== Standard resources ===&lt;br /&gt;
* [1] Learn Prolog Now   	http://www.learnprolognow.org/&lt;br /&gt;
* [2] Learn You a Haskell for Great Good  http://learnyouahaskell.com/&lt;br /&gt;
* [3] Squeak Smalltalk  https://squeak.org/&lt;br /&gt;
* [4] The Little Book of Semaphores http://greenteapress.com/semaphores/LittleBookOfSemaphores.pdf&lt;br /&gt;
* [5]  Syntax and Semantics of Programming Languages    	http://homepage.divms.uiowa.edu/~slonnegr/plf/Book/&lt;/div&gt;</summary>
		<author><name>wiki_previous&gt;Znoble1</name></author>
	</entry>
</feed>