COSC 3410 Programming Languages
 
  Course Instructor:
  
Dennis Brylow 
  Email: brylow at mscs dot mu dot edu 
  Office: Cudahy 380 
  
  MWF 12:00pm - 12:50pm, Cudahy 114 
  
  Mon/Wed 3:00pm - 4:00pm
  Mon 7:00pm - 8:00pm
  Fri 11:00am - 12:00pm
  We will make our way quickly through all of
  The Little Schemer
  during the first few weeks.  It is a quick read, and an excellent
  introduction to both functional programming style and the Scheme dialect
  for beginners. 
  
    Essentials of Programming Languages is, at best, a terse
  book.  I have chosen it because the interpreter project at the
  core of this book is first class (no pun intended,) and I know that
  together we can make our way through the dense verbiage contained
  therein.  I will assign many of the problems contained in
  EOPL, and others
  may make excellent exam questions.
  Upon completing this course, students will be able to:
  
 Think competently in the functional programming paradigm;
   Express how the functional paradigm compares and contrasts with
  the other major programming paradigms, particularly the more
  commonly used imperative paradigm;
   Appreciate the power and limitations of modern programming
  languages, and understand how language choice impacts implementation
  issues;
   Understand the major components of a computer language
  interpreter;
   Work together effectively in teams on a substantial software implementation project. 
  Grades will be calculated using the following formula:
  
	
      
		| Homework | 60% | 
      
		| Pop (Reading) Quizzes | 5% | 
      
		| Exam #1 | 10% | 
      
		| Exam #2 | 10% | 
      
		| Exam #3 | 15% | 
	
  
   Students must pass BOTH the exam portion of the grade AND and
  homework assignment portion of the grade to pass the course
  overall.
   Assignments are to be completed individually, except when
  specifically noted otherwise. You may discuss course topics with
  your collegues, but written work and programmed code is not to be
  shared.
   Academic dishonesty (claiming another person's work as your
  own) will not be tolerated. Infractions will result in immediate
  failure of the course, and referral to the Dean's office, in
  accordance with Marquette's
  University-wide Academic
  Honesty Policy.
   If you are not certain what constitutes fair play and what will
  be considered academic dishonesty, please ask the instructor.
   Homework will consist of substantial design and implementation
  projects, often with a week or more lead time.  Students who wait
  until a few days before the deadline to begin the homework will
  typically not succeed.
   Late work will not normally be accepted for grading.  Students
  are expected to observe deadlines and follow submission instructions
  precisely.
   Although formal attendance will not be taken, it is expected
  that students will attend all scheduled sessions.  Excessive
  absences (which would be obvious from missing in-class pop quizzes,
  for example,) will result in withdrawal from the course, per
  Marquette's
  University-wide Attendance
  Policy.
  
	
      
		| Week | Topics | Readings | Demos | Assignments | 
      
      
		| 01 | Introduction, Scheme | TLS Ch 1,2,3 |  | HW #1 - Scheme | 
	  
      
		| 02 | Scheme | TLS Ch 4,5 | Church.scm | HW #2 - More Scheme | 
	  
      
		| 03 | More Scheme | TLS Ch 6,7,8 | Member.scm, 
		  Member.java Tree.scm
 | HW #3 - Even More Scheme | 
	  
      
		| 04 | Even More Scheme | TLS Ch 9,10 |  | HW #4 - Variable Binding | 
	  
      
		| 05 | Data Abstraction, Induction | EOPL Ch 1, 2 |  | HW #5 - Simple Interpreter | 
	  
      
		| 06 | Interpreters | EOPL 3.1 |  | Exam #1 | 
	  
      
		| 07 | Front End, Conditionals | EOPL 3.2, 3.3 | ParserGen.scm | HW #6 - Conditionals | 
	  
      
		| 08 | Local Binding Midterm Break
 | EOPL 3.3, 3.4 |  | Break | 
		
      
		| 09 | Procedures, Recursion Midterm Grades
 | EOPL 3.5, 3.6 |  | HW #7 - Binding and Closures | 
	  
      
		| 10 | Variable Assignment | EOPL 3.7 |  | HW #8 - Recursion | 
		
      
		| 11 | Types, Type Checking | EOPL 4.1, 4.2 |  | HW #9 - Statements and Assignment | 
	  
      
		| 12 | Abstraction Boundaries Drop Day
 | EOPL 4.3 |  | Exam #2 HW #10 - Type Checker
 | 
		
      
		| 13 | Type Inference Thanksgiving Break
 | EOPL 4.4 |  | Break | 
	  
      
		| 14 | Objects | EOPL Ch 5 |  | HW #11 - Objects | 
	  
      
		| 15 | History of Programming Langauges |  |  | HW #12 - History of Programming Languages | 
	
  
  
  The instructor reserves the right to adjust this schedule as necessary.
 
Back
[Revised 2011 Aug 29 11:11 DWB]