CSCI 1933 -- New Course

Wed Apr 24 13:26:28 2013

Approvals Received:
on 04-24-13
by Mary Freppert
 >  College/Dean
on 04-24-13
by Thomas Shield
Approvals Pending: Provost  > Catalog
Effective Status: Active
Effective Term: 1139 - Fall 2013
Course: CSCI 1933
UMNTC - Twin Cities
UMNTC - Twin Cities
Career: UGRD
College: TIOT - College of Science and Engineering
Department: 11108 - Computer Science & Eng
Course Title Short: Intro Algs & Data Str.
Course Title Long: 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 the Java language. Inheritance. Searching/sorting algorithms.  Basic algorithmic analysis.  Use of software development tools.  Weekly lab.
Print in Catalog?: Yes
CCE Catalog
<no text provided>
Grading Basis: Stdnt Opt
Topics Course: No
Honors Course: No
Online Course: No
Contact Hours:
4.0 hours per week
Years most
frequently offered:
Every academic year
Term(s) most
frequently offered:
Fall, Spring, Summer
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:
1133 or #.
No course equivalencies
No required consent
(course-based or
No prerequisites
Editor Comments: <no text provided>
Proposal Changes: <no text provided>
History Information: <no text provided>
Sponsor Name:
Maria Gini
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 1933 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>
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.)

Sample Syllabus

Class Format

4 credits, 3 hour long lectures + 2 lab hours per week. The lab is used for programming and more in-depth discussion of topics and examples given in class. Since one of the emphases of the class is on developing students' problem solving skills, the practice given in the lab will be highly valuable for many students.

CSci 1933 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 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.

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 builds fundamental problem solving and programming skills, and prepares students for learning the more complex Java language.

Classes Having 1933 as a Prerequisite and Rationale

These include CSci 2021 and 2041 which in turn are prerequisites for many other classes.  1933 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.

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

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
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>