Syllabus

STRUCTURE  AND INTERPRETATION OF COMPUTER PROGRAMS –

COMP. 200 (1), 2018 FALL

Class Meeting Location          SOSB08
Class Meeting Times               MoWe 10:00 - 11:15

Instructor                                 TEVFİK METİN SEZGİN

Office Hours                             Tue 11-12

Office Location                       

Office Phone                           

Email                                         mtsezgin@ku.edu.tr

Web Address                          

Number of Credits                   3

ETCS Credit                              6

Prerequisites                            (COMP. 106 and COMP. 131 ) or consent of the instructor

Language                                  English

Assistant

NA

Course Description

An introduction to core software engineering concepts focusing on the control of complexity in large programming systems. Building abstractions with procedures and data. Modularity, objects and state. Machine models, compilers and interpreters. Substantial weekly programming assignments are an integral part of the course. This syllabus is tentative, and it is the students’ responsibility to follow any changes by following the course web site. See the course web site for additional syllabus information.

Course Objectives

This course introduces students to the principles of computation. Upon completion of Comp200, students should be able to explain and apply the basic methods from programming languages to analyze computational systems, and to generate computational solutions to abstract problems.

Learning Outcomes

Upon completion of Comp200, students should be able to explain and apply the basic methods from programming languages to analyze computational systems, and to generate computational solutions to abstract problems.

Teaching Methods

Lectures, projects, homeworks and labs.

Course Contents

Session

Number

Starting

Date

Topics

28

17/09/2018

Introduction to computation       

Basic Scheme (1.1)      

Substitution model (1.1)

Recursion and iteration (1.2)     

Orders of growth (1.2)  

Higher order procedures (1.3)

Pairs and Lists (2.2)     

Data abstractions (2.1) 

Program methodology

A picture language (2.2.4)

Symbols and quotation (2.3)

Mutation (3.1)  

Graphs and Tables        (3.3)

Environment model (3.2)

Object oriented systems I

Object oriented systems II

Interpretation

Programming languages concepts (LET)

Programming languages concepts (LETREC)

Assessment Methods

Type

Description

Final

Grade %

Midterm Test

 

25

Final Exam

 

25

Project

1 introductory project and 4 extended programming projects

30

Homework

Problem sets

10

Quizzes/Part

 

10

Total

 

100

The course will use catalog grading scale.

All percentages are subject to change within a margin of 5% during the semester at the instructor's discretion. In addition, up to 5% additional bonus, and 5% participation points may be added to the total. Total number of quizzes, hence points per quiz will depend on the progress of the class as a whole, although you should expect about 10 quizzes. You must complete the projects to pass the course. A passing grade based on the other factors may be converted to a failing grade under the following conditions:

  • If you do not turn in all the projects, where turning in means including a serious attempt to complete each problem.
  • If you miss more than one third of the lectures.
  • If you copy another person's work and represent it as your own in any single problem set, project, or exam.
  • If your midterm and final average is below 30.

Workload Breakdown

Type

Description

%

Lecture                   

 

20

Lab/PS

 

20

Project

 

40

Exams

 

20

Total

 

100

Sources

Required TextBooks

  • The textbook for this course is Structure and Interpretation of Computer Programs, Second Edition by Abelson, Sussman, and Sussman. This book can be obtained from the school book store. In addition, an online version is available, and can be found through the link on the course web page.
  • https://sites.google.com/a/ku.edu.tr/comp200/              course web site

Teaching Assistants


Academic Dishonesty

  • Honesty and trust are important to all of us as individuals. Students and faculty adhere to the following principles of academic honesty at Koc University:
  • Individual accountability for all individual work, written or oral. Copying from others or providing answers or information, written or oral, to others is cheating.
  • Providing proper acknowledgement of original author. Copying from another student's paper or from another text without written acknowledgement is plagiarism.
  • Study or project group activity is effective and authorized teamwork. Unauthorized help from another person or having someone else write one's paper or assignment is collusion. Cheating, plagiarism, and collusion are serious offenses resulting in an F grade and disciplinary action.
  •  Academic Regulations-Academic Integrity

Academic dishonesty in the form of cheating, plagiarism, or collusion are serious offenses and are not tolerated at Koç University. University Academic Regulations and the Regulations for Student Disciplinary Matters clearly define the policy and the disciplinary action to be taken in case of academic dishonesty. Failure in academic integrity may lead to suspension and expulsion from the University. Cheating includes, but is not limited to, copying from a classmate or providing answers or information, either written or oral, to others. Plagiarism is borrowing or using someone else's writing or ideas without giving written acknowledgment to the author. This includes copying from a fellow student's paper or from a text (whether printed or electronic) without properly citing the source. Collusion is getting unauthorized help from another person or having someone else write a paper or assignment.