Course Syllabus (PDF Version)

  1. The mission of Concordia University, a university of the Lutheran Church - Missouri Synod, is to prepare students for thoughtful and informed living, for dedicated service to God and humanity, and for enlightened care of God's creation, all within the context of the Christian Gospel.
  2. CSC 30101 F11: Programming and Problem Solving
  3. Prerequisite: Pre-calculus (MAT 125) or equivalent.
  4. Three credit hours
  5. Contact hours per week/Time and Place of Meeting:

    6:30-7:50 p.m., Mondays and Wednesdays, Meyer Hall 221

    This is a three semester credit undergraduate course designed to have learning opportunities and activities totaling approximately 105 hours over the 15 weeks of the course (including finals week) - 40 hours in class (80 minutes/class x 2 times/week x 15 weeks) and 65 hours outside of class. This estimate is for the typical undergraduate student with the prerequisite math course. The designed activities may take more or less time depending on the person: we are all individuals. Here are some further estimates:

    ActivityUnitsHours/UnitSubtotal
    Class meetings30 Meetings1.3340
    Final Exam1 Exam22
    Homework Assignments7 Assignments428
    Reading Book Chapters14 Chapters2.535
    Total  105
  6. Instructor
    Name:Chris Kauffman
    Phone:612-396-4971
    Email:kauffman@cs.umn.edu
    Course Website:http://www.cs.umn.edu/~kauffman/csc301
  7. Office Hours: MW 6:00 p.m. - 6:30 p.m. and by appointment.

    You are strongly encouraged to contact me via e-mail with questions or make an appointment outside of scheduled meetings if you encounter difficulty. It's my job to help you learn.

  8. University Catalog Course Description: This course emphasizes structured programming and problem solving techniques as implemented in a high level language. Topics include input and output procedures, control structures and Boolean expressions, functions and procedures with parameters, recursion, looping techniques and data structures.
  9. Instructor's Course Description: The Department of Mathematics contributes to the Concordia community by encouraging recognition and understanding of math in the world around them. We offer the advanced math student an evolving blend of classical methods and modern technologies to prepare them for professional careers or graduate study. This course is the introduction for advanced math students to computer programming. Programming allows mathematics to be put into action to accomplish a variety of goals in business, research, and entertainment. We will study general programming concepts and apply our knowledge by developing Java programs. Java was chosen as it is a relatively simple language to learn, contains most features of modern languages, and skills learned there are highly transferable to other environments commonly used in industry. In addition many good Java tools are available for free allowing us to use good approximations of industrial tools for no cost.
  10. Instructional Objectives: With successful completion, the student will be able to:
    • Analyze simple problems and write an algorithm in pseudocode to compute a solution to the problem.
    • Convert simple algorithms into Java programs which can be compiled and run on a computing system.
    • Utilize the fundamental concepts of algorithms: variable assignment, function calls, conditionals, iteration, recursion, and input/output.
    • Understand the fundamental parts of programming systems: source code, compilers, interpreters, debuggers, IDEs, and executable programs.
    • Read documentation of pre-existing program libraries and incorporate them into a student's own programs.
    • Exploit abstraction and encapsulation in programs mainly through the use of object-oriented design.
  11. Teaching Procedures: The purpose of this course is to develop programming skills and to that end, I do not consider it cheating to talk to other students in the course about HW problems and informally describe how a problem may be solved. Demonstrations between students of the form “Hey, look at this code...” are encouraged. We will do many of such demos in lecture. However, collaboration on HW must end when it comes time to write down solutions: all deliverables (HW, quizzes, exams) must be your own work. No collaboration is allowed during quizzes or exams. Any instance of copying that is detected will result in a zero score for the work.

    The Internet can make it fairly easy to copy your way through a programming course as it contains a wealth of source code that can be pasted into your assignments. Directly copying programs from the Internet is prohibited as this defeats the purpose of programming exercises, to build skill. Also note that computers are very good at comparing text and there are many tools available to identify instances of copied programs. That said, it is fine to use Internet sources to deepen your understanding of the material so long as deliverables are your own work.

    Homework assignments will be submitted online via the course website for the convenience of students and instructor. This means the assignments must be in an electronic form such as a Word document or source code bundle (this is a computer course after all). We will go over online submission in the first week of class.

    Quizzes and exams will be done during a lecture meeting on paper and turned in during class.

  12. Attendance and tardiness policy: Lectures are designed to give you useful information on course material and assignments. However, all students are busy and will inevitably have some conflicts. No formal attendance will be taken and missing a lecture will not negatively impact grades (unless a quiz/exam is missed without permission). However, attendance and active participation in lectures will be quantified and improve a student's grade. See the Evaluation section on how this works.

    In the event you know you will be absent during a lecture in which an exam or quiz is to occur, notify me ahead of time to make arrangements. Generally this will mean taking the exam/quiz prior to the scheduled time. Refer to the course schedule for the dates of quizzes and exams.

    If you miss a delivery date (quiz, exam, or HW) without notifying me in advance, it is at my sole discretion on how to proceed. Compelling reasons for missing a delivery date include illness and family emergencies and will likely result in acceptance of late assignments penalty free and re-taking quizzes/exams. Notify me as soon as possible via e-mail (preferred) or phone if such cases arise. Uncompelling reasons for missing a delivery date will result in penalties or a zero score on the deliverable.

  13. Classroom atmosphere: We will spend much of our lecture time examining programs and discussing their behavior. You are strongly encouraged to ask questions and offer judgments about the topic of discussion. Inquiry during our meetings along with reflection and study of the textbook outside of class will maximize the knowledge you during the course. The class will frequently be called on to solve problems during lecture to demonstrate that concepts are becoming clear. If a you feel unsure while trying to solve a problem, you are always free to ask me for guidance which will be given freely.
  14. Required text and materials:
    • John Dean and Ray Dean. Introduction to Programming with Java: A Problem Solving Approach. McGraw-Hill, 2007. ISBN-10: 0073047023
    • University Laptop
    • Java programming environment (To be selected from amongst a number of free resources)
  15. Assessment: Students will be assessed on their completion of homework assignments, quizzes, a midterm exam, and a final exam.

    Homework assignments will be a combination of completing textbook exercises, solving problems posed by the instructor, and writing programs. Students will answer paragraph form questions in an electronic document form (such as Microsoft Word) and build programs in a source code editor. All homework assignments will be submitted online via the course website.

    Quizzes will take place during lecture meetings and take 15-20 minutes. They will comprise one to three questions that require reasoning about the course material, writing program fragments, or demonstration of how programs behave. The style of questions are meant to give feedback on your understanding of the current topics and prepare you for the two exams.

    The midterm will be held prior to Fall Break on 10/19 during the usual lecture time. Exam questions will require you to reason about algorithms and source code much as you do for quizzes. It will be comprised of written exercises based on material from chapters 1-8.

    The final exam will be held on either Monday 12/12 or Wednesday 12/14 as determined in the first week of class. It will last for 2 hours and be comprised of written exercises drawn from all topics covered in the course. The format will be similar to the midterm exam and quizzes.

    ComponentUnit WeightTotal Weight
    7 Homework Assignments8%56%
    4 Quizzes4%16%
    1 Midterm Exam10%10%
    1 Final Exam18%18%

    Bonus credit will be awarded based on participation in class discussions. I will randomly select names from the class roster during class to assist me with solving problems and concept demonstration. Students present that exhibit honest effort and attention are awarded a point. Occasionally extra credit problems will be assigned to be done outside of class. These will count towards the participation score. The highest point winner at the end of the semester will receive a 3% bonus to their overall score in the course. All other students will receive a bonus proportional to the highest point winner. For example, someone tied with the highest point winner will also receive a 3% bonus while someone with half the participation points will receive a 1.5% bonus.

    Final grades will be assigned according to the following distribution. Adjustments may be made in extenuating circumstances according to my judgment of the situation.

    PercentGradePercentGrade
    100-95A74-70C+
    94-90A-69-65C
    89-85B+64-60C-
    84-80B59-55D+
    79-75B-54-50D
      50-0F
  16. Student Support Services: I strongly encourage you to discuss your course progress or concerns with me. If additional help would be beneficial, I will encourage you to arrange for tutoring through Tutoring Services (Wendy Vargas, vargas@csp.edu ). If you have a disability that will require special accommodations, you need to contact Disability Services (disabilityservices@csp.edu) to arrange the necessary academic accommodations and provide me with the Accommodation Plan (VISA). The Disability Services office is located in the tunnel in LU124 or 115. If you find that personal problems are interfering with your ability to concentrate or troubling you beyond the point where friends and family can be helpful, please take advantage of Concordia's counseling services, which are free, safe, and confidential. Visit DH310, or call 641-8252 to make an appointment, or visit with the University Chaplain, Pastor Todd Stocker (stocker@csp.edu), 651-641-8213.
  17. Course Outline: The schedule below is tentative and will be updated as we progress through the course. Check the website (item 6) for the most up-to-date version.
    WeekDateTextbookTopicDeliverable
    108-29 Mon1Computing systems, java set-up 
     08-31 Wed2.1-7Pseudocode and Algorithms 
    209-05 Mon Labor Day - No class 
     09-07 Wed2.8-13Pseudocode conditionals/loops 
    309-12 Mon3.1-14Compile/run java programsHW1 Due
     09-14 Wed3.15-24More on simple java programs 
    409-19 Mon4.1-7Conditionals in java 
     09-21 Wed4.8-15Iteration in javaQuiz 1
    509-26 Mon5.1-4Pre-built methods, librariesHW2 Due
     09-28 Wed5.5-8More libraries 
    610-03 Mon6.1-6Encapsulation, OO Programming 
     10-05 Wed6.7-10Reasoning about objectsQuiz 2
    710-10 Mon6.11-13OO in practiceHW 3 Due
     10-12 Wed8Basic Software Engineering 
    810-17 Mon1-8Midterm ReviewHW 4 Due
     10-19 Wed Midterm ExamExam
    910-24 Mon7.1-5Details of OO in java 
     10-26 Wed7.6-10More details 
    1010-31 Mon9.1-9.4Class vs. Instance 
     11-02 Wed9.5-9.7Review of OO so far 
    1111-07 Mon10.1-10ArraysHW 5 Due
     11-09 Wed10.9-142D Arrays, Array Lists 
    1211-14 Mon12.1-6Inheritance basics 
     11-16 Wed12.7-11Inheritance detailsQuiz 3
    1311-21 Mon13Polymorphism, InterfacesHW 6 Due
     11-23 Wed Thanksgiving Break - No Class 
    1411-28 Mon14.1-8Errors and Exceptions 
     11-30 Wed14.9-13Handling errorsQuiz 4
    1512-05 MonAppendix 8RecursionHW 7 Due
     12-07 Wed16-17Beyond Java, Course Review 
    1612-12 Mon Final Exam 7-9 pmExam
     12-14 Wed Mon or Wed 

The views and opinions expressed in this page are strictly those of the page author.
The contents of this page have not been reviewed or approved by the University of Minnesota.