CSCI 1210 Computer Modeling and Science

Overview

An introduction to science, computer models and simulation, and computational science. Modeling concepts include abstraction and elaboration, identification of variables and parameters, implementation and error, data reduction and visualization (looking at charts and plots).

Specific Course Goals:

(1) Understand scientific methods,
(2) Understand computer modeling and simulation,
(3) Learn how to evaluate and analyze real world data using tools like Excel, and make conclusions from the data,
(4) Gather appropriate data (we will focus on public data available on the web)

We will kick this semester off by studying the real world scenarios depicted in Steven D. Levitt and Stephen J. Dubner's NY Times bestseller: "Freakonomics: A rogue economist explores the hidden side of everything" (http://www.freakonomics.com/), and later continue study scenarios in their follow on book "Superfreakonomics".

We will focus on the scientific methods described in these texts, evaluate and analyze data (inspired by the books), emulate and extend those methods using public available data or synthetic data (generate our own data) in other scenarios.

We will look at other type of "simulations" including gaming such as : winning strategies in monopoly (yes, indeeed - the popular board game), and the Benford's First Digit Law to discover patterns in data.

We will primarily use Excel to analyze data - prior knowledge of Excel is not assumed - we will learn how to use Excel, and create simulations in excel.

We will later utilize Python (elementary) programming later in the course (prior programming is not assumed), and you will be provided pre-programmed templates.

Topics will be covered either by lecture (in person or live-feed - zoom -if we convert to a hybrid class), reading or both.

Laptops are required. You are required to bring a laptop to class, and install the required development technology, i.e., Excel - you are responsible to make this frame work work. We will provide a tutorial to install a python framework later in the course, you will be provided python templates were you will make incremental moficiations.

We will occasionally do in-class activities, and you will display your results on your laptop.

Please ensure you have a laptop that supports the necessary technology (Excel, and later an installation of a python framework - pyCharm/Anacoda). Both of these framworks assume standard, modern, computer platforms.

Before class be sure your laptop is charged, and that you have working WiFI on your computer.

Logistics:

      Boyd Room 222
Date /Time: M, W 1:50-2:40 Lecture/Tutorials.
  F 1:50-2:40 Lab / Activity Day.
      Office Hourse (Subject to Change)
Instructor F 3:00-4:00 Maria Hybinette - Office Hours Friday after class (starting 2nd week of classes). Please let instructor know you are attending office hours.
       
Discussion Board     piazza (link)

Course Material & Textbook

The course material covered in class is primarily drawn from two popular press books:

(1) Freakonomics

(2) Super Freakonomics

(3) Excel: Latest version

The lectures are influenced by additional resources including: a volume of well known authors active in the Computational Science community.

 

Freakonomics Revised and Expanded Edition (an earlier edition is OK).

Steven Levitt
Stephen J. Dubner

ISBN-13: 978-0063032378
ISBN-10: 0063032376

(amazon link here) available immediately as an e-book (kindle).

Required (not free)

     
 

SuperFreakonomics: Global Cooling, Patriotic Prostitutes, and Why Suicide Bombers Should Buy Life Insurance

May 2011

Steven Levitt
Stephen J. Dubner

ISBN-13: 978-0060889586
ISBN-10: 0060889586

(amazon link here) available immediately as an e-book (kindle).

 

     

 

List of Technologies

General:

  • We will use our departmental server: odin.cs.uga.edu for testing and submitting programs (and homework)-- make sure you have access to odin (part of first HW, HW1), if there are issues with access to odin please contact support@cs.uga.edu.
  • We will use eLC for some homework.
  • We will use survey monkey for some activities.
  • We use Piazza, You must keep up to date with Piazza- we assume you check this every day.
  • We must ensure your laptop provdes reliable Internet access, not having Internet access is not an excuse in our class.
  • Screen Video - you will need to make a demo video of your projects & assignments, and submit a private link as port of your submission of projects and some assignments on piazza. For creative assignments we will solicit comment from your peers (classmates in our class).

If we convert to ZOOM - Live Feeds:

  • Computer or laptop with a working web camera. We assume you have admin access on your laptop to install software/platforms on your computer.
  • We must ensure you have reliable Internet access, not having Internet access is not an excuse in our class. Campus may be an option and it provides spots with reliable Internet access.

There may be modification of HW or projects on piazza - in this case these modification notes will be pinned posts.

---- below is in progress ---

Grading Policy and Evaluation:

You are evaluated on Online-quizzes, presentations and implementation of software projects. There will be a final project but no exams (midterm and final exam are replaced by projects). The distribution is below, but is subject to change.

NOTE: Syllabus & policies are solidified after 3rd week of class - but there still may be minor changes.

Participation

5%

Final Project: (take home project, required presentation during final exam period & code, report, and a demo video). Everyone must attend the full session to receive final exam credit.
15%

Exam 1

10%

Exam 2 (5% presentation, 5% in-class test)

10%
Weekly Summaries on Reading assignment or Video Assignment (starting around week X)
15%
Homework (includes in 10% in-person labs). Homework are typically an extension of the lab earlier in the week.
45%

 

The general grading philosophy is the following (the context is "programs" or "projects" or assignments and generalizesto summaries and to other required elements). See translation from percentage to letter grades finger grade in link further below.

A+ Extraordinary, goes beyond the minimum criteria both in depth and breath. Design is thorough and well thought out, code base and implementation is beautiful- modularized, complete, clear and concise. A well thought out debugging strategy is apparent. Well documented code. The evaluation plan is well executed and well thought out, goes beyond the simple cases and illustrates strong problem solving skills.

A Superior (somewhat less than an A+, almost perfect code, beautiful, concise, minimum criteria met, not as much depth and forethought as an A+ but it is superb), goes beyond meeting the minimum criteria demonstrates depth, can apply solution to a variation of similar problems.

B Good, minimum criteria well executed and well done, shows some depth and understanding, meets most test cases but does not demonstrate as much forethought as an A; [threshold].

C Fair, minimum criteria met, but could have been executed with more depth and forethought.

We will use the College Board's convention to convert from percent grades to letter grades grades:

(see here).

Late Policy

Assignments, and summaries (if applicable to this class) are due on the date and time specified in the assignment or the day of demonstration (email as a time stamp and hand-in hardcopy the next day). Late homework cannot be accepted). There are some exceptions with mitigating circumstances - please discuss these with instructor before due dates.

 

<---below is generic (but relevant) text from earlier course an may possibly be updated -->

<-- for excample, in section "weekly presentations" are not relevant to this class -->

Homework and Projects Posting

Projects and homework will be posted on the web from the scheduling page (see link top menu bar), and will be accessible from anywhere on the Internet. Assignments may be posted before they are officially assigned; however, you should not assume that an assignment on the schedule page is in final form until the date it is assigned. In other words, assignments are subject to change before the date that they are officially assigned. There may be additional required elements.

The software programming projects are of-course an important component of this course. You'll be making programs of the languages specified in class or on schedule page (e.g., Python, Java, Scala, or C, C++). The programming tools you'll need (game engine, simulation engine, compiler, debugger, etc.) may be denoted on the project page and should be downloaded and installed on your laptop and /or workstation.

Currently the programming languages used in this class are: JavaScript & Java and related languages.

Summaries (reading assignments)

You will read/skim at least one technical paper or essay every week. For each week each you will prepare a 1-page summary on one of the presented papers (you may chose any one of the two). This summary must be submitted to the grader before midnight on Friday following the presentation. The summary needs to reflect that you made an effort to read and understand the paper. The summary should address the five questions listed on the slides covering presentations.

The fifth question concerns a brief critique of the delivery of material bu the speaker. Here you need to address if pertinent material should have been included, and suggestions on improvements. You may skip up to 2 summaries without a penalty (see reading page link above for specific questions that you need to address). If you submit and cover every week you may be subject to earn bonus points.

Presentations

 

You will present on 1-2 topics throughout the semester, each presenter is responsible for a main paper (topic) presentation but you are expected to read additional technical papers (or essays) to ensure breadth of the week's topic. Some suggestions to add "breath" to your theme topic are listed in the reading list, or you may choose your own. You will select the theme, but the specific paper will be assigned (however you may suggest or express interest in particular paper). If we have a large class the presentations may be presented as a group (a group of 2) presentation.

Participation and Attendance

Class attendance is mandatory; we do take attendance frequently, and class participation is 5% of your grade. Excused absences count when taking attendance - we do take it frequently so missing one or two classes should have minor effect on your grade. You may earn bonus points for perfect attendance. When class has an online component we take attendance via screen capture and you must have camera turned on inorder as being counted as being in attendance.

Instructor Enforced Withdrawals

Missing 7 days or more of classes (inclusive of excused absences) is considered excessive absentia and may result in an instructor enforced withdrawal.

Missing 2 scheduled exam (inclusive of excused absences) may result in instructor enforced withdrawal.

Academic Honesty

As a University of Georgia student, you have agreed to abide by the University’s academic honesty policy, “A Culture of Honesty,”and the Student Honor Code. All academic work must meet the standards described in “A Culture of Honesty” found at:

http://www.uga.edu/honesty.

Lack of knowledge of the academic honesty policy is not a reasonable explanation for a violation. Questions related to course assignments and the academic honesty policy should be directed to the instructor.

The Computer Science Department recognizes honesty and integrity as necessary to the academic function of the University. Therefore all students are reminded that the CS faculty requires compliance with the conduct regulations found in the University of Georgia Student Handbook. Academic honesty means that any work you submit is your own work.

Common forms of academic dishonesty, which students should guard against, are:

  • copying from another student’s test paper or laboratory report, or allowing another student to copy from you;
  • fabricating data (computer, statistical) for an assignment;
  • helping another student to write a laboratory report or computer software code that the student will present as his own work, or accepting such help and presenting the work as your own;
  • turning in material from a public source such as a book or the Internet as your own work.

Three steps to help prevent academic dishonesty are:

  • Familiarize yourself with the regulations.
  • If you have any doubt about what constitutes academic dishonesty, ask your instructor or a staff member at the Office of the Vice President for Instruction.
  • Refuse to assist students who want to cheat.

In addition to the terms expressed above, you also agree not to make any portion of your assignments for this class {publicly or non-publicly} available for others to view.

This includes, but is not limited to:

1) posting snippets of your code on help websites.

2) Engaging in activities similar to this will be seen as either giving or receiving unauthorized assistance.

3) With regard to question and answer websites (e.g., StackOverflow, Yahoo Answers, etc.), you may ask general questions about programming on such websites that relate to your assignments in this class, however, you must phrase such questions in a way that make them independent of the specific problem you are having.

If you need specific help with portions of your code (while displaying your code), then you must consult with the instructor or teaching assistants first (unless expressly and explicitly stated otherwise in the assignment description). Furthermore, if you copy or extend material from the Web (in any fashion) or other sources and incorporate that material into the submission for one of your assignments then you must cite where you got the code from in order to avoid plagiarism.

All faculty, staff and students are encouraged to report all suspected cases of academic dishonesty. All cases of suspected academic dishonesty (cheating) will be referred to the Office of the Vice President for Instruction for academic dishonesty. Penalties imposed by the Office of the Vice President for Instruction may include a failing grade in the course and a notation on the student’s transcript. Repeated violations are punishable by expulsion from the University.

Other Class Policies

If you miss class it is your responsibility to find out what you missed if you don't attend class. Please do not email instructor and ask what you have missed - you may ask however after class.

You are required to subscribe to the class email list or forum (Piazza)- and be aware that sometimes homework is assigned or templates are distributed via this forum - or there are some hints posted in the forum - you probably do not want to miss that.

The purpose of the assignments and projects is familiarization of concepts and details of programming.. The assignments & projects are expected to be individual work unless other specified. However, you are encouraged to ask questions of one another, and to respond to other student's questions on the email list.

Direct exchange of code is prohibited, as is line-by-line assistance from anyone or thing (this includes Internet copying). This is checked for every assignments. If you do get help from other sources than book, slides, or TA you must acknowledge the source in the material that you turn in -but note still no copying is allowed.

Unless otherwise specified, exams are closed-book and no additional materials may be used. Missing an exam: absence due to serious illness will be an acceptable reason for missing an exam. Doctor's diagnostic note is required (these absences may be confirmed with your doctor). The final grade will be scaled accordingly.

ID - Syllabus Addendum (we follow the institute regulatation regarding COVID):

https://ovpi.uga.edu/_resources/documents/Syllabi-Info-for-Students-Fall-2021-8.6.2021.pdf

(please check Arch NEWS for updates regarding the UGA COVID policy).

Contributions:

The course is inspired by Mark Guzdial's Freakonomics course, and other similar courses .

Class Photo: A Previous Class