nicharuc / courseware

Homework will be published on Fridays

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MSAN689 Problem solving with Python

This course is part of the MS in Analytics program at the University of San Francisco.

Administrivia

INSTRUCTOR. Laurynas Riliskis finished his Postdoc at Stanford University. He received his Ph.D. in Computer Science from Luleå University of technology in 2014.

SPATIAL COORDINATES:

  • Class is held at 101 Howard in 5th floor classroom 529.

TEMPORAL COORDINATES.

Friday 25th May - Friday 29th June.

  • Section 01: Fri 10-11:55 AM
  • Section 02: Fri 2:20-4:15PM
  • Quizzes joined 9:30 AM - 100 AM on Fridays rooms 154-156 starting June 1st.

INSTRUCTION FORMAT.
Class runs for 1:50 hours, 1 day/week. Instructor-student interaction during lecture is encouraged, and we will mix in mini-exercises / labs during class. All programming will be done in the Python 3 programming language unless otherwise specified.

TARDINESS.
Please be on time for class. It is a big distraction if you come in late.

ACADEMIC HONESTY.
You must abide by the copyright laws of the United States and academic honesty policies of USF. You may not copy code from other current or previous students. All suspicious activity will be investigated and, if warranted, passed to the Dean of Sciences for action. Copying answers or code from other students or sources during a quiz, exam, or for a project is a violation of the university’s honor code and will be treated as such. Plagiarism consists of copying material from any source and passing off that material as your own original work. Plagiarism is plagiarism: it does not matter if the source being copied is on the Internet, from a book or textbook, or from quizzes or problem sets written up by other students. Giving code or showing code to another student is also considered a violation.

The golden rule: You must never represent another person’s work as your own.

If you ever have questions about what constitutes plagiarism, cheating, or academic dishonesty in my course, please feel free to ask me.

Note:
Leaving your laptop unattended is a common means for another student to take your work. It is your responsibility to guard your work. Do not leave your printouts laying around or in the trash. All persons with common code are likely to be considered at fault.

ON DISABILITIES.
If you are a student with a disability or disabling condition, or if you think you may have a disability, please contact USF Student Disability Services (SDS) at 415/422-2613 within the first week of class, or immediately upon onset of the disability, to speak with a disability specialist. If you are determined eligible for reasonable accommodations, please meet with your disability specialist so they can arrange to have your accommodation letter sent to me, and we will discuss your needs for this course. For more information, please visit http://www.usfca.edu/sds/ or call 415/422-2613.

Student evaluation

Every Friday (expect the first one) you will have a quize that relates to previous lecture and your homework. Every Friday (expect the last one) homework will be published in this repository in its folder. Homeworks are due to start of the quize every Friday 9AM.

Five homeworks where you will have to solve harder problems, each worth 14 points => 70% of total grade. Five quizzes with questions about previous lecture and homework, each worth 6 points => 30% of total grade.

Grading standards.
An A grade to is above and beyond what most students have achieved. A B grade is an average grade for a student or what you could call "competence" in a business setting. A C grade means that you either did not or could not put forth the effort to achieve competence. Below C implies you did very little work or had great difficulty with the class compared to other students.

Syllabus

Students will be able to

  • Understand how to convert a word problem to Python code
  • Describe object-oriented programming and use objects to construct trees and graph data structures
  • Compare algorithmic complexity using “big-O” notation
  • Implement critical algorithms, such as searching and list merging
  • Implement linear algebra operations, such as matrix multiply
  • Manipulate strings to extract words and other essential elements

The course will have six lectures:

Lecture 1: Designing solution: readable code and OO

Solving a data science problems goes beyond the finding the answers. The critical companion to the answer is the clarity of the solution which includes well-documented code, readability of the implementation, and visibility of the of the solution design. The course starts with how to write a good solution: from the documentation to readable code and reusable solutions.

Lecture 2: Data structures and analyses

All digital artifacts are stored in some data structure, starting from primary arrays to trees and graphs. In this lecture, we will refresh your knowledge of data structures and their time and space complexities. We also will learn how to make complexity calculation practical and estimate algorithmic solution's runtime.

Lecture 3: Problem understanding and solving paradigms

With the toolbox from previous lectures, we are going to learn how to identify problem types and their respective solving paradigms.

Lecture 4: String and math problems

Specific focus on the string and mathematical problems and essential solution paradigms.

Lecture 5: Geometry and graph problems

Specific focus on the geometrical and graph problems and essential solution paradigms.

Lecture 6: Solving multi-faced problems

Final lecture we will summarize the core of identifying problem types and their solutions. Then we will address the multi-faced problems to and how to combine various solving techniques efficiently.

About

Homework will be published on Fridays


Languages

Language:Jupyter Notebook 97.6%Language:Python 2.4%