CSCI 1933h -- New Course

Mon Sep 26 11:01:39 2016

Back to Proposal List
Approvals Received:
on 09-23-16
by Mary Freppert
Approvals Pending: College/Dean  > Provost > Honors > Catalog
Effective Status: Active
Effective Term: 1173 - Spring 2017
Course: CSCI  1933H
UMNTC - Twin Cities/Rochester
UMNTC - Twin Cities
Career: UGRD
College: TIOT - College of Science and Engineering
Department: 11108 - Computer Science & Eng
Course Title Short: Honors Intro Algs & Data Str.
Course Title Long: Honors Introduction to Algorithms and Data Structures
Max-Min Credits
for Course:
4.0 to 4.0 credit(s)
Advanced object oriented programming to implement abstract data types (stacks, queues, linked lists, hash tables, binary trees) using Java language. Inheritance. Searching/sorting algorithms. Basic algorithmic analysis.  Use of software development tools. Weekly lab. Optional honors topics: Advanced Java topics, GUI programming, CS research examples.

prereq: 1133, 1133H, or inst consent
Print in Catalog?: Yes
CCE Catalog
Only include CCE Catalog Description in CCE Catalog.
<no text provided>
Grading Basis: A-F only
Topics Course: No
Honors Course: Yes
Online Course: No
Freshman Seminar: No
Is any portion of this course taught
outside of the United States?:
Contact Hours:
5.0 hours per week
Course Typically Offered: Every Spring
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:
<no text provided>
00008 - CSci 1902/CSci 1933
Cross-listings: No cross-listings
Add Consent
No required consent
Drop Consent
No required consent
(course-based or
004347 - CSci majors and pre-majors in CSE and CLA, honors
Editor Comments: "Honors Version
1933H is the honors version of CSci 1933. Like 1933, it is a 4 credit course, with a 3 hours of lecture and 2 hours of lab per week. 1933H covers the same basic material as 1933, but goes beyond it. Specifically, 1933H differs from 1933 in that the 1933 weekly lab is used for programming and practice with the topics discussed in lecture; the 1933H lab is instead used for advanced topics such as more involved programming concepts and problems, GUI programming, and the relation of computer science research to the 1933 course material."
Proposal Changes: please update equiv name to: CSCI 1092/1933/1933H
History Information: Sept 2016 - Add honors version of existing 1933 per the request of University Honors (Pamela Baker).
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 1933H is focused on the use of algorithms and data structures to solve problems. Specifically, the course labs, homework assignments, and exams all ask the students to solve various problems using appropriate software design methods and software tools. For example, students need to decide which problem solving strategies (such as divide and conquer) might be useful for a specific problem, construct a solution, design appropriate data types and algorithms, and verify the correctness of the solution.

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, homeworks, exams, and in-class exercises. Each of these types of students' work is problem-based; most involve open-ended problems where students need first to identify, define, and/or clarify what the problem is before solving it, and explain the solution they propose.

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>
LE Recertification-Reflection Statement:
(for LE courses being re-certified only)
<no text provided>
Statement of Certification: This course is certified for a Core, effective as of 
This course is certified for a Theme, effective as of 
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 2,500 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>
Statement of Certification: This course is certified as Writing Internsive effective  as of 
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.

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. The University "Syllabi Policy" can be found here

Any syllabus older than two years should be replaced with a current version when making ECAS updates.

CSci 1933H: Honors Introduction to Algorithms and Data Structures; (4 credits); Prereqs - CSci 1133, CSci 1133H, or #.

Course Overview
CSci 1933/1933H focuses on learning the key abstract data types ( list, stack, queue, tree) and object oriented concepts (class, object, method, inheritance) in the Java programming language. In addition the course introduces students to the use of modern debugging and software development tools.

CSci 1933/1933H is a required undergraduate course which computer science and computer engineering students should take in their freshman or sophomore year. It is one of the courses required for admission to the CSci major, and is a prerequisite for many of the higher level CSci classes. Transfer students who have completed 2 years at another school should have taken an equivalent class.

Honors Version
1933H is the honors version of CSci 1933. Like 1933, it is a 4 credit course, with a 3 hours of lecture and 2 hours of lab per week. 1933H covers the same basic material as 1933, but goes beyond it. Specifically, 1933H differs from 1933 in that the 1933 weekly lab is used for programming and practice with the topics discussed in lecture; the 1933H lab is instead used for advanced topics such as more involved programming concepts and problems, GUI programming, and the relation of computer science research to the 1933 course material.

Why This Class is Important and its Role in the Curriculum
Much of computer science assumes familiarity with the common abstract data types (e.g. stacks) and basic concepts of an object oriented programming language. Moreover, many employers require programming skills in a modern object oriented programming language such as Java.

Prerequisites and Rationale:
CSci 1133/1133H builds fundamental problem solving and programming skills, and prepares students for learning the
more complex Java language.

Classes Having 1933/1933H as a Prerequisite and Rationale
These include CSci 2021 and 2041 which in turn are prerequisites for many other classes. 1933H teaches the notion of abstract data types as well as the fundamental abstract data types (stacks, queues, and trees), which are used extensively in the rest of Computer Science. To give a few quick examples, (i) the queue abstract data type is used for CPU and disk scheduling; (ii) stacks are used extensively in the compilers, architecture and programming languages courses to describe parsing algorithms for arithmetic expression, computer programs etc.; (iii) abstract data types and object oriented programming are used as basic tools for software engineering.

Text: Carrano, Frank. Data Structures and Abstractions with Java, 3rd Ed.

Outcomes - Upon successful completion of the course students should have the following skills and proficiencies:

1. For each of the abstract data types discussed in class, the student should be able to:
* define the basic terminology and use it correctly,
* give an explanation of why it is important,
* provide and discuss specific CSci examples of its use,
* be able to identify its important characteristics as well as any important variants or special cases,
* perform the basic operations associated with it,
* use it, when applicable, to represent and solve problems.

2. Given a problem, students should be able to:
*identify which abstract data type and/or Java construct could be useful in representing or solving the problem, and why;
*modify or specialize abstract data types or techniques to make them applicable to problems that are not amenable to straightforward use of the abstract data types;
*develop a functioning object oriented program in Java, and document its functionality in terms of the given problem.

3. Student should be familiar with the process of developing and testing programs, using modern proper software development tools such as debugger and version control software.

Weekly outline of material:
WEEK 1: Overview. Introduction to Java and to IDE.
WEEK 2: Basic introduction to classes. Class and method specification. Object oriented design. Control structures, standard I/O, scalar data types.
WEEK 3: Additional material on classes. Method definition and invocation, parameter passing, scoping rules.
WEEK 4: Composite data types: arrays, strings.
WEEK 5; Use of software development tools (debugger, version control).
WEEK 6: Linked lists.
WEEK 7: Stacks.
WEEK 8: Queues. Priority queues.
WEEK 9: Introduction to trees: basic terminology and operations.
WEEK 10: Binary search trees. Heaps.
WEEK 11: Hash tables.
WEEK 12: Inheritance and polymorphism.
WEEK 13-14: Searching and sorting algorithms.
WEEK 15: Wrap up

Written homeworks will be due every two weeks. They will include some programs, some short pen and paper problems, and one more open question, such as "Define and compare classes and interfaces; compare inheritance and polymorphism; discuss the difference between arrays and linked-list implementation; compare queues, double queues, and priority queues."

15% In-class Exercises
15% Midterm Exam 1
15% Midterm Exam 2
20% Final
25% Labs
10% Homeworks

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 1933 class web page in the directory

Labs: Weekly labs include a variety of problems designed to help you acquire advanced programming skills in the Java language and to develop good software design practices.

Attendance: All students must attend the lab section and take exams with the lecture section in which they are registered. Any lab assignment or exam completed in a session for which the student is not registered will result in an assigned score of 0. The exception to this policy is for make-up labs and exams, which require explicit prior permission from the class instructor (see make-up policy below).

Make-up Labs and Examinations: Make-up labs and exams will only be offered for legitimate absences defined by University policies. For a make-up lab/exam to be considered, the student must contact the instructor via email prior to the start of the lab or exam. Failure to notify the instructor prior to the start of the lab/exam will result in an assigned grade of 0. For a legitimate absence (with the prior consent of the instructor) students may be allowed to attend a lab or exam session for which they are not registered.

Lecture Material: Course material will be presented during lecture that is not covered in the textbook and not generally made available outside of the lecture. Since students will be responsible for this material, it is very important to attend all lecture sessions. If a lecture is missed, it is the student's responsibility to arrange for notes from a classmate.

Late Policy for Lab Assignments: Completed and graded Lab Assignments must be submitted to your registered section at the beginning of the following week's lab for full credit. Lab assignments may be submitted up to 2 weeks late for partial credit.There is a 10% penalty per week for labs submitted late, up to two weeks, regardless when the lab was graded. Any lab submitted more than 3 weeks after it is assigned will receive a grade of 0. Note that all lab assignments must be submitted prior to the end of the semester. No late assignments will be accepted after the last scheduled day of classes. If there is some reason why you cannot complete an assignment on time (e.g., illness) you must obtain prior permission from the instructor to have your assignment graded at a later time without penalty.

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.

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 If you have any questions about what is and is not allowable in this class, please ask the course instructor.

Strategic Objectives & Consultation
Name of Department Chair
Mats Heimdahl
Strategic Objectives -
Curricular Objectives:
How does adding this course improve the overall curricular objectives ofthe unit?

It is a version if the existing CSci 1933 but for honors students.
Strategic Objectives - Core
Does the unit consider this course to be part of its core curriculum?

It is a course honors students can take to fulfill a CS degree requirement.
Strategic Objectives -
Consultation with Other
In order to prevent course overlap and to inform other departments of new curriculum, circulate the proposed syllabus to chairs in relevant units and copy the undergraduate associate dean(s) affiliated with those units. By consultation with other units, the information about a new course is more widely disseminated and can have a positive impact on enrollments. Include all correspondence here, to be used during CCC review. Please also make sure to send a Word or PDF copy of the proposed syllabus to the CCC staff person informing them of the course and asking for any feedback from the faculty.

This course is a version of the existing CSci 1933 course, but for honors students. It is being created based on our department's discussions with the University Honors College.
Back to Proposal List