Wed Jan 30 10:07:08 2013
Approvals Received: |
|
|
---|---|---|
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:
<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:
<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> |
|
Readme link.
Course Syllabus requirement section begins below
|
||
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. |
|
Readme link.
Strategic Objectives & Consultation section begins below
|
||
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> |
|