CSIS 420 - Structures of Programming Languages

Course Description

A study of the basic design of computer programming languages, with greater emphasis placed on semantics (over syntax). A comparative analysis is made among several of the common languages.

Instructor

Dr. David M. Hansen
Current Weekly Schedule

Texts

Required
  • Sebesta, Robert Concepts of Programming Languages. Addison Wesley.
Recommended
None

Objectives

  • Students will understand the common design, implementation, and linguistic features of computer programming languages including:
    • Types & Abstraction
    • Operations
    • Flow of Control
    • Subprogramming
    • Storage Management
    • Implementation
  • Students will be familiar with broad sub-categories of programming languages including:
    • Traditional Procedural
    • Object-Oriented
    • Functional
    • Logic
  • Each student will select a specific programming language that they will explore in-depth.

Course Organization

This course will consist primarily of lectures, in-class presentations, homework assignments, and hands-on experience with one or more new and novel programming languages.

This course will include an on-going programming language project. This project will require students to acquire in-depth knowledge about a chosen, unfamiliar (to them) programming language, along with minimal programming competence in their chosen language. The project will include both a written and oral report.

The course will include regular homework assignments (please see my comments on collaboration and programming). Assignments are due BEFORE the beginning of class on the due date; there will be NO CREDIT given for late assignments (without an excused absence) - turn in as much as you can.

Reading assignments should be completed before the lecture covering the material. Not all reading material will be covered in the lectures, but you will be responsible for the material on homework and exams. Quizes over the assigned reading may be given at any time.

The Vision Statement of the Computer Science and Information Systems majors states that our students are distinctive by: "Bringing a Christ-centered worldview to our increasingly technological world." As one step towards the fulfillment of this objective, each semester, we will identify an influential Christian writing to be read and reflected upon by students in our classes throughout the term. This will be treated as an official component of every course and will be uniquely integrated and assessed at our discretion, generally as a component of the quiz grade. See the semester's reading schedule. In addition, regular meetings will be scheduled throughout the semester that can be attended for Chapel credit.

It is my hope that students will not view this as one more task to complete, but as a catalyst for continued discussion ultimately leading to a deeper walk with Christ.

The chief end of man is to glorify God, and enjoy Him forever.
(Westminster Confession)

If you have specific physical, psychiatric, or learning disabilities and require accommodations, please contact the Disability Services Office as early as possible so that your learning needs may be appropriately met. You will need to provide current documentation of your disability to the Disability Services Office. For more information, go to ds.georgefox.edu or contact Rick Muthiah, Dean of the Center for Teaching and Learning (ext. 2314)

Grading

Grading Scale

The final grade will be based on:

Tentative Schedule

Week DateTopicReading
1 1/9 Introduction 1.1-1.3
1/11 Design & Implementation 1.4-1.8; Project
1/13 Early Languages 2.1-2.9
2 1/16 MLK Holiday
1/18 Designed Languages 2.10-2.14
1/20 Modern Paradigms 2.15-2.20
3 1/23 Describing Syntax 3.1-3.3
1/25 Grammars & Semantics 3.4-3.5
1/27 Lexical Analysis 4.1-4.2
4 1/30 Parsing 4.3-4.4; skim 4.5
2/1 Names & Variables 5.1-5.4
2/3 Scope 5.5-5.8
5 2/6 Primitive Types 6.1-6.4
2/8 Arrays 6.5-6.6
2/10 Structures 6.7-6.10
6 2/13 Pointers & References 6.11
2/15 Type Checking 6.12-6.15
2/17 Arithmetic Expressions 7.1-7.4
7 2/20 Boolean Expressions & Assignment 7.5-7.8
2/22 Sequential & Conditional Flow 8.1-8.2
2/24 Iteration 8.3-8.6
8 2/27 Subprogramming 9.1-9.4
3/1 Parameter-Passing Mechanisms 9.5-9.6
3/3 Functions 9.7-9.9
9 3/6 Advanced Subprogram Concepts 9.10-9.13
3/8 Simple Subprogram Implementation 10.1-10.3
3/10 No Class
10 3/13 Blocks & Dynamic Scope 10.4-10.6
3/15 Data Abstraction 11.1-11.4
3/17 Data Encpsulation 11.5-11.7
11 3/20 Object-Oriented Languages 12
3/22 Exception & Event Handling 14; C Signal Handling
3/24 Functional Languages 15
12 Spring Break
13 4/3 Logic Languages 16
4/5 Presentations Reports
4/7 Presentations Reports
14 4/10 Presentations Reports
4/12 Presentations Reports
4/14 Good Friday Isaiah 53:3-9
15 4/17 Presentations Reports
4/19 Presentations Reports
4/21 Wrap up & Review  
This page was last updated .
For questions or comments about this page, please email the webmaster.