Basics of Scientific Computation

The Course

First Meeting (Week 1)

All students are required to attend the first meeting. Please follow posts in the department for date and time. There will be NO LAB in this week.

Code and Credits:

PHYS 200 - 2300200 - 3 credits

Instructors:

Goal

Gain the ability to convert problems into algorithms and solving them using a computer language.

Course Material

There will be no formal textbook. Full Text Lecture Notes and Lecture Presentations will be made available online.

Registration

At the beginning of each semester, two sections (Section 11 & 12) of the course will be opened with ZERO CAPACITY. Following the add-drop period, the students will be registered by the instructors according to their semester schedule.

Each student will therefore have to pre-register their status and register their schedule and otherwise will not be able to take the course.

  • for Fall semesters, only regular students are accepted :

    1. The student should be in his/her 3rd semester OR

    2. The student shouldn't have taken any 2nd year must courses in his/her 5th semester.

  • for Spring semesters, only irregular students are accepted :

1. The student doesn't satisfy any of the regular conditions listed above.

2. The student is a double major student (originating either from Physics or another department)

The number of students for each semester is limited to 64. After applying above rules if there are still empty seats left then they will be filled by the student's entrance semester to the department: the oldest will get the first empty seat (for both FALL or SPRING semester).

Structure & Schedule

The course will consist of

  • In-class lectures (1 hour) – Both sections have to attend the lecture at the same time.

    • FALL semester: Tuesday @10:40 - 11:30 in U1

    • SPRING semester: Monday @12:40 - 13:30 in P3

  • Laboratory (2 hours) – in LAB1 (Department’s Computer Lab on the ground floor)

You will get a chance to practice what you have learnt during the lecture. The following lab days are fixed for both semesters:

    • FALL semester: Thursdays

    • SPRING semester: Fridays

You will attend the lab hours in one of two sections:

    • Section 11: Morning – 09:40-11:30

    • Section 12: Afternoon – 13:40-15:30

The lab is in the basement: take the first right past the foyer, go through the swinging doors, turn right and walk straight ahead. There are 32 PC’s set up for your use in the lab.

Your Lab section is determined according to your schedule. Lab sections will be assigned by the instructors and will be announced at the beginning of the second week of the semester.

Grading

Notes:

  • Attendance to class and lab is an important part of this course. At each lecture or lab session, we will take attendance and mark it directly in METU-CLASS.

If you are absent in the lab then you will lose Quiz and Exercise points as well as your attendance points.

  • Mid-term and final exams will be computer-based and held in LAB1 (see section Exams below)

  • There will be NO QUIZ in Week 2 (Lab Week 1).

  • Quiz, Exercises and Assignment are time limited:

    • The Quiz is given at the beginning of each lab session (20 minutes).

    • Two Exercises have to be submitted before the lab session ends.

    • Assignment is to be completed during the lab however its due time is the same day until midnight.

  • You have to choose 4 projects equivalent to "8 project points" (see section Projects).

Exams

INTEGRITY IS VERY IMPORTANT FOR US.

WE DEFINITELY DO NOT TOLERATE CHEATING.

PLEASE DO NOT ATTEMPT IT!

Rules for mid-term and final exams

  • The exams will be held in the PC lab on the lab computers.

    • Section 11: 09:45 - 11:15 (90 minutes)

    • Section 12: 13:45 - 15:15 (90 minutes)

  • WARNING: IF YOU HAVEN'T MEMORIZED YOUR LOCAL USER ID AND PASSWORD THEN WRITE THEM ON A SMALL PAPER AND BRING IT TO THE EXAM.

  • WARNING: IF YOU HAVEN'T LOGGED IN TO YOUR ODTUCLASS ACCOUNT AT THE BEGINNING OF THE EXAM YOU WILL GET ZERO (LOGGING TIMES ARE ADDED BY THE SYSTEM).

  • You are NOT allowed to use your personal computer; instead you have to use the PC's in the lab.

    • Come to the lab as early as possible on the day of the exam and make sure everything works!

  • Leave ALL your belongings including cell phones (turned off) at the instructor's desk.

    • Nothing allowed on or around the PC or the chair.

    • You are only allowed to use the keyboard and the mouse.

    • You are not allowed to have USB keys attached to your PC.

  • On the desktop you will be allowed to run the following applications:

    • A single window running a browser (firefox or chrome) having only a single tab which should only contain "odtuclass".

    • An editor window of your choice. However, you are not allowed to use the editor "spyder".

    • A Terminal window

    • If you have other applications running you will be dismissed from the exam.

  • You will "submit" each solution as a PYTHON file (extension .py).

    • You are allowed to run your code through the following command "python Q1_answer.py" to debug for mistakes.

  • No talking, no question; Otherwise you will be dismissed from the exam.

  • YOU CANNOT LEAVE THE EXAM BEFORE HALF OF THE ALLOWED TIME HAS PASSED (i.e. 45 MINUTES).

  • YOU CANNOT SUBMIT YOUR EXAM AFTER YOU LEAVE THE LAB.

  • ALL EXTERNAL SUBMISSION MADE BY STUDENTS WHO ARE NOT PHYSICALLY IN THE LAB WILL BE TREATED AS INCIDENCES OF CHEATING.

Mid-term

Content of the exam:

  • 1 quiz question (Q8): The last quiz and the midterm are combined due to time constraints.

  • 4 midterm questions

  • Your answers will contain only coding: No explanation, no comments, no extra information (they will all be discarded).

  • Since you are allowed to run your code it should not contain syntax errors.

  • Each answer has to be submitted as a separate file to the related assignment on ODTUClass. However, all of them have the same starting and ending times. It is your responsibility to SUBMIT ON TIME. THERE WILL BE NO TIME WARNING.

Question types:

  • (4 pts) Multiple Choice: Pick one answer out of four possible choices.

  • (4 pts) Algorithm: For a given problem as a text, fill in the boxes of a skeleton flowchart.

  • (6 pnts) Coding 1: Write a Python code for a problem (including file manipulations, conditionals and other coding elements).

  • (6 pnts) Coding 2: Write a Python code for a problem (including functions, conditionals and other coding elements).

Final

Content of the exam:

  • 5 questions

  • Your answers will contain only coding: No explanation, no comments, no extra information (they will all be discarded).

  • Since you are allowed to run your code it should not contain syntax errors.

  • Each answer has to be submitted as a separate file to the related assignment on ODTUClass. However, all of them have the same starting and ending times. It is your responsibility to SUBMIT ON TIME. THERE WILL BE NO TIME WARNING.

Question types:

  • (3pts) Basic Coding

  • (5 pts) IF-THEN-ELSE block

  • (5 pts) Number theory-type question

  • (6 pts) Reading/Writing to/from files

  • (6 pts) Advanced Coding

Guru Mode

Since we do not offer any kind of exemption from this course, the "GURU MODE" is a special grading scheme that we apply to students who have EXTENSIVE background in coding and wish to challenge themselves further than the typical student taking this course. Students applying to take this course in the GURU mode are expected to work harder, with more challenging homework/assignment problems and much more challenging projects. On the other hand, it has some privileges (see below).

Applying for guru mode doesn't guarantee the guru mode. We will look at your claim and make a case-by-case decision.

Who can apply for guru mode?

  • Double major/minor C.Eng students.

  • People who can demonstrate extensive coding experience (software or game developer etc.).

What is expected from a guru?

  • Attendance to the lecture is not mandatory.

  • Attendance to lab (first 8 weeks) is mandatory with special guru mode exercises and quiz questions.

  • Only two projects, to be determined with two instructors.

  • Lab is not mandatory starting from 9th week however the GURU has to submit project progress every week.

Disadvantages

  • Everything is harder; sparse guidance is given by the instructors.

  • We expect all codes to work.

  • Less partial credit.

How to apply

  • Students wishing to apply for GURU mode should fill the application form before the add-drop period starts.

  • Application does NOT guarantee acceptance. We will let you know by the start of the add-drop period.

  • Even if you have extensive background in coding, you are not required to apply for the GURU mode. You can just follow the regular track if you so wish. However, we recommend that you do since it will allow you to get a taste of real research problems.