ECS 145, Winter 2019
[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 intuition, not rote memorization of
formulas and patterns.
Content of the Course
We will focus on the Python and R languages, spending about 5 weeks
on each. (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 30 and 40.) 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 project in lieu of 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 70% of your course grade.
Homework
- About 4-5 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:
- NO prior knowledge of Python and R is required.
- You need programming skill on the level of ECS 60. 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 also need to know C++ and data structures from ECS 60, and the
same comment applies as above: IF FOR INSTANCE YOU DO NOT FEEL
COMFORTABLE IN WRITING RECURSION CODE, this is not the course for
you.
- 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,
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 70%, homework/term project 30%.
- Lowest 2 quizzes dropped. Also, optional "job interview"
can replace 1 additional quiz with a better grade.
- Huge bonus for a good term project.
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.