CSCI 1913 -- New Course

Wed Jan 30 10:07:08 2013

Approvals Received:
Department
on 01-29-13
by Mary Freppert
(freppert@umn.edu)
Approvals Pending: College/Dean  > Catalog
Effective Status: Active
Effective Term: 1139 - Fall 2013
Course: CSCI 1913
Institution:
Campus:
UMNTC - Twin Cities
UMNTC - Twin Cities
Career: UGRD
College: TIOT - College of Science and Engineering
Department: 11108 - Computer Science & Eng
General
Course Title Short: Intro to Algs. & Program Dev.
Course Title Long: Introduction to Algorithms, Data Structures, and Program Development
Max-Min Credits
for Course:
4.0 to 4.0 credit(s)
Catalog
Description:
Advanced object oriented programming to implement abstract data types(stacks, queues, linked lists, hash tables, binary trees) using the Java language.  Searching and sorting algorithms.  Basic algorithmic analysis. Introduction to scripting languages using the Python language.  Substantial programming projects, integral weekly lab.
Print in Catalog?: Yes
CCE Catalog
Description:
<no text provided>
Grading Basis: Stdnt Opt
Topics Course: No
Honors Course: No
Online Course: No
Instructor
Contact Hours:
5.0 hours per week
Years most
frequently offered:
Every academic year
Term(s) most
frequently offered:
Fall, Spring, Summer
Component 1: LAB (no final exam)
Component 2: LEC (with final exam)
Auto-Enroll
Course:
Yes
Graded
Component:
LAB
Academic
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
Course:
Repetition not allowed.
Course
Prerequisites
for Catalog:
CSci 1103 or CSci 1113 or #
Course
Equivalency:
No course equivalencies
Consent
Requirement:
No required consent
Enforced
Prerequisites:
(course-based or
non-course-based)
No prerequisites
Editor Comments: <no text provided>
Proposal Changes: <no text provided>
History Information: Jan 2013 - new course
Faculty
Sponsor Name:
Maria Gini
Faculty
Sponsor E-mail Address:
gini@cs.umn.edu
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 1913 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
Requirement
this course fulfills:
None
Other requirement
this course fulfills:
None
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
curriculum:
No
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 large class + 2 lab hours per week. The lab is used to design, write, and test programs on various subjects.

CSci 1913 is the second Computer Science class in the major. It is for students who have taken a college level course in C/C++ (CSci 1113) or in Java (Csci 1103), or have AP credits.  The course focuses on learning object-oriented concepts (class, object, method, inheritance) and abstract data types (stack, queue, binary tree, etc) using the Java language.  In addition the course introduces students to the use of modern debugging and software development tools, and to scripting languages using the Python language.

1913 is a required undergraduate course which students should take in their freshman or sophomore year. 1913 is one of the courses required for admission to the CSci major, and is a prerequisite for many of the higher level CSci classes.  

1913 teaches 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 development.

Specifically the class covers:
* Object-oriented design
 - Sorting and searching algorithms
 - Basic complexity analysis
* Definition of classes: fields, methods, and constructors
* Subclasses, inheritance, and method overriding
* Abstract data types and their implementation (stacks, queues, priority queues, linked lists, binary trees)
* Strategies for choosing the appropriate data structure
* Modern programming environments
 Programming using library components and their APIs
* Debugging strategies
* Documentation and program style

Upon successfully completing this class, students should be able to use abstract data types in solving a variety of problems, and be able to implement their solutions in an object oriented programming language. Specifically, students should be able to:
1. identify which abstract data type and/or algorithm could be useful in representing or solving a given problem, and why;
2. develop a functioning object oriented program in Java, and document its functionality in terms of the given problem.  
3. construct, execute and debug programs using a modern IDE and associated tools, such as unit testing tools and visual debuggers.
4. compare implmentations of a variety of searching and sorting algorithms with respect to complexity.  
5. apply a variety of strategies to the testing and debugging of programs.
6. apply consistent documentation and program style standards that contribute to the readability and maintainability of software.
7. modify or specialize abstract data types to adapt them to problems that are not amenable to straightforward use of the abstract data types;
8. compare alternative implementations of data structures with respect to performance;
9. develop applications requiring file I/O and use of libraries using a scripting language.

Weekly outline of material covered

Week 1:         Overview. Introduction to Java and to IDE.
Week 2:         Object oriented design.
Week 3:         Inheritance.
Week 4:         Linked lists. Stacks,
Week 5:         Queues.  Priority queues.
Week 6:         Binary search trees. Heaps.
Week 7:     Hash tables.
Week 8-9:         Searching and sorting algorithms.
Week 10-11:        Introduction to Python: syntax and data types
Week 12-13:        Object-oriented programming in Python
Week 14-15:        Abstract data types in Python.

Grading:

15% In-class Exercises
6% Quizzes
12% Midterm Exam 1
12% 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 1913 class web page in the directory http://www.cselabs.umn.edu/classes/

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

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 http://www-users.cs.umn.edu/~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.
Strategic Objectives & Consultation
Name of Department Chair
Approver:
<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
Curriculum:
Does the unit consider this course to be part of its core curriculum?

<no text provided>
Strategic Objectives -
Consultation with Other
Units:
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>