CSCI 1910ha -- New Course

Wed Dec 8 10:15:08 2010

Approvals Received:
on 11-29-10
by Mary Freppert
Approvals Pending: College/Dean  > Honors > LE > Catalog > PeopleSoft Manual Entry
Effective Status: Active
Effective Term: 1119 - Fall 2011
Course: CSCI 1901H
UMNTC - Twin Cities
UMNTC - Twin Cities
Career: UGRD
College: TIOT - College of Science and Engineering
Department: 11108 - Computer Science & Eng
Course Title Short: Honors Computer Programming
Course Title Long: Honors Structure of Computer Programming
Max-Min Credits
for Course:
4.0 to 4.0 credit(s)
Key concepts in computer science: recursion, abstraction, modularity, data structures, algorithms, problem solving strategies. Programming languages Scheme and Python. More advanced computer topics as time permits.
Print in Catalog?: Yes
CCE Catalog
<no text provided>
Grading Basis: A-F only
Topics Course: No
Honors Course: Yes
Delivery Mode(s): Classroom
Contact Hours:
5.0 hours per week
Years most
frequently offered:
Every academic year
Term(s) most
frequently offered:
Component 1: LEC (with final exam)
Component 2: LAB (no final exam)
Progress Units:
Not allowed to bypass limits.
4.0 credit(s)
Financial Aid
Progress Units:
Not allowed to bypass limits.
4.0 credit(s)
Repetition of
Repetition not allowed.
for Catalog:
&(MATH 1371 or MATH 1571H), honors student, permission of University Honors Program
CSci 1901
(course-based or
000571 -honors student
Editor Comments: Although it is not apparent from the catalog entry, there will be two major differences between 1901 and 1901H. First, 1901H --- in addition to covering the usual 1901 topics --- will also cover additional topics that will deepen, broaden, or complement the usual material. The topics must be appropriate for the class, and should mesh well with the usual 1901 topics. However, the specific additional topics will be up to the professor to decide.    Second, the 1901H "lecture" will be held in a lab or technology-enhanced classroom to make it easier to teach the course using a problem-solving based approach.
Proposal Changes: <no text provided>
History Information: <no text provided>
Sponsor Name:
Phil Barry
Sponsor E-mail Address:
Student Learning Outcomes
Student Learning Outcomes: * Student in the course:

- Can identify, define, and solve problems

Please explain briefly how this outcome will be addressed in the course. Give brief examples of class work related to the outcome.

CSci 1901H is focused on computational problem solving. Specifically,the course labs, homework assignments,project, and exams all ask the students to solve various problems. For example, for a given problem students must engage in problem-solving tasks such as clarifying any ambiguous aspects of the problem definition, decomposing the problem into subproblems, deciding which computer-related problem solving strategies (such as recursion) might be useful in solving the problem, constructing a solution, implementing the solution as a computer procedure, and verifying that the solution is correct (including modifying it when it is not).

How will you assess the students' learning related to this outcome? Give brief examples of how class work related to the outcome will be evaluated.

This SLO will be assessed through labs, homework, the final project, exams, and in-class exercises. Each of these types of student work is problem-based. They will often focus on well-defined problems students need to solve; however, they will also involve some open-ended problems where students need first to identify, define, and/or clarify what the problem is before solving it.

Liberal Education
this course fulfills:
Other requirement
this course fulfills:
Criteria for
Core Courses:
Describe how the course meets the specific bullet points for the proposed core requirement. Give concrete and detailed examples for the course syllabus, detailed outline, laboratory material, student projects, or other instructional materials or method.

Core courses must meet the following requirements:

  • They explicitly help students understand what liberal education is, how the content and the substance of this course enhance a liberal education, and what this means for them as students and as citizens.
  • They employ teaching and learning strategies that engage students with doing the work of the field, not just reading about it.
  • They include small group experiences (such as discussion sections or labs) and use writing as appropriate to the discipline to help students learn and reflect on their learning.
  • They do not (except in rare and clearly justified cases) have prerequisites beyond the University's entrance requirements.
  • They are offered on a regular schedule.
  • They are taught by regular faculty or under exceptional circumstances by instructors on continuing appointments. Departments proposing instructors other than regular faculty must provide documentation of how such instructors will be trained and supervised to ensure consistency and continuity in courses.

<no text provided>
Criteria for
Theme Courses:
Describe how the course meets the specific bullet points for the proposed theme requirement. Give concrete and detailed examples for the course syllabus, detailed outline, laboratory material, student projects, or other instructional materials or methods.

Theme courses have the common goal of cultivating in students a number of habits of mind:
  • thinking ethically about important challenges facing our society and world;
  • reflecting on the shared sense of responsibility required to build and maintain community;
  • connecting knowledge and practice;
  • fostering a stronger sense of our roles as historical agents.

<no text provided>
Writing Intensive
Propose this course
as Writing Intensive
Question 1 (see CWB Requirement 1): How do writing assignments and writing instruction further the learning objectives of this course and how is writing integrated into the course? Note that the syllabus must reflect the critical role that writing plays in the course.

<no text provided>
Question 2 (see CWB Requirement 2): What types of writing (e.g., research papers, problem sets, presentations, technical documents, lab reports, essays, journaling etc.) will be assigned? Explain how these assignments meet the requirement that writing be a significant part of the course work, including details about multi-authored assignments, if any. Include the required length for each writing assignment and demonstrate how the minimum word count (or its equivalent) for finished writing will be met.

<no text provided>
Question 3 (see CWB Requirement 3): How will students' final course grade depend on their writing performance? What percentage of the course grade will depend on the quality and level of the student's writing compared to the percentage of the grade that depends on the course content? Note that this information must also be on the syllabus.

<no text provided>
Question 4 (see CWB Requirement 4): Indicate which assignment(s) students will be required to revise and resubmit after feedback from the instructor. Indicate who will be providing the feedback. Include an example of the assignment instructions you are likely to use for this assignment or assignments.

<no text provided>
Question 5 (see CWB Requirement 5): What types of writing instruction will be experienced by students? How much class time will be devoted to explicit writing instruction and at what points in the semester? What types of writing support and resources will be provided to students?

<no text provided>
Question 6 (see CWB Requirement 6): If teaching assistants will participate in writing assessment and writing instruction, explain how will they be trained (e.g. in how to review, grade and respond to student writing) and how will they be supervised. If the course is taught in multiple sections with multiple faculty (e.g. a capstone directed studies course), explain how every faculty mentor will ensure that their students will receive a writing intensive experience.

<no text provided>
Course Syllabus
Course Syllabus: For new courses and courses in which changes in content and/or description and/or credits are proposed, please provide a syllabus that includes the following information: course goals and description; format;structure of the course (proposed number of instructor contact hours per week, student workload effort per week, etc.); topics to be covered; scope and nature of assigned readings (text, authors, frequency, amount per week); required course assignments; nature of any student projects; and how students will be evaluated. The University "Syllabi Policy" can be found here

The University policy on credits is found under Section 4A of "Standards for Semester Conversion" found here. Course syllabus information will be retained in this system until new syllabus information is entered with the next major course modification. This course syllabus information may not correspond to the course as offered in a particular semester.

(Please limit text to about 12 pages. Text copied and pasted from other sources will not retain formatting and special characters might not copy properly.)

CSci 1901H - Honors Structure of Computer Programming

Text: Abelson and Sussman, Structure and Interpretation of Computer Programs, 2nd edition McGraw Hill Book Company, 1996. The textbook is also available for free online.

Instructor contact & student workload:
3 hours of lecture per week.
2 hours of lab per week.
About 6 hours outside of these per week.

10% In-class Exercises
10% Midterm Exam 1
15% Midterm Exam 2
20% Final
5% Quizzes
20% Labs
10% Homeworks
10% Final Project
Using the above weights, a total of 90% and up will earn you some level of A, 80% and up at least some level of B, 70% and up at least some level of C, 60% and up at least a D.

Class Webpage: All future handouts, assignments, announcements, and any additional material will be available through the 1901H class web page in the directory

Learning Goals: CSci 1901/1901H is a required course for computer science and computer engineering students that students should take in their freshman year. It is one of the courses required for admission to the computer science major, and is the first class in the sequence for majors.

1901/1901H offers an introduction to the fundamental principles of programming and to different programming paradigms, with emphasis on the design of abstract data types and recursive algorithms.

Computer science and engineering students need to acquire the reasoning and abstraction skills needed for designing algorithms and programs. This course teaches how to think as a computer scientist, by teaching the process of building abstractions to hide implementation details, of decomposing problems into simpler problems, and of controlling the intellectual complexity of designing large software systems.

1901/1901H does not assume any previous programming knowledge; however, it does have a co-requisite of Calculus I. This means you should either have completed Calculus I successfully, or should be taking Calculus I. Some material from Calculus I, such as differentiating polynomials, may be used in 1901/1901H; moreover, the mathematical and logical reasoning skills used in Calculus I also play a heavy role in this class.

Upon completing this course you should be able to
1. explain what a computational process is and be able to express computational processes using procedures in the programming language or languages used in this course.
2. explain what an abstract data type is, how to create new abstract data types, and how to express them in Scheme or in other programming languages used in the course.
3. use recursion as a problem solving method.
4. explain how the process of evaluation is performed from the perspective of the computer and how procedural objects are created and manipulated.
5. explain and use basic principles of program design, such as abstractions to hide implementation details, and problem decomposition to control the intellectual complexity of the problem.
6. explain how to use different programming styles (functional, object-oriented, data-driven).
7. use good programming style in the programs you write.
8. design appropriate data structures and algorithms to solve a given problem, using recursion whenever appropriate.
9. design, implement, and test a computer program that solves a given problem, and have some basic understanding of the computational complexity of your program.

Honors Class: This is the honors version of CSci 1901. It will therefore cover the usual 1901 material such as recursion, abstractions, modularity, and data structures. However, as the honors version it will also allow looking at some of the usual 1901 topics in more detail, and including some additional material not in the usual 1901 class. Examples of possible additional topics include, but are not limited to: robotics, social aspects of computer science, additional programming paradigms, and programming language design and implementation.

Labs: You are required to use the MIT software package, which is available on the ITLabs computers. You may install MIT on your own computer but the TA will not be able to assist you with managing your personal system. It is your responsibility to make sure your programs work on the ITlabs machines on which the TA will grade your programs. Labs will be graded on correctness, completeness, and style. Correctness and completeness refer to how well the program works. Style includes good design, readability (indentations, descriptive names for variables and procedures, and appropriate use of blank spaces), and useful comments. You are expected to comment (include input, output, assumptions, etc. and will be discussed in class/discussion) each of your function. Testing your program for correctness is very important and you are expected to submit your own test cases along with the results. You should include test cases that verify where your code works as well as cases that show where it fails.
Lab programs you write must follow the specific instructions on each lab description.

Scholastic Conduct: Although you are free to discuss assignments with others, the work you submit for grading must represent your own efforts only. Exams are closed book and note and are to be completed using only your own knowledge of the course material. The experience gained from the labs will be very helpful for the exams and future labs may build on previous ones, so put in the effort needed to fully understand the solutions. Cheating on quizzes or exams is a serious offense, and will be dealt with as such. Additionally, labs are done in groups of two, but collaboration with others outside your group of two is prohibited. Homework assignments are individual efforts. You may discuss (in a general way) labs and homework problems with others, but you may not collaborate by writing code or specific solutions with others (with the exception of your lab partner in the case of labs). Copying other's answers, or letting another person copy your answers (either intentionally or as a result of negligence) is a serious situation and can result in failing the course. For further information on academic misconduct please see barry/intro/acad-conduct.html. If you have any questions about what is and is not allowable in this class, please ask the course instructor.

Incompletes: Incompletes will be given only in very rare instances when an unforeseeable event causes a student who has completed all the coursework to date to be unable to
complete a small portion of the work (typically the final assignment or exam). Incompletes will not be awarded for foreseeable events including a heavy course load or poorer-than-expected performance. Verifiable documentation must be provided for the incomplete to be granted, and arrangements for the incomplete should be made as soon as such an event
is apparent.

Other Information: Other general information will be given in class and/or posted on the class web page.
Strategic Objectives & Consultation
Name of Department Chair
<no text provided>
Strategic Objectives -
Curricular Objectives:
How does adding this course improve the overall curricular objectives ofthe unit?

<no text provided>
Strategic Objectives - Core
Does the unit consider this course to be part of its core curriculum?

<no text provided>
Strategic Objectives -
Consultation with Other
In order to prevent course overlap and to inform other departments of new curriculum, circulate proposal to chairs in relevant units and follow-up with direct consultation. Please summarize response from units consulted and include correspondence. By consultation with other units, the information about a new course is more widely disseminated and can have a positive impact on enrollments. The consultation can be as simple as an email to the department chair informing them of the course and asking for any feedback from the faculty.

<no text provided>