CS计算机代考程序代写 scheme data structure algorithm CSE1729 – Principles of Programming

CSE1729 – Principles of Programming
January 22, 2021
Course Syllabus
CSE1729 is a rigorous introduction to programming based on the famous text “Structure and Interpretation of Computer Programs,” by Abelson and Sussman. The course covers basic programming in a largely declarative style using SCHEME, a simple but powerful programming language. The course covers elementary design principles, including object-oriented design, and basic data structures such as binary trees, and heaps as well as Abstract Data Types such as stacks, and queues.
COURSE TEXTBOOK
The textbook for the course is “Structure and Interpretation of Computer Programs,” by Abelson and Sussman. This is probably the most famous book on introductory programming ever written, and has been transferred to a free license by the authors; you can find the entire book in many formats, for free, on-line:
• A hyperlinked html version
• A fancier html5 version.
• A professionally typeset .pdf version (link available on the course website) • Versions for e-readers.
PROGRAMMING ENVIRONMENT
We will use the Scheme (R5RS) programming language and the (free) Racket environment for programming.
• The official Scheme R5RS language description.
• The Racket environment. (Find the appropriate binary for your operating system on the downloads page.)
COURSE OVERVIEW
The courses focuses on functional and data abstraction in a structured programming language, including:
1. Elementary data types and variables:
(a) numeric, Boolean, string, and token expressions; (b) variables and assignments;
(c) binding and environments; (d) function definition.
2. Elementary control flow:
(a) function application;
(b) conditional control flow;
(c) parameter passing with a discussion of various conventions;
(d) higher order functions;
(e) recursive evaluation and recursive decomposition of computational problems.
3. Structured data:
(a) structured datatypes including trees and lists;
(b) abstract data types (list, queue, priority queue, set);
1

(c) binary search trees, heaps;
(d) sorting and selection algorithms; (e) vectors, arrays (matrices);
(f) iteration over structures;
(g) memory layout, garbage collection.
4. Objects, modularity and state:
(a) functional programming, destructive assignment; (b) scoping conventions, lexical versus dynamic scope;
(c) closures;
(d) interfaces;
(e) object-oriented design;
(f) representation of ADTs as objects. TENTATIVE SCHEDULE
Week 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
COURSE STRUCTURE
Topic(s)
Introduction, Expressions, Variable Bindings
Functions, Environment Semantics, Conditionals Recursion, Iteration
Local Variables, Lexical Scope, Higher Order Functions Tail Recursion, Pairs & Lists
Lists, Prelim 1
Sorting, Binary Trees
Binary Search Trees, Heaps
Huffman Coding Trees, Tries, Set ADT Mutable Data, Stack ADT
Stack ADT, Prelim 2
Queue ADT, Objects
Spring Recess
Streams
Vectors
Reading Sections 1.1.1 – 1.1.4
1.1.5 – 1.1.8
1.2.1 – 1.2.2
1.3
1.3, 2.1.1 2.2.1
2.2.1 – 2.2.2 2.3.3
2.3.4
3.1 – 3.3.1 3.3.1
3.3.2
3.5 5.3.1
All course materials and assignments will be accessible on the Moodle LMS site for the course which can be found at https://courses.engr.uconn.edu. This central web site will contain links to all course resources including lecture slides, supplementary videos, notes, lectures and recordings, lab sessions, office hours, etc. Coursework and assessments will also be posted there including lab assignments, problem sets, and examinations. To fully access lecture recordings, please use a web browser other than Safari.
Problem Sets Problem sets are assigned and due every week They will be assigned on Fridays and due 10 days later, on Monday evening. (The hard deadline is Tuesday at 4am.) Problem sets are submitted & graded on Mimir. For many questions, you should expect automated, immediate feedback. Problem sets are individual work; however, we have special forums set up on the Moodle site for technical help. Additionally, supporting material for each problem set will be practiced in the lab. No late work will be accepted. Instead, we will strike the lowest two homework grades from the record. (So, you may completely neglect two assignments with no penalty.)
2
Course Administration

Lab Assignments Lab assignments are due on Tuesday evening, the day of the lab. (The hard deadline in Wednes- day morning at 4am.) This timetable is meant to encourage you to do the lab work in lab! We encourage you to work with your peers in lab to complete the assignment. Your final submitted work must, however, be prepared on your own. As with the problem sets, all lab assignments are to be submitted on Mimir. As with problem sets, we will drop the two lowest lab assignment grades when calculating final grades.
Examinations There will be two preliminary examinations and one final examination during the semester. They are “closed-book” and “closed-note” exams. The preliminary exams will be 50 minute timed exams during the lecture period on the assigned day. The final exam will be a two hour exam scheduled by the university.
Grading
Grades are determined by the course components with the following weights:
Assignment
Lab Assignments
Problem Sets Prelim 1 Prelim 2 Final Exam
Weight 1/9 2/9 1/9 2/9 3/9
Final grades are Z-Scored. You can expect each letter grade to
outstanding performance in this class and have no preconceptions about the mean/median grade.
COURSE EXPECTATIONS
All students must complete and submit the CSE1729 Honor Code pledge PDF before receiving credit for any assign- ment or work in the course. Additionally, your problem set solutions must be your own individual work. You are welcome to solicit help from the instructor, the TA, especially by posting your questions to the technical forum on the Moodle site so that others can benefit from your question. Exam solutions must be your own individual work. You may ask a TA or the instructor proctoring the exam for clarification regarding questions on the exam. You may not hand in work obtained from web exploration, discussion with peers (except for lab assignments), etc. We will aggressively pursue issues of academic misconduct. University penalties for misconduct can be devastating. See the Student Code of Conduct section regarding academic integrity.
Misconduct Minimum Penalty
• 1st Strike: At least a zero on the assignment plus a letter-grade drop in the course • 2nd Strike: An F in the course.
3
reflect roughly one standard deviation. We expect