Syllabus: CS 1581 Honors Computer Science I

Course Web Page

Term Schedule

Course Content and Objectives

This course is an introduction to computer science, focusing on the disciplines of procedural, data, and machine abstraction. It is intended for higher ability students, but it does not require experience with any particular kind of computer or programming language. It does require a certain level of mathematical sophistication. The course satisfies the Liberal Education requirement Language and Reasoning Skills: Logic and Quantitative Reasoning.

This course is designed to be an introduction to the science of problem solving through the writing of computer programs. Students will become familiar with multiple computer programming paradigms, including functional, imperative, and object-oriented programming.

Ten weeks of the course will be taught using the powerful, elegant, and high-level language Scheme. (The version of Scheme we will use is called Racket.) Scheme is simple to learn and helps students understand the principles of procedural and data abstraction that they will carry throughout their programming careers.

The last five weeks of the course will introduce the concept of machine abstraction, first through the use of a simulated assembly language. The course will conclude by applying the abstraction principles learned to the object-oriented programming language C++.

This course addresses these Student Learning Outcomes (campus-wide):

This courses addresses these UMD Liberal Education Logic and Quantitative Reasoning outcomes (LQ-SLOs):

This course also addresses outcomes in computer science education specified by the UMD Department of Computer Science and aligned with the standards put forth by the ABET accrediting board.

Grading Basis

Grades will be based on the total points earned on exams, programming assignments, and lab activities. These points are broken down as follows:

item number points each total
Exam 3 75 225
Individual Assignment 4 25 100
Lab Exercise 9 10 90
Extended Lab Exercise 5 15 75
Grand Total 490

The final grades will be based on the 490 point total. Generally:

90% guarantees an A
80% guarantees a B
70% guarantees a C
60% guarantees a D

These grade cutoffs will never be raised; but they may be lowered. Your grades will always be available through the CS 1581 Course Canvas site .

Course Organization

We will meet in lecture on Mon-Tue-Wed-Fri, when new material will be presented. We will meet in lab on Thursdays, where you will perform lab exercises and/or work on individual assignments. All times, locations, and reading assignments are on the term schedule.

Labs and Assignments

It is expected that you will read through the lab exercises and perhaps get a start on them before the lab hour begins. For the first 8 labs, you will have until 10:00 p.m. on the day of the lab to submit your exercise. The last 4 labs are extended exercises and are due the day after the lab by 10:00 p.m. Due dates and times are given on the CS 1581 Course Canvas site .

The individual assignments will be more involved than the lab exercises, and you are expected to work on them on your own time, although we will take questions concerning them during labs and discussions.

All labs and assignments will be posted on the term schedule and must be submitted through the CS 1581 Course Canvas site .

Late Submissions

Lab exercises and assignments must be turned in by the due date and time given on the course Canvas site. Ample time is given to complete these projects, and the only reason for being late will be poor time management. Late submissions are subject to the following penalties: In calculating late penalties, weekends will be considered one day. For example, if an assignment has a deadline on Friday and it is submitted before the same deadline Sunday, it will be considered one day late.

Late submissions will be accepted through Friday of the last day of the regular semester; they will not be accepted during finals week.


Exams will cover all lecture and reading material. Exam dates, coverage, and topics are also given on the term schedule. Exams must be taken on the hour they are scheduled. They will not be given early, and can be made up only if documented evidence of medical emergency or death in the family is presented before the time of the exam.

Development Environment

The development environment assumed by labs and assignments will be DrRacket (formerly DrScheme). This environment will be available on lab PCs, but you may also install it on your own machines. The environment is free and open source.

Collaboration and Academic Dishonesty

There are no team projects in this course. All lab exercises, assignments, and exam takings are individual undertakings. You may discuss an assignment and general approaches to a problem with your professor, your lab instructor, lab consultants, or your classmates, but you must design your program and write the code yourself. You may consult with others about your design or seek help in debugging, but you may not collaborate with anyone on the writing of your code. Any such collaboration will be regarded as academic dishonesty, a serious offense.

Inappropriate Use of Technology in the Classroom

You must refrain from using cell phones, text-messaging, watching videos, playing computer games, doing email, or surfing the Internet on your computer for uses other than instructor-sanctioned activities.


Last Word

All excellent things are as difficult as they are rare. -- Benedict Spinoza

Page URL: /~tcolburn/cs1581/syllabus.html
Page Author: Tim Colburn
Last Modified: Tuesday, 12-Nov-2019 11:15:39 CST
Comments to: