Link Search Menu Expand Document

CS 1340 - Intro to CS and DS in Python

Fall 2020 - SMUFlex Version

Overview

This class introduces programming concepts using Python and its applications in computer science and data science. It is appropriate for anyone who is interested in using programming language to solve real world problems, especially data science problems. Python is a great option for a first programming language, and we are going to cover some very common libraries as well, including numpy, pandas, scikit-learn for data analysis.

Instructor Info

Course Info

Lecture:

  • Tu Th 3:30 - 4:45 - Fondren 123

Where to Find Info

What Where
Course Management Canvas
Course Info GitHub
Course Webpage markfontenot.net

Catalog Description

Introduction to computer concepts, program structures, object-oriented programming, and interactive application development. Extensive programming projects emphasizing logical control structures and the use of libraries.

Prerequisite

No Pre-requisite for CS 1340

Textbooks

Required

We’ll be using ZyBooks this semester. ZyBooks is an interactive, web-based ‘textbook’. The cost of the book is $77US.

Here’s how to sign up and get access to the book:

  1. Sign in or create an account at learn.zybooks.com
  2. Enter zyBook code: SMUCS1340FontenotFall2020
  3. Subscribe.

Optional

Eric Matthes. Python Crash Course: A Hands-On, Project-Based Introduction to Programming, 2nd Edition. No Starch Press, 2019, ISBN-10: 1-59327-928-0

Learning Outcomes

  1. Understand the basic concepts of the Python Programming Language
  2. Learn basic data structures and algorithms associated with beginning programming
  3. Debug code
  4. Read from and write to files
  5. Create programs for EDA in Python.

Method of Evaluation

The final course grade in CSE 1340 will be based on the performance of various deliverables such as implementation projects and homework assignments. Additionally, your attendance and active participation in lecture and lab will be reflected in your final grade. The percentage breakdown is as follows:

Tool Percentage
Homeworks and Quizzes 25%
Programming Projects 35%
Final Project 15%
Final Exam 15%
Attendance & Participation 10%

The Final Exam may be administered as an oral comprehensive exam that takes the form of a mock technical interview related to the course content.

The due dates for all assignments will be explicitly stated on each assignment and will be available on the course website. Final grades in this course are determined as follows:

       
A 94 - 100 : A 90 - 93 : A-  
B 87 - 89 : B+ 83 - 86 : B 80 - 82 : B-
C 77 - 79 : C+ 73 - 76 : C 70 - 72 : C-
D 67 - 69 : D+ 63 - 66 : D 60 - 62: D-
F Below 60%    

Homework Assignments and Quizzes

Homework assignments are assigned throughout the semester. Quizzes may be announced or unannounced.
All homework assignments will be available on the course website. Each will clearly state the due date and method of submission. Homework assignments will also include completion of various activities in ZyBooks.

Programming Projects

Nearly every week, you’ll be working on some aspect of a programming assignment in and out of your lab period. You will not be able to finish an entire assignment during lab time; if you do, you should question whether or not you actually fulfilled the requirements. Further, your lab period is not the time to start your work for the week. You should work on your assignments before lab and use lab as time to get clarifications and explanations as needed from the TAs. Each lab packet will clearly state the due dates for each of the deliverables.

Rather than penalize late submissions, you will be rewarded for early submissions. Programming projects (except for the final semester project) will be eligible for 10% extra credit for submitting the project at least 48 hours early. Recognizing that sometimes things happen at the last minute that are beyond our control, each student will get one (1) two-day (2-day) “free” extension - no questions asked. This means you can submit this one project (except for the final semester project) up to 48 hours late.

If/when you want to use your one extension, send an email to Dr. Fontenot. The email should include your:

  • Name,
  • ID Number, and
  • on which project you’re asking for an extension.

All projects will be reviewed, evaluated, and graded using the programming environment detailed by the course staff. Your submission must conform to the specifications in each project handout. Each submission is required to use the specified build system to compile and run your projects. The specifics for this will be covered in a separate handout.

Project submissions that do not build/compile using the above stated build system and that stated in associated course handouts including any modifications to the build system as stated in each individual project handout will receive no credit. No matter how much time you spend writing code, if it doesn’t build/compile, you will receive NO credit.

We will use GitHub throughout the semester as a code versioning and backup tool as well as the platform for final submissions. If used as instructed (and as GitHub is intended), you will always have a safe and secure backup of your source code. Therefore, I will entertain no excuses related to computer hardware failure for not submitting projects or assignments on time.

Communication, Attendance, and Grading

Because of the nature of this class, attendance and participation in lecture and lab are very important. I expect you to attend all classes and lab sessions. If you are absent from class, it is your responsibility to make arrangements with me to make up any work missed or to ensure that assignments are submitted on time or early. Except as stated above in Programming Projects section, no late work will be accepted. Any assignments that will be missed (including those due to university-sanctioned events) must be completed before the due date. This includes projects, exams, and homework assignments.

Note that a portion of the semester grade is based upon class attendance and active participation. This attendance score will be determined based on attendance and active participation in both lecture and lab. Attendance in lecture will be randomly taken. Lab attendance will be taken weekly. After three missed lab or lecture classes, one percentage point will be deducted from your final course average for each missed class or lab missed up to the max listed in the table above.

Any issues with grades assigned on projects, homework, quizzes, exams or any other graded materials must be brought to Dr. Fontenot’s attention within 48 hours of the grades being posted on Canvas, or they will not be entertained. This should be done via email.

A college course is taught by a professor and attended by a student. So, the educational engagement is between the two of us, and informed by the course staff of graduate and undergraduate teaching assistants. This educational engagement does not include your parents, guardians, or others in any way. Therefore, I will only be communicating with you. I will not be communicating with your parents or guardians in any way, regardless of the presence of a FERPA release that you have issued.

Outside Work

This course will require a substantial amount of work outside of class. The best way to learn this material is to sit down, get comfortable, and just do it. There will be several programming assignments and projects that will require a great deal of time. Some of these projects may be collaborative in nature. It is reasonable to expect that you may spend 10 or more hours per week outside of lecture/lab working on programming projects for this class.

Here are some soft-skills that we hope to help you hone over the course of the semester:

  • Time Management (i.e. not waiting until the last minute to begin work on projects and assignments)
  • Work smart by using your time wisely and using tools related to the course material effectively
  • Large-scale problem solving (i.e. planning and designing before coding)

Academic Ethics and Collaboration

I take academic ethics very seriously. Each of you should have read the SMU Honor Code by this point in your academic career at SMU. What you submit for any course deliverable must be your own intellectual work product, except where collaboration with other students is explicitly allowed, and you must be able to defend any of the work submitted (ie. explain it in sufficient detail). The metadata associated with your work product (file timestamps, commit logs from GitHub, etc.) are also part of your work and will be treated as such. Any modification of these metadata done to intentionally mislead one of the course staff members will be treated as a cheating offense.

You are expected to create, edit and print your own assignments and take tests without outside assistance. All work is expected to be your own. In particular:

  • You should never look at or review another person’s work for any given assignment. This includes looking at papers, solutions, or computer screens where another student’s work is displayed. This also includes solutions from previous semesters.
  • You should never give or receive solutions/answers to any questions or projects or any parts or questions or projects. This includes but is not limited to source code, design documents, homework, etc.
  • In the header comments of your source code, you must reference online sources you consulted to complete the project. This is especially important if you’ve “quoted” source code.

If you collaborate on any assignment for any reason unless specifically permitted by the instructor, you will receive an F in the course and may be brought in front of the SMU Honor Council. The presumption should be that collaboration is not permitted and collaboration should only take place subsequent to explicit instructions by the course instructor. It is your responsibility to know and understand the University’s Honor Code and the expectations for collaboration in this course. Dr. Fontenot reserves the right to impose less severe penalties at his sole discretion.

Words of wisdom: The penalty for academic dishonesty will always be more severe than simply not submitting the assignment. Not turning in an assignment will result in a zero on that assignment. Engaging in academic dishonesty related to that assignment will likely result in an F in the entire course and/or referral to the honor council.

So, what is explicitly permissible? I will be the first to agree that sometimes we learn better when we are talking through things. When a project is assigned, you are certainly allowed to ‘whiteboard’ design ideas, high level plans, etc. But they should never get to the level of code. If you have questions about what is allowed or not allowed, please just ask Dr. Fontenot

SMU Policies

Disability Accommodations

Students needing academic accommodations for a disability must first register with Disability Accommodations & Success Strategies (DASS). Students can call 214-768-1470 or visit the DASS Website to begin the process. Once approved and registered, students will submit a DASS Accommodation Letter to faculty through the electronic portal DASS Link and then communicate directly with each instructor to make appropriate arrangements. Please note that accommodations are not retroactive and require advance notice to implement.

Religious Observance

Religiously observant students wishing to be absent on holidays that require missing class should notify their professors in writing at the beginning of the semester, and should discuss with them, in advance, acceptable ways of making up any work missed because of the absence. (https://www.smu.edu/StudentAffairs/Chaplain/ReligiousHolidays).

Excused Absences for University Extracurricular Activities

Students participating in an officially sanctioned, scheduled University extracurricular activity should be given the opportunity to make up class assignments or other graded assignments missed as a result of their participation. It is the responsibility of the student to make arrangements with the instructor prior to any missed scheduled examination or other missed assignment for making up the work. (See 2020-2021 SMU Undergraduate Catalog under “Enrollment and Academic Records/Excused Absences.”)

Pregnant and Parenting Students

Accommodations for pregnant and parenting students: Under Title IX students who are pregnant or parenting may request academic adjustments by contacting Elsie Johnson (elsiej@smu.edu) in the Office of the Dean of Students, or by calling 214-768-4564. Students seeking assistance must schedule an appointment with their professors as early as possible, present a letter from the Office of the Dean of Students, and make appropriate arrangements. Please note that academic adjustments are not retroactive and, when feasible, require advance notice to implement.

Covid-19 Attendance Policy

Students who are experiencing COVID-19 symptoms or who have been notified through contact tracing of potential exposure and need to self-quarantine or isolate must follow the protocols laid out in SMU’s Contact Tracing Protocol. To ensure academic continuity, students in these situations will not be penalized and will be provided appropriate modifications to assignments, deadlines, and testing. Please also note that SMUFlex classes might, in rare circumstances, go remote for two-week periods to accommodate COVID-related issues. To ensure these necessary accommodations, affected students must:

  • Provide as much advance notification as possible to the instructor about a change in circumstances. Students must notify their instructor about a potential absence as well as plans for a return to class. For cases in which students test positive for COVID-19, they should fill out a CCC form at this link.
  • Communicate promptly with the instructor to establish, as necessary, alternative assignments and/or changes to deadlines and exams. Students are then responsible for meeting the expectations laid out in these alternative arrangements.
  • Continue participation in class via Zoom, as health circumstances permit. Attend class regularly, when not in a situation outlined above, in accordance with safety measures laid out by SMU CAN in the Pledge to Protect (including wearing masks, maintaining social distancing, and cleaning personal space after class). In-person participation in SMUFlex classes is required on students’ assigned red/blue rotation days except in cases when students are experiencing illness, are in self-quarantine or in isolation.
  • Students facing multiple or extended COVID-19-related absences or illness can work with the Office of the Dean of Students to consider options such as fully remote learning or medical withdrawal.

Conduct Expectations

Students shall observe the following:

  • If attending class Virtually (over Zoom), it is expected that you will have your camera on. Please observe general best practices when attending virtually as well such as reasonable dress, etc.
  • Using a laptop in class is a privilege; it is not a right. When laptops distract your or other students in the class you will no longer be allowed to use them. I reserve the right to ask to see your screen and class notes taken during class to determine if you are using your laptop appropriately.
  • Cell phones should be in vibrate/silent mode at all times during lecture. If your cell phone does not have this feature, then it should be turned off. DO NOT answer your cell phone during class.
  • Sending text messages, surfing the Internet, playing games, reading the newspaper, etc. is considered disrespectful and will be dealt with accordingly. You are not only disrespecting the instructor, you’re also distracting students around you whether you think so or not.
  • Students should remain quiet during lecture so as to avoid disturbing other students.
  • Yawning out loud is disrespectful!

Table of contents