Fact Sheet

ICS-33: Intermediate Programming


Instructor Information

InstructorRichard Pattis
Lecture Lecture A: MWF in HIB 100, 1:00pm-1:50pm
Lecture B: MWF in HIB 100, 2:00pm-2:50pm
Office LocationDBH 4062 (Bren Hall)
Office Phone (949) 824-2704 (email is better)
Office Hours Mon  3:30pm - 5:00pm
Tue  3:00pm - 3:30pm
 Also, see staff in Labs 9am-5pm
Wed  3:30pm - 5:00pm
Thr  None
 See staff in Labs 9am-5pm
Fri  3:30pm - 5:00pm
Course Mottos    ABC: Always Be Coding.
Less is more.
G-d is in the details.


                     
Rich Pattis
pattis@ics.uci.edu
Instructor

Quotes for Learning: I'll encourage you to learn, point the way, and show you how; but you must engage (trying, failing, learning, and succeeding); often through reading and experimenting by running code.
Learning results from what the student does and thinks, and only from what the student does and thinks. The teacher can advance learning only by influencing the student to learn.
- Herbert Simon (Carnegie Mellon University)

[T-Shirt version: I can explain it to you, but I cannot understand it for you.]

We don't have much time, so we don't teach them; we acquaint them with things that they can learn.
- Charles Leiserson (MIT, from a lecture he gave at CMU)

Can writing [programming] be taught? It can be learned, but I'm not sure it can be taught. It's a self-taught kind of thing.
- Steven King (interviewed on PBS)

One does not teach a subject, one teaches a student how to learn it.
- Jacques Barzun (in his book Begin Here, pp 35)

[Like previewing a route on a map, then exploring the terrain; you must read and experiment with the information covered in lecture to learn how to use it when programming. I'll help you to learn how to learn, but ultimately you must teach yourself.]

Character is created by encountering and overcoming failure.
- P. Tough (in his book How Children Succeed)

One cannot acquire [an understanding of] Torah who has not failed in it.
- Talmud (Gittin 43a)

I am always doing that which I cannot do, in order that I may learn how to do it.
- P. Picasso

[We are going to continually ask you to do work a bit beyond your ability. Make mistakes: they are opportunities to learn (and to learn what you need to learn). So learn from them by teaching yourself; don't confuse mistakes and failures: mistakes aren't failures, if you learn from them.]

Text is linear; it is black and white; it doesn't zoom around the page in 3-D; it isn't intelligent by itself; in fact, in terms of immediate reaction it is quite boring. I can't imagine a single preliterate was ever wowed at the first sight of text, and yet text has been the basis of arguably the most fundamental intellectual transformation of the human species.
- A.diSessa (in his book Changing Minds: Computers, Learning, and Literacy)

[Reading is still the most important way to learn; then programming/debugging]


Staff Information

TAs: Visit any TA at their Office Hours on Zoom

Rahima Jahan Mitu
rmitu@uci.edu
TA Labs: 2 and 7
Zoom Office Hours
Link: Mon 8-10pm
Tommaso Monaco
monacot@uci.edu
TA Labs: 6 and 9
Zoom Office Hours
Link Sun 4-6/8-10pm
Carlos David II Puentes
cdpuente@uci.edu
TA Labs: 5 and 8
Zoom Office Hours
Link: Sat 12-4pm
Phuc Hoang Tran
phucht1@uci.edu
TA Labs: 1 and 4
Zoom Office Hours
Link: Sun 12-4pm
Navin Velazco
nvelazco@uci.edu
TA Labs: 3 and 10
Zoom Office Hours
Link: Wed 8-10pm

Readers (Graders)

 




Valeria Amaya
vamaya1@uci.edu
Undergrad Reader
Jakub Antosz
jantosz@uci.edu
Undergrad Reader
Elizabeth Wing Yun Lui
ewlui@uci.edu
Undergrad Reader
Kyuho Oh
kyuhoo@uci.edu
Undergrad Reader
 
 
Aaron Winter
apwinter@uci.edu
Undergrad Reader
Haining Zhou
haininz@uci.edu
Undergrad Reader

Tutors: Interact with them in Lab (not by email)

Ziheng Liu
Lab 1 Tutor
Padma Iyengar
Lab 2 Tutor
Kristin Leung
Lab 3 Tutor
Jenny Huang
Lab 4 Tutor
Zhentao Yang
Lab 5 Tutor






Yubin Kim
Lab 6 Tutor
Justin Kim
Lab 7 Tutor
Ezra Hammond
Lab 8 Tutor
Triet Ho
Lab 9 Tutor
Stephen On
Lab 10 Tutor

Course Help

Instructor Office Hours: Please feel free to drop by any time during my office hours, without an appointment (these are open office hours). I cannot provide much debugging help if there are many students waiting to see me (better to see a TA/Lab tutor for debugging help); if you must see me, come prepared with a good understanding of the specifications for the problem and a good understanding of the code you wrote, including where/how it is failing. If you cannot make any of these times and want to schedule an appointment at some other time, e-mail me to arrange one (or, if the question is small, just send me e-mail asking it; or better yet, post it in an Ed Discussion thread).

Instructor Email: I answer e-mail periodically throughout the day (from about 6:30am to 7:00pm). If you have a question that would be of interest to the entire class, please post it in an Ed Discussions thread (see below).

Ed Discussion Q&A Messages: I have created a class on Ed Discussion. You can Signup or View Threads in ten categories (see below). I prefer that students ask questions in these Threads, so that everyone (staff and other students) can see the questions and everyone can participate in answering the questions (and exploring the answers). I expect students to read these Threads regularly to keep current on their discussions. Avoid duplicate posts: before posting, first check whether another student has already posted on that topic (by searching for some of its keywords).

When you do post a question, choose the right category and a clear, specific, and descriptive title. It is sometimes hard to ask a good question: clearly stating what you know and zeroing in on what is confusing; spend some time thinking how to describe your problem clearly. Sometimes I will try to rephrase what you wrote or prompt you for more details, to attempt to improve your (and other students') ability to ask questions.

  1. Category Logistics: Ask/answer/discuss questions about the course logistics and policies. I am the ultimate arbiter here.

  2. Category Tools: subcategories Eclipse, Python, Debugger, Batch-Self Check, and Checkmate/Gradescope. Ask/answer/discuss questions about installing or using these software tools.

  3. CategoryLectures/Readings: Ask/answer/discuss questions about the lecture, readings, and any lecture-related materials discussed/distributed in class.

  4. Category Quizze: subcategories Q1-Q8. Ask/answer/discuss questions about the quizzes (written and programming). DO NOT post solutions or any code until after these quizzes are due, but feel free to ask about/discuss all other aspects of the quizzes (including asking for clarification, input/output examples, etc: be specific).

  5. Category Programs: subcategories P0-P5. Ask/answer/discuss questions about the programming assignments: specification, relevant Python, etc. DO NOT post solutions or any code until after these programs are due, but feel free to ask about/discuss all other aspects of the programming assignments (including asking for clarification, input/output examples, etc: be specific).

  6. Category In-Lab Examx: subcategories ILE1-ILE3. Ask/answer/discuss questions about the in-lab programming exams. DO NOT discuss or post solutions or any code until after all an in-lab exams on a given day are finished.

  7. Category Written Exams: subcategories Midterm and Final. Ask/answer/discuss questions about the written exams. DO NOT discuss or post solutions until after all the exams on a given day are finished.

  8. Cetagory Find Partners: Find a programming partner. Relevant information is your Lab (partners don't have to be in the same lab, but they should at least be able to attend one lab together), approximate skill level (best to match with someone at your own level), work habits (e.g., prefer to work days, evenings, weekends; do/don't want to work early to get extra for early submissions), preferred location to work (dorm-which, library, home-where, approximately), ...

  9. Category Academic Integrity: Ask/answer/discuss questions about Academic Integrity. I am the ultimate arbiter here.

  10. Category Miscellaneous: Use this category for anything that doesn't fit well into any of the others.
Feel free to ask questions and answer other students' questions in these Threads (subject to the prohibitions specifcied in Quizzes, Programs, and Exams). I will read all Threads early every morning and answer all unresolved questions.

Before you post a question, check whether that question has already been asked; if it hasn't, choose the correct Category in which to put it and the Title line carefully, so that potential readers see a context and overview of its contents.

In past quarters, discussion boards have seen a good amount of traffic: course material has been clarified, questions have been asked and answered, and many interesting discussions have ensued. But the efficacy of these discussions depends on your participation. If the need for other Categories arise, I will create them: feel free to suggest others to me.

Post good questions. Asking questions is an art; over the quarter try to improve your ability to post questions. Try to state what you understand about the issue (giving the reader your context), and then ask a specific question. I often find that students answer their own questions, once they are asked to articulate exactly what they know and what they are asking; for "What would Python do..." questions, try it out yourself, in Python.

Course Email: The instructor, staff, and all students registered for the course can send email to everyone else by emailing the address ics33-S22@classmail.eee.uci.edu. All messages sent via this email address will be archived on the Email Archive for students in Lecture A and in Lecture B. As the instructor, I will frequently use this mechanism to broadcast timely information to all the students. Students should use this email address more selectively: mostly you should be using the Ed Discussion tool mentioned above to ask questions, so all students can see your questions/comments and participate in the discussion. One reasonable student use of this email list is to send email if Checkmate (the program submission system) appears to be down; by sending class email on this topic, I will learn about the problem, other students in the class will learn about the problem, and everyone will know I know about the problem (so I won't receive an avalanche of emails). In such a case (when I bring Checkmate back up), I'll send a follow-up email message to everyone.

Finally, remember to read the Announcements link daily, on the course web; I tend to post long-lived information here, rather than via Ed Discussion or email.


Lecture/Lab Meeting Places and Times

Lecture/Lab(s) Staff: Instructor/TA+Tutor Classroom Days Start Stop
Lecture A Rich Pattis HIB 100 MWF 1:00 pm 1:50 pm
Lecture B Rich Pattis HIB 100 MWF 2:00 pm 2:50 pm
Lab 1 Phuc Hoang Tran + Ziheng Liu ICS 183 TuTh 9:00 am 10:50 pm
Lab 2 Rahima Jahan Mitu + Padma Iyengar ICS 189 TuTh 9:00 am 10:50 pm
Lab 3 Navin Velazco + Kristin Leung ICS 192 TuTh 9:00 am 10:50 pm
Lab 4 Phuc Hoang Tran + Jenny Huang ICS 183 TuTh 11:00 am 12:50 pm
Lab 5 Carlos David II Puentes + Zhentao Yang ICS 189 TuTh 11:00 am 12:50 pm
Lab 6 Tommaso Monaco + Yubin Kim ICS 192 TuTh 11:00 am 12:50 pm
Lab 7 Rahima Jahan Mitu + Justin Kim ICS 183 TuTh 1:00 pm 2:50 pm
Lab 8 Carlos David II Puentes + Ezra Hammond ICS 189 TuTh 1:00 pm 2:50 pm
Lab 9 Tomasso Monaco + Triet Ho ICS 192 TuTh 1:00 pm 2:50 pm
Lab 10 Navin Velazco + Stephen On ICS 183 TuTh 3:00 pm 4:50 pm

It is well known (but often underappreciated) fact that consistent attendence of lectures/lab is strongly correlated with good course performance; therefore, I expect all my students to attend lectures and labs regularly. Plan on arriving punctually -I may make important announcements at the start of a lecture- paying attention, and treating your classmates with respect.

If you do miss a lecture, your first point of contact should be other students who attended the lecture to determine what you missed and how you can catch up (see the course web too). One of the most "bewildering" questions faculty hear is, "I missed lecture yesterday; did you say or do anything important? If so, can you tell me what?"


Bottom Line

As a Professor of Teaching at UCI, my primary responsiblity is teaching; my primary activities are preparing course materials, teaching in class, interacting with students (in class, during office hours, on Ed Discussion), grading, and managing the ICS-33 staff: TAs, readers, and tutors.