Uni Graz logo

CMS 1 + 2

Syllabus, Fall 2023

Gerald Senarclens de Grancy <cms@senarclens.eu>

Instructor
Gerald Senarclens de Grancy
Office hours
on appointment
Contact
cms@senarclens.eu
Course calendar & location
http://find-santa.eu/calendar.xhtml
Course homepage
http://find-santa.eu/teaching/cms.php
Prerequisites
Formally: none
Solid understanding of computer software in general will facilitate the tasks.
Capability to read English documentation.
Knowing some basic HTML is helpful.
Administrative rights to a computer will offer you the full benefits of flextime.

"Textbooks"

Primary

Python Software Foundation The Python Tutorial http://docs.python.org/3/tutorial/index.html
Josh Cogliati et al. Non-Programmer's Tutorial for Python 3 https://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3
Cay Horstmann and Rance D. Necaise Python for Everyone John Wiley & Sons (2013)
David Griffiths and Paul Barry Head First Programming: A learner's guide to programming using the Python language O'Reilly Media (December 28, 2009)
Python Software Foundation Python Documentation http://docs.python.org/3/

Further Reading

Mark Pilgrim Dive Into Python 3 (2nd edition) Apress (October 23, 2009) [freely available online and as Android application]
Mark Summerfield Programming in Python 3 (2nd edition) Addison-Wesley Longman (November 12, 2009)

Course Content

Introduction to using computer programming to assist in information retrieval and managerial decision making.

Students will get to know a state of the art high level programming language that is easy to learn. To facilitate the process, some valuable tools to assist in the development will be presented.

The course uses a step by step approach. It starts with the most basic concepts while using interesting homework tasks to deepen their understanding. Computational Management Science 2 offers dedicated lab sessions to help with solving the homework tasks.

The intent is to make the course more fun than a "traditional" course that covers computer programming. You should learn to code what you want - not to code what you can code. The focus won't be programming language features, but how to get your work done in a programming language.
Short outline

Objectives

Upon completing the course students will

Whom this Course is for

Students who are willing to work hard...

Who should not attend this Course

Workflow

  1. Students do required reading before every CMS 1 class (readings are announced one week before they are due).
  2. During CMS 1 sessions, the content of the reading will be extended, discussed and your knowledge deepened. Reading the assigned chapters is absolutely required - otherwise there would be too much information to grasp.
  3. At the beginning of CMS 2 sessions, randomly selected students will present their homework and explain how it works.
  4. During CMS 2 sessions, you'll also get time to work on your assignments and ask related questions. However, you'll have to work on your assignments at home prior to these sessions to make them beneficial.

Assessment - CMS 1

Final Exam
Written
48 points
Term Project
  • 48 points
  • Source code has to be written in English to receive points.
  • The key purpose of this course is to teach you programming.
  • Programming is learned by writing programs. It is the best (only?) way to learn programming.
  • This assignment will be done in teams of your choice (2 to 4 students).
  • You can pick among different project proposals.
  • Term project grading scheme:
    25% specification
    40% properly working software (according to spec.)
    25% tests
    10% documentation (docstrings etc)
    up to 10% extra for outstanding projects
  • Announce teams and projects by December 2nd
Oral (Shared with CMS 2)
  • Approx. 15 minutes per student
  • Every student has to defend their term project to receive the points for them
Participation
  • Max. 1 point per class
  • Requires having worked through the assigned reading.
  • It is your responsibility to check at the end of each session whether you received a participation point. Later complaints will not be accepted.

Assessment - CMS 2

11 Homework Assignments
  • 99 points
  • Source code has to be written in English to receive points for an assignment.
  • The key purpose of this course is to teach you programming.
  • Programming is learned by writing programs. It is the best (only?) way to learn programming.
  • The first two assignments will be done alone. The rest will be worked out in varying, randomly assigned teams of two students (to allow the benefits of pair programming).
  • Max. 9 points per assignment.
Oral (Shared with CMS 1)
  • Approx. 15 minutes per student
  • Every student has to defend their homework assignments to receive the points for them
Participation
  • Max. 1 point per class
  • It is your responsibility to check at the end of each session whether you received a participation point. Later complaints will not be accepted.

Homework Assignments

Academic Honesty

Cheating and plagiarism will not be tolerated
Copying a single problem in a homework assignment will cause the whole assignment not to be counted. Repeated academic misconduct will lead to a negative grade.
However...

"Programming has an - unfair - reputation as a lonely activity. Most people work better and learn faster when they are part of a group with a common aim. Learning together and discussing problems with friends is not cheating! It is the most efficient - as well as most pleasant - way of making progress."


pg. xxvi, Bjarne Stroustrup, Programming: Principles and Practice Using C++, Addison Wesley, 2009

Grading

points grade
>90 1
80.5-90 2
65.5-80 3
50.5-65 4

The grade scale is shown in the table above. The grading curve may be lowered if necessary but it will not be raised. This means that if you received an 87% then you will at least get a 2, but may receive a higher grade based on the curve.

Questions
and feedback...