This course is now closed. Links and other information on this site are no longer being maintained. Access to solutions are now restricted; please contact the instructor if you would like access.

Syllabus

Vitals

Instructor

Texts & Supplies

Required texts:

All texts are required and are available at the bookstore.

Computer requirements: All students are expected to have unfettered access to a personal computer (Windows, Mac, Linux, etc.) or netbook with broadband-speed Internet access. Student access to University computing labs fulfills this requirement. All students are assumed to be proficient with a word processing program and a presentation program (e.g., Microsoft Word and Powerpoint), and willing to learn a spreadsheet program (e.g., Microsoft Excel). All students must have a valid email account that they check on a daily basis.

See the list of External Links for additional resources on the subjects of the course.

Goals & Topics

Goals: First and foremost, I hope you will discover a new dimension of worshiping God through both the process and content in learning about using computational tools.

At the end of this course, you should also have developed the rudimentary tools needed to use computational tools to do research in science. This course is not a programming course per se but rather focuses on using computer programming skills to solve scientific problems. My hope is also that during this course you will grow in learning how to learn (see the External Links page for some tips on learning).

Our class motto is: "The right tool for the job."

Topics: Course topics include:

Requirements

Homework: The Assignments List contains details for most homework assignments. The Schedule gives assigned and due dates, as well as the details about homework not described in the Assignments List.

Quizzes: Weekly, on Wednesdays. In-class, various formats.

Final exam: Friday, May 7, 10:30 am–12:30 pm. In-class and comprehensive.

Please note that learning programming cannot be crammed in. (In contrast, once you have learned how to program, you can write a program in an all-night frenzy if you want.) You must start the assignments early and see me promptly if you get stuck. Otherwise, you will likely go around in circles wasting time and energy.

Grading

Your course grade is calculated based on the following formula:

If you have turned in no less than 60% of the Homework and taken no less than 60% of the Quizzes, I will replace your cumulative Quizzes grade with your Final Exam grade if the Final Exam grade is higher.

Scale: The chart below shows the lower-end cutoffs for each possible passing letter grade. The University, as a policy, does not award A+ grades.

Lower Cutoff
(inclusive)
Letter
Grade
94% A
90% A–
87% B+
84% B
80% B–
77% C+
74% C
70% C–
67% D+
64% D
60% D–

Makeups & Late Policy

There are no makeups for quizzes, exams, or presentations/demonstrations unless for reasons of physical health, bereavement, or University business.

Work is accepted only in class. Work turned in any other way without prior arrangements being made may have 10% automatically deducted from it. It may be considered late anytime after it is collected in class. Work late:

Late penalties are waived for reasons of physical health, bereavement, or University business. Please see me/send me an email if something like this comes up.

Collaborating

As with any relationship, I expect honesty, respect, and grace to be the foundation of our time together. I expect this for myself, as well as for you. Collaborating in work is a wonderful opportunity to practice all three principles. Cheating, however, is an affront (to the first two) or an abuse (of the last) of these norms, and so will result (at a minimum) in a zero for the Assignment involved. If you are not sure what constitutes cheating, please ask me; here are some guidelines to help you on this issue:

While I make solutions inaccessible on class websites after the class is over (to decrease temptations to cheat), our department is small, and so you probably know someone who has taken this class before and has copies of exams, problem sets, and/or solutions. I also have a policy of giving students solutions to as much work as I can because I want students to use their old work in studying for the final (or other exams). Thus, I realize that solutions are potentially in circulation. However, I ask that current students limit their consultation of work from previous sections in certain ways. Here are specific scenario categories:

For example, if you have a friend who took this course before and you consult his/her problem set solutions while studying for an exam, that does not constitute cheating. However, if you consult those problem set solutions while working on that problem set, that does constitute cheating.

I believe these are reasonable guidelines that balance a number of competing interests, and that do not constitute an unfair burden on conscientious students. Recall that I do not curve grades, so dishonest students really are hurting themselves and God, but not other students. Please let me know if you have any concerns.

The Internet and Programming: The Internet is one of the greatest programming helps ever invented. Almost any programming problem can be solved using Google. That being said, you still need to take care not to plagarize another's code. Here are some guidelines:

Disabilities

"Students with disabilities who believe that they may need accommodations in this class are encouraged to contact the Academic Services Learning Specialist by email or by phone at (773) 244-5737, or stop by the office located on the 2nd floor of the Student Services Building. Please do so as soon as possible to better ensure that such accommodations are implemented in a timely manner. If needed, appointments can be relocated" (North Park University 2009). More information is available online at http://www.northpark.edu/disability.

Schedule

This schedule of assignments is sorted forward-chronologically. All work is due the following class session after it was assigned, unless otherwise noted. (Assigned work that says "not collected" is due the next class session, but will not be turned in for credit; those assignments are to help you learn what you need to in order to do the later assignments.) The list on this schedule includes all those on the Assignments List (except Extra Credit, which is described only on the Assignments List) as well as exercises from readings and tutorials that are not included on that list.

As an additional resource, I've compiled a list of external links to supplement the readings and exercises.

Class
#

Date

Description

1

Mon. Jan 11

Topics: Course administration, introduction to scientific computing, introduction to spreadsheets (references, names, copy/paste, fill down).

Assigned: Basic Excel Tutorial assignment.

2

Wed. Jan 13

Topics: Using spreadsheets to solve equations through iteration and graphing.

Assigned: Iterative and Graphical Solutions of Equations assignment.

Mon. Jan 18

No class—Martin Luther King, Jr. Day

3

Wed. Jan 20

Topics: Quiz 1. Numerical differentiation and integration using spreadsheets.

Assigned:

4

Mon. Jan 25

Topics: Exploratory statistical data analysis using spreadsheets.

Assigned: Exploratory Data Analysis assignment.

5

Wed. Jan 27

Topics: Quiz 2. Introduction to Mathematica: Go through the built-in Mathematica tutorials "Your First Mathematica Calculations" (tutorial/YourFirstMathematicaCalculations in the search bar of the Mathematica documentation window) and "The Syntax of the Mathematica Language" (tutorial/TheSyntaxOfTheMathematicaLanguage) and the "Hands-on Start to Mathematica" screencast in class.

Assigned: Solving Problems assignment.

6

Mon. Feb 1

Topics: More solving problems in Mathematica.

Assigned: More Problems and Functions assignment.

7

Wed. Feb 3

Topics: Quiz 3. Simple dynamics modeling using Mathematica.

Assigned: Simple Dynamics Modeling assignment.

8

Mon. Feb 8

Topics: Vector calculations using Mathematica.

Assigned: Vector Calculations assignment.

9

Wed. Feb 10

Topics: Quiz 4. Set up GNU/Linux accounts on snow, set-up shell environment (copy .bashrc and .bash_aliases from /home/jlin), introduction to computing, GNU/Linux commands, getting help.

Assigned: None of these assignments will be collected. However, you ignore them (and all uncollected assignments) at your own peril! The material that's covered will be crucial for later assignments:

  • Download a copy of Rute User's from here. Note that this is a tarred bzip2 file, so after you download it you have to use bunzip2 to decompress it, then tar to unwrap the archive. The index.html file in the rute folder is the title page of the book. We will be reading a number of selections from Rute User's over the course of the term.
  • When you do the examples in Rute User's, you will need to do them either in a Terminal window on a Mac or a Cygwin window on one of the Windows PCs in C-22. To open a Mac Terminal window, go to Applications –> Utilities and double-click the Terminal icon. To open a Cygwin window, go to Start –> All Programs –> Cygwin and start Cygwin Bash Shell. If you log in to snow, you can also do the Linux examples in a Terminal window there.
  • Read and do the examples in Ch. 1–2 in Rute User's.
  • Read Ch. 1 (Introduction) in Linux in a Nutshell.
  • Read and do the examples in Sections 3, 4.1–4.8, and 4.14–4.15 in Rute User's.
10

Mon. Feb 15

Topics: GNU/Linux commands (cont.), text editors, regular expressions.

Assigned: None of these assignments will be collected:

  • Do the "Learning vi — The Cheatsheet Method" web tutorial. Use only vi or vim, not gvim.
  • Read and do the examples in Section 5 in Rute User's (the discussion on pattern matching in Ch. 7 in Linux in a Nutshell might help in understanding what all those symbols mean). Read Appendix D.1–D.3 in Rute User's.
11

Wed. Feb 17

Topics: Quiz 5. Scripting, processes, piping, redirection.

Assigned:

Assigned: None of these assignments will be collected:

12

Mon. Feb 22

Topics: Accounts, remote services, permissions, links.

Assigned:

  • Read and do the examples in Sections 11.7 and 12.1–12.5 in Rute User's (not collected).
  • Read and do the examples in Sections 14 and 15 in Rute User's (not collected).
  • Basic GNU/Linux assignment.
13

Wed. Feb 24

Topics: Quiz 6. Introduction to programming, code documentation, Python elements, functions.

Assigned:

14

Mon. Mar 1

Topics: Functions and modules.

Assigned: Keyword Input Parameters assignment.

15

Wed. Mar 3

Topics: Quiz 7. NumPy arrays and array looping.

Assigned: Transposing Arrays assignment.

Sat., Mar 6–Sun., Mar 14: No class—Spring Break

16

Mon. Mar 15

Topics: Array operations.

Assigned: A Slope Function assignment.

17

Wed. Mar 17

Topics: Quiz 8. Array operations (cont.).

Assigned: A Distance Function assignment.

18

Mon. Mar 22

Topics: Array masking and search functions.

Assigned: The Where Function assignment.

19

Wed. Mar 24

Topics: Quiz 9. Array masking and search functions (cont.).

Assigned: Array Masks assignment.

20

Mon. Mar 29

Topics: Array masking and search functions (cont.), floating point comparison.

Assigned: A "Has-Elements-Close-To" Function assignment.

21

Wed. Mar 31

Topics: Quiz 10. Array masking, search functions, and floating point comparison (cont.).

Assigned: A "Where-Is-Close" Function assignment.

Mon. Apr 5

No class—Easter Break

22

Wed. Apr 7

Topics: Quiz 11. More complex array operations.

Assigned:

  • Curl Function assignment (due Wed. Apr 14).

  • Read the list of non-object Python topics, sent to you via email. Come up with questions on those topics to ask next class (not collected).
23

Mon. Apr 12

Topics: Review of non-object Python, object-oriented programming.

Assigned: Read this definition of what is an object (not collected).

24

Wed. Apr 14

Topics: Quiz 12. Object-oriented programming.

Assigned: Object Decomposition assignment.

25

Mon. Apr 19

Topics: Object-oriented programming (cont.).

Assigned: Bibliography Object assignment.

26

Wed. Apr 21

Topics: Quiz 13. Object-oriented programming (cont.).

Assigned: Distance Calculation Object assignment (due Wed. Apr 28).

27

Mon. Apr 26

Topics: Object-oriented programming (cont.).

Assigned: Nothing new.

28

Wed. Apr 28

Topics: Quiz 14. Object-oriented programming (cont.).

Assigned: Curl Calculation Object assignment.

29

Mon. May 3

Topics: Object-oriented programming (cont.). Any and all extra credit is due today (see the description at the top of the Assignments List for details).

Assigned: Nothing new.

Fri. May 7

10:30 am–12:30 pm: Final Examination.

Other Course Administration Issues

For details regarding all other course administration issues (e.g., dropping the course, conditions under which Incompletes are awarded, etc.), please see the current University Catalog.

Creative Commons License Updated: Friday, 01-Jan-2010 17:41:54 PST. Valid CSS, HTML. Author: Johnny Lin <email address>. Disclaimer. This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike License.