CS 310: Problem Solving for Engineers
Lecs 1 & 2, Spring 2017

Class Times:

  • Lecture 1: Tuesday, 11:00 am - 12:15 pm, 2241 Chamberlin
  • Lecture 2: Tuesday, 2:30 pm - 3:45 pm, 2241 Chamberlin

  • Team Lab 301: Thursday, 9:30 am - 10:45 am, 1370 CS
  • Team Lab 302: Thursday, 11:00 am - 12:15 pm, 1370 CS
  • Team Lab 303: Thursday, 1:00 pm - 2:15 pm, 1370 CS
  • Team Lab 304: Thursday, 2:30 pm - 3:45 pm, 1370 CS
  • Team Lab 305: Thursday, 4:00 pm - 5:15 pm, 1370 CS
  • Team Lab 306: Friday, 9:30 am - 10:45 am, 1370 CS
  • Team Lab 307: Friday, 11:00 am - 12:15 pm, 1370 CS


  • Beck Hasti
    5375 Computer Sciences, 263-2622, hasti (at) cs.wisc.edu
    Office Hours:
    • 10 am - noon Mondays
    • 12:30 - 1:30 pm Tuesdays
    • 2 - 3 pm Fridays
    • and by appointment


  • Aribhit Mishra
  • Artsiom (Artem) Hovarau
  • David Dosher
  • Kurtis Liu
  • Zi Wang

Course Announcements:

  • The CS 310 website is under construction for the spring 2017 semester.
  • There is no textbook for this course.
  • We will be using the Canvas Learning Management System. The Canvas website for CS 310 will be available by 9 am Tuesday, January 17 for enrolled students.
  • Labs will meet the first week of classes ( Thursday, January 19, and Friday, January 20)
  • Links to the on-line readings, team labs, and handouts from class can be found in the Modules of the Canvas site (which is only accessible to students registered in the class). Since it can take a while for everyone's registration status to get updated, here are links to the first week's materials:

    Here are the links to the second week's materials:

  • Notify Beck Hasti within the first two weeks of classes if:

    • you participate in religious observances that may conflict with course requirements.
    • you have a VISA from the McBurney Disabillity Resource Center.

Course Description:

CS 310 gives engineering 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.

NEEP 271 covers similar topics and is recommended for Nuclear Physics students. Students can not get credit for both CS 310 and NEEP 271.

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; see the Schedule below for more information.

Prereqs: One year of calculus (Math 221 and Math 222). Maximum benefit will accrue to students who take CS 310 early in their college careers. Students are expected to be able to draw upon information from prior (high school) math and science classes.

How the course works:

Students attend one lecture and one team lab each week.

There is no text book for CS310. Instead, we have created our own content and made it available online. The course materials (modules) are organized as follows:

  • Units contain one or more Modules
  • Modules contain one or more Lessons
  • Lessons contain a Topic Discussion, Examples, and Exercises

Students complete one module per week including the lessons, examples, and exercises for that module. After reading the Topic Discussion for each Lesson, complete the Examples and the Exercises for that lesson. See the links near the top right of the Lesson title.

Each week a student is expected to:

  • Read and take notes on each lesson.
  • Complete examples and exercises for each lesson.
  • Attend Lecture and take notes and ask questions.
  • Participate fully in Team Lab.
  • Complete work on any homework assigned for that week and submit according to the instructions.
  • Complete the online quiz and submit on or before its due date and time.

Course Grading:

Final letter grades are determined from the final cumulative score that is computed using the following breakdown:

  • 60% Exams :
    3 exams, 2 during the semester and one during the final exam period each worth 20% of your final grade
  • 15% Homeworks :
    6 homework assignments, accepted up to 24 hours late with 10% penalty
  • 12% Quizzes :
    13 quizzes, no make-ups, lowest score is dropped
  • 13% Team Lab Participation :
    14 team labs, no make-ups, lowest score is dropped

Letter grades are assigned at the end of the semester. The curve is determined after the final exam is completed. The median student's course grade is usually a low B.


Below is an overview of the weekly schedule of topics:

  1. Intro to CS 310 and MATLAB
  2. MATLAB basics (matrix creation, plotting), functions
  3. Linear systems
  4. Data fitting (interpolation, approximation)
  5. Advanced functions (function handles, anonymous functions)
  6. Sequential and iterative execution
  7. Conditional execution and code tracing
  8. Nesting and debugging
  9. Successive numeric approximation
  10. More programming practice
  11. Intro to Maple and symbolic computation
  12. Solving systems of equations, solving symbolically vs solving numerically
  13. Differentiaion and integration
  14. Symbolic solutions of ordinary differential equations
  15. Numeric solutions of ordinary differential equations
Last Updated: 1/24/2017     ©2017 Beck Hasti