ECS 145, Winter 2020
[Informative, intended to help you do well in the course. NOT intended
to intimidate. :-) ]
I Teach Differently from Others
- Quizzes EVERY week. Open book.
- End-of-quarter term project, with WRITTEN report.
- Group work plays a central role in homework, term project.
Constant coordination with teammates is key.
- Quizzes are taken on your laptop computer, in class, using
the
OMSI system.
- Quizzes emphasize insight, not rote memorization of
formulas, patterns or programming language syntax.
Good Fit for You?
I believe you will enjoy and value this course if:
- You feel that exploring the How? and the Why? of a course is an
integral part of a university education. You thus appreciate digressions in
lecture, provided they are related to the class.
- You are comfortable with being required to do detailed reading and
being tested on it.
- You believe that a student's hard work should be rewarded with
a generous course grade. (See below.)
On the other hand, the course may not be a very good fit if:
- You plan to take it for a P/NP grade.
- You feel that all possible aspects of a course should be covered
in lecture, rather than some being relegated to the assigned reading.
- You prefer a highly structured class that sticks to fundamentals,
has practice exams that are similar to the real exams, provides detailed
outlines to programming assignments, and so on.
Content of the Course
- We will focus on advanced Python (e.g. Python generators)
and advanced R (e.g. R6 classes), spending about 5 weeks on each.
- It is assumed that you have prior Python background similar to that
acquired in ECS 36A.
- It is NOT assumed that you have prior background in R. However,
you are expected to pick up the basic material on your own. It is
required that you read my quick
online tutorial. It's designed for nonprogrammers, so you'll find
it quite easy to follow.
- R will be viewed as a programming language, object-oriented and
functional programming-based, with interesting metaprogramming
features; this is NOT a course for those interested in learning about
R's statistical features.
- This is NOT a "Where do you put the semicolon?" class. (No
class should be like that, including ECS 36*.) Instead, the
issues are the goals of the language, the strengths and shortcomings,
external enhancement (e.g. interfacing to C/C++), performance issues,
etc.
Exams
- No midterms or final.
- Group term project in lieu of final, due on the day of
the scheduled final.
- Quizzes are given in discussion section EVERY WEEK.
Quiz problems range from straightforward to very challenging.
- There is a Group special Quiz on the last day of lecture.
- Quiz problems will often refer to specific pages in the
book. (Open book Quizzes, no memorization needed.)
It is REQUIRED that you read the textbook, in complete
detail.
- Quiz scores tend to be low, but letter grades are generous.
-
All old Quizzes may be viewed
here.
- Quizzes form 60% of your course grade.
Homework
- About 3-4 assignments during the quarter.
- Homework is done in GROUPS.
- Grading is done INTERACTIVELY, by Group.
- TA will ask each member of the Group questions, both about
the assignment and about the course material in general.
Each Group member receives a separate grade; one member may get
an A+ while another gets a D.
Necessary background:
- See above statements regarding prior background in Python and R.
- You need programming skill on the level of ECS 36C or 34. You must
be able to write programs ON YOUR OWN, WITHOUT being given an
outline. IF YOU DO NOT FEEL CONFIDENT IN WRITING CODE WITHOUT
HELP FROM OTHERS, THIS IS NOT THE COURSE FOR YOU; you would get
very low grades in the Quizzes.
- You need a good intuitive grasp of math. We will use linear
algebra a lot, for instance, and though there will be a tutorial for
those lacking such background, even those with prior background in
linear algebra will struggle if they lack good math intuition.
Textbooks:
Free download from Web --
Python notes,
my quick R tutorial,
R notes
(latter is early, 50% draft of published book).
You are REQUIRED to have hard copies of these documents -- actual
paper, not electronic (best to go to a copying store). Please print
them BEFORE classes start. Quizzes are open-book/open-notes.
Grading
- Quizzes 60%, homework/term project 40%.
- Lowest 2 quizzes dropped.
- Huge bonus for a good term project.
- Through various "special offers," many students find that
their course grade ends up much higher than their average grade
in the quizzes.
Example: In ECS 132 last quarter, there was a student with a C
average on the quizzes, and a B average on the homework. His team
had an A- on the term project. This student ended up with an A
course grade! Again, this was due to the "special offers."
This was not an isolated incident at all; there were many students
whose course grade was much higher than their quiz grades.
Lecture/Learning Format
- It is expected that the student be NON-PASSIVE in
learning.
Most of the student learning comes from reading the
textbook in very careful, thoughtful detail.
- I used to lecture in the traditional way -- I spent time
writing on the board, the students spent time copying it to paper.
- Then I realized, "What a colossal waste!" So, now I give
you the printed notes, so you and I can spend the time
discussing the material.
- So, in lecture, we DISCUSS the book. I almost never write on
the board, nor do I have Powerpoint slides.
- It is NOT recommended that students read the book ahead of
the lecture. In the lecture,
I prepare you to do the reading.
- In some cases, I will not lecture on a certain section of the
book, and simply have you read it on your. I choose for such sections
ones that I believe you'll have no trouble with. But if you do have
questions, please make sure you ask me or the TA.
- Goals of the lecture:
- Clarify issues brought up by students concerning reading
related to the last lecture.
- Prepare students for the next reading material, by giving
an overview of what the material will do, and going into the
more difficult examples in detail .
- You could decide to skip lecture and just read the book, but
it IS really helpful to go to lecture. There will be
spur-of-the-moment examples and insights, answers to students'
questions. etc. And you are responsible, in Quizzes and
interactive Homework grading, for everything that comes up in
lecture.