Review Course Structure, Objectives, and Requirements

Thomas J. Kennedy

Contents:

While the syllabus is a bit of a dry read (as all syllabi tend to be)… a few sections are particularly important during the first week of class.

1 Course Learning Objectives

Make sure that you have reviewed the syllabus, specifically section 2.4 (Objectives).

The overall goal of this course is to prepare students to write, design, refactor, and test code in Python at a level comparable to a student completing a 200-level programming course in C++ (CS250), Java (CS 251), or Python (CS 253) in preperation for 300-level and 400-level coursework.

A student who successfully completes this course will be able to (in Python):

  1. Run a program consisting of a single file and containing a main function.
  2. Run a program consisting of multiple modules and containing a main function.
  3. Organize code into multiple modules.
  4. Write tests for a module.
  5. Apply the basics of test-driven development through PyTest and/or unittest.
  6. Make use of the various loops (for and while)
    1. Compare the various loops (for and while)
    2. Choose the most appropriate loop (for or while) for a given problem
  7. Make use of the conditional blocks (i.e., if, if-else, and if-else-if-else).
    1. Compare the various conditional blocks (i.e., if, if-else, and if-else-if-else)
    2. Construct the appropriate conditional block (i.e., if, if-else, and if-else-if-else) for a given problem.
  8. Test and write functions.
  9. Design ADTs in accordance with the Class Checklist.
  10. Discuss when polymorphism is appropriate.
  11. Discuss when it is appropriate to utilize dataclasses, classes, and enums.
  12. Write code that utilizes dunder functions.
  13. Refactor code to follow best practices (e.g., PEP 8 and PEP 20).
  14. Apply code linting tools (e.g., pylint and black) to write idiomatic (Pythonic) code.
  15. Discuss the various NumPy np.array mechanics (e.g., broadcasting).

2 Textbooks and Supplemental Materials

Make sure that you have reviewed the syllabus, specifically section 2.1 (Textbooks)…

There is no required textbook.

and section 2.2 (Supplemental Materials)…

All supplemental resources and materials will be available in Canvas

3 Technology Requirements

Make sure that you have reviewed the syllabus, specifically section 2.3 (Technology Requirements) and all subsections therein.

3.1 Computer Accounts

Make sure that you have reviewed the syllabus, specifically section 2.3.1 (Computer Accounts).

Students will need an account on the CS Dept. Unix network to participate in this class. This account is unrelated to any University-wide account you may have from the ODU’s Information Technology Services (ITS).

If you have had a CS Unix account in the recent past, you should find it still active with your login name, password, and files unchanged. If you have had an account and it has not been restored, contact the CS Dept systems staff at root@cs.odu.edu requesting that it be restored.

If you do not yet have such an account, go to the CS Dept. home page and look for “Account Creation” under “Online Services”. All students in this course are responsible for making sure they have a working CS Unix account prior to the first assignment.

3.2 Compilers & Interpreters

Make sure that you have reviewed the syllabus, specifically section 2.3.2 (Compilers and Interpreters).

The “official” environment in which students’ programming assignments will be evaluated is defined by our Dept. Linux servers. It is the student’s responsibility to be sure that their code compiles and executes using the compilers and run-time environment provided there. As of this writing, the compiler versions used are

  • C++: g++ 9.3.0
  • Java: 11.0.12
  • Python: 3.11

4 Vendor Accesibility Statements