CS 310: Problem Solving Using Computers (Spring 2020)

Lecture 1: B130 Van Vleck, Tues: 9:30 - 10:45 am

Lecture 2: 168 Noland, Tues: 2:30 - 3:45 pm

Team Labs 301 - 307: 1370 CS, Thur & Fri

Instructor: Beck Hasti, hasti@cs.wisc.edu
5375 CS, 263-2622
Office Hours: 11:30 am - 12:30 pm Tuesdays
10:30 - 11:30 am Wednesdays
1 - 3 pm Fridays
and by appointment
TAs: Mehmet Demirel, Samuel Jackson, Diwanshu Jain, Vinay Patil, and Wen Xu

URLs canvas.wisc.edu
piazza.com/wisc/spring2020/compsci310
learn.zybooks.com
pages.cs.wisc.edu/~cs310-1

Course Description CS 310 gives students an introduction to programming and developing analytical skills to use in their subsequent course work and professional development. It presents several techniques using computers to solve problems, including the use of symbolic manipulation languages and elementary programming techniques. Techniques are illustrated using sample problems drawn from elementary engineering. Emphasis is on introduction of algorithms with the use of specific tools to illustrate the techniques.
Prerequisites One year of calculus (Math 221 and Math 222). Students are expected to be able to draw upon information from prior (high school) math and science classes.
Learning Objectives
  • Be able to solve a variety of introductory engineering and computer science problems using the techniques presented in the course.
  • Be able to express all solution steps in clear and concise formal professional quality documents.
  • Learn to work effectively within a small group.

This course focuses on problem-based learning. A variety of medium to complex problem types that require multiple-step solutions are presented. Students are expected to use prior math and science and their first and second semester calculus skills to develop solution algorithms for the problem and then implement and present each of those steps as part of a complete solution in the target language or environment.

Students are expected to practice problem solving techniques individually and in small groups to ensure their understanding and ability to apply the solution techniques presented to the given problem and to other similar problems. Students must demonstrate their knowledge and skills by solving problems during lecture, labs, and quizzes and by completing graded homework assignments and written examinations.


Course Content The material comes from many sources: lecture, on-line readings, zyBook e-text, course web site, Piazza discussions. The on-line readings are available on the Canvas site for this course. Instructions for registering for the course zyBook are available in the Getting Started section of pages.cs.wisc.edu/~cs310-1.

Hardware and Software The course is taught on the Windows machines in 1370 CS. The current software used is MATLAB and Maple.
Any workstation with MATLAB and Maple may be used to complete the work.

Course Work Grades are determined using the following breakdown:
  • Exams : 60%
    • Exam 1 (20%): Monday, March 2nd, 7:15 pm to 9:15 pm
    • Exam 2 (20%): Monday, April 6th, 7:15 pm to 9:15 pm
    • Exam 3 (20%): Sunday, May 3rd, 12:25 pm to 2:25 pm
  • Homework Assignments : 10% (6 assignments, accepted up to 24 hours late with 10% penalty)
  • Quizzes : 12% (13 quizzes, no make-ups, lowest score is dropped)
  • Team Lab Participation : 13% (14 team labs, no make-ups, lowest score is dropped)
  • zyBook Activities : 5% (participation and challenge activities from the zyBook e-text)
Collaboration Policy There is no collaboration allowed on homework assignments or quizzes in this course. All homework assignments and quizzes must be completed individually.

Students must not research solutions that others have written; they must write their own code and draft their own solution algorithms. Viewing anyone else's solution (past or present) or allowing another student to view your homework solution work is academic misconduct. Students must not view or use code written by anyone other than themselves (unless it is provided to all students by the instructor). If you have a need to cite references to code you have viewed or found, you are committing academic misconduct in this course. Violations of the collaboration policy will result in a zero on the assignment and potentially other penalties if University Academic Misconduct rules are violated.


Topics numeric computation vs symbolic computation, linear systems, data interpolation and approximation, programmed solutions to complex problems, successive numeric approximation algorithms, min/max problems, volume of revolution problems, introduction to ordinary differential equations

Please see the course website for details about which topics are covered in which weeks of the semester.


Reminders
  • Notify the instructor within the first three weeks of classes if you have a conflict with any of the exams by completing the CS 310 Alternate Exam Request Form (available on the course website).
  • Notify the instructor within the first three weeks of classes if you participate in religious observances that may interfere with course requirements.
  • Please let the instructor know if you have any trouble accessing or using the technologies being used in this course (such as the lab computers, the course website, etc.).