Mike Ryu

    BMS Software Engineering & Computer Science

    CPE 101: Fundamentals of Computer Science

    Acknowledgement This course syllabus was originally developed by Professor Paul Hatalsky at Cal Poly San Luis Obispo.

    Course Information (Winter 2018)

    Course Objectives

    • Understand the basic principles of algorithmic problem solving.
    • Apply top-down design, stepwise refinement, and procedural abstraction.
    • Use basic control constructs and data types to solve problems.
    • Lastly, exposure to the Python programming language.


    • Reading – The schedule outlines the order in which topics will be covered in lecture and the associated chapters/sections in the textbook that you should read. The lectures may not cover all of the material in the assigned reading, but such material may appear in labs, programming assignments, and exams.
    • Class Participation – The lectures are for your benefit. You should ask questions when you have them. I am more than happy to answer any questions that you may have relating to the course material. Important: I will not repeat lectures that you have missed in my office hours. You are responsible for getting notes from other students. 
      • There is also a 5% "Paritipation" portion of the course grade. This grade will be determined based on some small participation assignments (they should be easy to earn 100% on) and your continued participation in class activities throughout the quarter.
    • Office Hours – Office hours are for your benefit. I am more than happy to answer any course related questions or to help with any programming issues you may have.
    • Labs – There are currently ten planned lab assignments. Each lab assignment must be demonstrated in lab by the end of the week (unless an alternate date is specified). You are allowed and encouraged to work together on lab assignments. Once you have completed the lab assignment, you are encouraged to use the remaining lab time to work on your programming assignments. Understand that programming assignments must be done alone and not in collaboration with any lab partners.
    • Projects – There will be six programming assignments. These assignments are intended to be of greater length and complexity than the lab assignments. Projects must be completed individually. Collaboration on projects is not permitted.
    • Written Exams – There will be two midterm exams and one final exam. The exams will cover concepts presented in lecture and material based on the labs and programming assignments. The exams will be closed book and closed notes.

    Course Grading

    Grade Breakdown

    Category Provisional Weight (weight per item)
    Labs 10% (1.1% per lab) ★
    Projects 30% (4-6% per project)
    Midterms 30% (15% per midterm)
    Final Exam 25%
    Participation 5%

    ★ All lab assignments MUST BE SUBMITTED by the end of the quarter.
        Failure to meet this requirement limits your best possible grade to a C.

    The weight for each component may be changed from the provisional weight by up to 15%. The final course grade assigned at the end of the quarter will be curved, but no indivudual grade item (i.e. exams) will be.

    Retain Grade Records

    In order to help protect against the possibility of clerical error, students are advised to retain copies of course work until after they have seen their final grade for the course. The instructor will retain course work until the last day of the next quarter.

    Final Letter Grade Assignment

    Letter Grade Final Percentage Grade
    A 89.95% or higher
    B 79.95% or higher
    C 69.95% or higher
    D 59.95% or higher
    F below 59.95%

    Curve will be applied if necessary at the end of the quarter. Letter grades with +/- designation are not used for this course.

    Due Date and Lateness

    Programming assignments will be submitted electronically using handin. Except in the most extreme situations, late assignments will not be accepted for full credit. We use an electronic submission program that will shutoff at midnight on the due date for the project. You will not be allowed to handin even one minute or second late!

    At a minimum, programming assignments must "run clean" to be considered for grading. That is, your submission must run completely without causing an error or exceptions to be raised (we'll learn more about how to handle these later). If a submitted program does not run clean, you will receive a zero for that assignment.

    • Submitting a Project Late You may submit a program within 48 hours of the original due date for 50% credit. A different handin folder will be open for late submissions.
    • Submitting a Lab Late There are no late lab submissions. Demo what you have on the day it is due.

    Missed Exams

    Make-up or early exams will not be given except in the most extreme situations. If you must miss an exam due to extreme illness, etc., contact the instructor immediately.

    Collaboration and Honor Code

    For each project (not lab) that you submit, the following statements must be true.

    • You wrote each line of code in your submission (excluding any code that the instructor has explicitly allowed you to use).
    • Your submission is not a duplication (in any part) of another student’s submission.
    • Your submission is not a copy (in any part) of a single solution developed as part of a collaborative effort.
    • You did not copy code from another source (student or otherwise).
    • You did not provide your code to another student.
    • You did not look at another student’s code.
    • You are able to answer detailed questions about each part of your submission.

    If you do not agree to these rules, then you need to drop the course. Continued enrollment in the course is implicit agreement to adhere to these rules. Submissions will be compared using software that can reliably detect similarities among programs.

    What is allowed?

    • Discussion of general programming techniques.
    • Discussion of algorithms and data structures required by the assignment description
    • To avoid a slippery slope… just do not talk to each other about projects!

    What if I break the rules?

    If solutions are found to match (completely, or in part), all of the students involved will receive an F in the course and be reported to academic affairs.

    Related Content