Course syllabus

Course-PM

EEN060 Applied object-oriented programming lp3 VT21 (7,5 hp)

Course offered by the Department of Electrical Engineering

Course language: English

Python version: For the entire course, Python 3.8 will be used as the official version. Software used to support the course are: Miniconda and PyCharm Professional Edition with a free educational license.

Course channel: The course maintains a channel on Chalmers Play where recorded lectures and labs will be uploaded. The channel also contains content from previous instances of the course is available. Note that there might occur changes in the course compared to previous instances.

Contact details

  • Teacher and course responsible
    • Carlos Natalino /  / Campus Johanneberg, EDIT building, room 6421.
    • Any issues/requests/comments related to the course can be sent preferably through messages in Canvas.
    • Office hours: You should book a slot here: Teacher office hours.
  • Teaching assistants
    • Ehsan Etezadi / ehsanet@chalmers.se / Campus Johanneberg, EDIT building, room 6418.
    • Lei Xue /  / Campus Johanneberg, EDIT building, room 6418.
    • Maryam Lashgari /  / Campus Johanneberg, EDIT building, room 6418.
    • Any doubts related to programming assignments, final project, or Python should be directed to the teacher or teaching assistants preferably during the computer labs.
  • Paolo Monti (Course Examiner)  / Campus Johanneberg, EDIT building, room 6416.
  • Student representatives
    • TKDES: Mårten Elfving, Johan Hodges Dexner
    • TIDSL: Linus Eriksson, Emilia Larsson

Cooperation between the groups is considered cheating and is subject to disciplinary actions.

Course purpose

The course aims at providing students with no previous experience sufficient programming skills to use Python for the back-end development of digital services.

Schedule

The schedule of the course is in TimeEdit.

Course literature

The literature is usually enriched with the material presented during the lectures and lecture notes. All references to chapters and sections in the book will also refer to free online material as well for those who choose not to buy the book. However, using the book is recommended for a complete reference.

  1. Book: Introducing Python: Modern Computing in Simple Packages, by Bill Lubanovic, 2nd edition, O’Reilly, 2020, ISBN: 978-1492051367.
  2. Python online documentation: https://docs.python.org/3.8/
  3. SQLAlchemy online documentation: https://docs.sqlalchemy.org/en/13/index.html
  4. Flask online documentation: http://flask.palletsprojects.com/en/1.1.x/#
  5. Jinja online documentation: https://jinja.palletsprojects.com/en/2.11.x/
  6. Requests online documentation: https://requests.readthedocs.io/en/master/
  7. JupyterLab online documentation: https://jupyterlab.readthedocs.io/en/stable/index.html
  8. PyCharm online documentation: https://www.jetbrains.com/pycharm/learning-center/
  9. YouTube Tutorial: Flask Tutorial by Corey Schafer on YouTube: Python Flask Tutorial: Full-Featured Web App Part 1 - Getting Started

We have a video in our course channel shows how to use PyCharm to follow the YouTube videos. Remember that our environment is called "een060". Access the video here: https://play.chalmers.se/media/TutorialA+How+to+use+PyCharm+to+follow+the+video+tutorial/0_80n8683u 

Course design

The course is designed with the following hour distribution among the activities:

  • Lectures: 28 h
  • Computer labs: 24 h
  • Self-study: 80 h
  • Final project: 50-60 h
  • Optional assignments: 30-40 h

Students should prepare for the lectures by reading the material associated with the lecture. The lectures are meant to explain and highlight important parts of the content, not as a replacement for the reading material.

Lectures and computer labs are not mandatory. Attendance will be monitored but does not count for your final grade.

Lectures

Lectures will be hosted through zoom following the course schedule. Links to the zoom meeting are available in the course modules page. The lectures will be recorded and posted 24-48 hours after the lecture on Chalmers Play and YouTube.

Students must prepare for each lecture by reading the associated literature under "preparation" in the table below.

Lecture Topics Preparation
1 Course overview and introduction to computer programming
  • Book:
    • Chapter 1.4 “Python in the real world”;
    • Chapter 1.5 “Python versus the language from planet X”;
    • Chapter 1.6 “Why Python?”;
    • Chapter 1.7 “Why not Python?”;
    • Chapter 1.9 “Installing Python”;
    • Chapter 9 “Functions”;
    • Chapter 19.4 “Integrated Development Environments”
    • Appendix B “Install Anaconda”.
  • Python online documentation:
2 Introduction, statements and variables
  • Book:
    • Chapter 2 “Data: types, values, variables and names”
    • Chapter 3 “Numbers”
    • Chapter 5 “Text strings”
    • Chapter 9 “Functions”
  • Python online documentation:
3 Conditional statements and loops
  • Book:
    • Chapter 4 “Choose with if”
    • Chapter 6 “Loop with while and for”
  • Python online documentation:
4 Data structures
  • Book:
    • Chapter 7 “Tuples and lists”
    • Chapter 8 “Dictionaries and sets”
  • Python online documentation:
5 Standard and external modules
6 Object-oriented programming
  • Book:
    • Chapter 10 “Oh oh: objects and classes”
  • Python online documentation:
7 Error handling, input and output 1/2
8 Input and output 2/2
9 Communicating with databases
10 Web services
11 Web pages
  • Book:
    • Chapter 18 “The Web, untangled”
  • Flask online documentation:
12 Integrating databases, web services and web pages
  • YouTube Tutorial: parts 1-8
13 Advanced topics for the development of digital services
  • Additional literature to be communicated before the lecture
14 Outlook
  • Book:
    • Chapter 19 “Be a Pythonista”
    • Chapters 20-22 (optional)
  • YouTube Tutorial: parts 9-15 (optional)
15 Project orientation and discussion
  • Additional literature to be communicated before the lecture

Computer labs

Computer labs are divided into two parts. The first part will have a brief introduction (in the form of few slides and/or solving a few examples) given by the teacher/teaching assistant about the topic of the lab, taking the first hour. Then, for the remaining hour, students are encouraged to solve the programming assignments and take questions to the teacher and TAs.

Since the course will be fully online, students are required to use their own computers with the appropriate software installed. Students are encouraged to follow installation, Quickstart, and user guides available on the tools' webpages.

General guidelines

  • Students must regularly check the Canvas course page. In particular, slides might be updated before and/or after classes. Assignments will be made available regularly after lectures.
  • Any issues/requests/comments related to the course can be directed to the course teacher (Carlos Natalino) through messages in Canvas.
  • Any doubts related to programming assignments, final project, or Python should be directed to the teacher or teaching assistants during the computer labs.

Programming assignments

For the first 10 lectures, there is a list of programming assignments to be solved and submitted through Canvas. There are also a number of computer assignments that students should record and submit.

  • Rules:
    • The assignment list can be downloaded from Canvas right after the corresponding lecture.
    • The assignment lists are in the form of a jupyter notebook, i.e., “.ipynb” file extension. The file contains the problems to be solved.
    • The problems should be solved in the same file and submitted back to Canvas.
  • Deadline: Students have around one week to submit the solved assignments to Canvas. The specific deadlines are available for each assignment.
  • Students can use up to four late dates, which gives you the opportunity to submit an assignment up to two weeks after the deadline.
  • Submitting on time (through Canvas) and having all the assignments approved will result in getting 13 bonus points (BP) to be used towards the final grade of the course. The points will be accounted for depending on the number of assignments, irrespective of their order, submitted and approved:
    • 1-7 assignments: 1 BP each
    • 8th: 1.5 BP
    • 9th: 2 BP
    • 10th: 2.5 BP

Final project

  • Project rules:
    • You are asked to form groups of two students.
    • Cooperation between the groups is considered cheating and is subject to disciplinary actions.
    • Each group should submit the documents required for the checkpoints described below.
    • The documents should be submitted through Canvas according to the appropriate assignment.
    • You can get feedback regarding your project during the second half of the computer labs.
  • In order to get a “PASS” score your project should:
    • Be a web application that allows users to manipulate data in a database.
    • Allow the user to execute the following basic operations: list, search, insert, edit, and delete.
    • Have in its database at least 4 tables to be manipulated by the web application with the basic operations described before.
    • If you use any additional external module, include a file with a list of the Python packages necessary for its correct execution (i.e., requirements.txt).
    • Include a script that initializes the database, i.e., inserts initial data that enables the project to be used and tested (i.e., load-database.py).
    • Have its main file named “run.py”.
    • Should not be a blog or a personal finances project.
  • Deadlines: the project will have checkpoints as follows.
    • Project group (deadline: February 5th)
      • Names of the two students of the group.
      • Submission in the form of an MS Word document.
    • “Project Idea” (deadline: February 19th)
      • Names of the two students of the group.
      • Title of the project.
      • Brief description of the types of users that will interact with the application.
      • Brief description of the data that the application should be able to handle and the workflow that the user should be able to execute.
      • A description of the classes modeling the data that will be manipulated.
      • Submission in the form of an MS Word document: final-project-template.docx 
    • "Running the example project" (deadline: February 19th)
      • Download and run the example project on your own computer.
      • Share your screen during one of our lab sessions.
    • “Project Proposal” (deadline: February 26th)
      • Should contain all the information included in the “Project Idea” submission, in addition to any necessary update.
      • Should include a description of the database (tables, columns and data types).
      • Submission in the form of an MS Word document: final-project-template.docx 
    • "Database execution of the final project" (deadline: March 5th)
      • Should contain the creation of the database and the insertion of a few rows for each table.
      • Submission in the form of a Python file named "loaddatabase.py"
    • “Final Project” (deadline: March 19th)
      • Should contain all the information included in the “Project Proposal” submission, in addition to any necessary update.
      • Should contain all the project files compressed in a zip file.
      • Optionally, the students can post their projects on GitHub under their repository.
      • Students can opt-in to allow the project to be used in the next instances of the course as an example.
      • Submission in the form of a zip file containing the project folder and the MS Word file with the project description.

Changes made since the last occasion

A summary of changes made since the last occasion will appear whenever changes are made.

2021-02-04: Student representatives were added.

Learning objectives and syllabus

Learning objectives:

After completing the course the student should be able to:

  • Solve independently basic programming tasks using Python.
  • Interpret and extend existing Python code.
  • Solve independently advanced programming tasks by using existing Python libraries.
  • Develop Python code that manipulates information stored in databases.
  • Develop digital services that use Python as their back-end.

Link to the syllabus on Studieportalen: Study plan.

Examination form

The examination consists of passing a written exam and completing the final project. In order to complete the course, a student needs to complete each one of these parts. The grading scale is: fail, 3, 4, 5.

  • The written exam takes place at the end of the course, according to the time schedule provided at the beginning of the course. The written exam includes multiple-choice and open-ended questions. Answering correctly to all the questions results in getting a written exam score (WES) of 100 points.
  • The final project has a binary outcome: P (pass) or F (fail). The requirements to get a pass grade are explained above. If the project is not turned in through Canvas by the deadline, then this part is considered as failed, and the student is invited to come back the next time the course is given and turn in the final project of that year.

Throughout the course, a number of programming assignments are associated with each lecture. Submitting on time (through Canvas) and having the assignments approved will result in getting up to 13 bonus point (BP) to be used towards the final grade of the course.

Once a student completes all these three parts the Final Grade (FG) of the course is computed as the sum of follows:

  • FG = WES + BP

The grading scale is the following:

  • > 89: 5
  • 75-89: 4
  • 55-74: 3
  • <55: Fail

Course summary:

Date Details Due