Fact Sheet

ICS-46: Data Structure Implementation and Analysis


Instructor Information

InstructorRichard Pattis
Email
pattis@ics.uci.edu
Office Location    DBH 4062 (Bren Hall)
Office Phone (949) 824-2704 (but email is better)
Office Hours Mon  1:00pm - 2:30pm
Tues  1:00pm - 3:00pm
Wed  1:00pm - 2:30pm
Thr None
Fri  1:00pm - 2:30pm
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 and point the way; but you must engage (trying, failing, learning, and succeeding); often by 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)

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

[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)

The sole justification of teaching, of the school itself, is that the student comes out of it able to do something he could not do before. I say do and not know, because knowledge that doesn't lead to doing something new or doing something better is not knowledge at all.
- Jacques Barzun (in his book "Begin Here", pp 112)

[Like previewing a route on a map, then exploring the terrain; you must read and experiment with the knowledge introduced in class to truly learn how to use/apply it when programming.]

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

[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.]


Staff Information

TAs/Readers

Sakshi Agarwal
sakshia1@uci.edu
TA: Comm-Lab 2
Andrew Chio
achio@uci.edu
TA: Comm-Lab 10
Claudio Parra
parraca@uci.edu
TA: Comm-Lab 5
Justine Koa
jkoa@uci.edu
Reader: Comm-Lab 8
Yuxiang(Jack) Qian
yuxiangq@uci.edu
Reader: Comm-Lab 4

Carlos Puentes
cdpuente@uci.edu
Reader: Comm-Lab 7

Tutors

Matthew Mueller
Tutor: Comm-Lab 11
Jessica Shu
Tutor: Comm-Lab 6
Peng Zhou
Tutor: Comm-Lab 3

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 a Piazza folder).

Instructor Email: I answer e-mail periodically throughout the day (from about 6:30am to 10:00pm). If you have a question that would be of interest to the entire class, please post it on the appropriate Piazza Message Folders (see below).

Piazza Q&A Messages: I have created a class on Piazza and started eight categories of Message Folders (see below). I prefer students ask questions in these Folders, 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 Folders regularly to keep current on their discussions. Avoid duplicate posts: before posting, first check whether another student has already posted on that topic.

When you do post a question, choose the right folder and a clear, specific and descriptive summary. Also, do not post anonymously. I will not answer anonymous questions. As the instructor, I can see who posts every question, but students cannot see this information, if you post "anonymously". It is sometimes hard to ask a good question: clearly stating what you know and zeroing in on what the problem is; spend some time thinking how to describe your problem clearly. "Own" your posting by attaching your name to it.

  1. Folder program (1-5): Ask/answer/discuss questions about the programming assignments: specification, relevant C++, 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).

  2. Folder quiz (1-8): 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).

  3. Folder in_lab (1-2): Ask/answer/discuss questions about the in-lab exams. DO NOT post solutions or any code until after these in-lab exams are finished, but feel free to ask about/discuss all other aspects of the in-lab exams.

  4. Folder C++_and_CLion: Ask/answer/discuss questions about the C++ Programming Language, the CLion Integrated Development Environment, or how to use them together.

  5. Folder lecture_material: Ask/answer/discuss questions about the readings and the materials discussed in class.

  6. Folder midterm: Ask/answer/discuss questions about the midterm exam. DO NOT post solutions or any code until after the midterm exam is finished, but feel free to ask about/discuss all other aspects of the midterm exam.

  7. Folder final: Ask/answer/discuss questions about the midterm exam. DO NOT post solutions or any code until after the final exam is finished, but feel free to ask about/discuss all other aspects of the final exam.

  8. Folder find_programming_partners: Find a programming partner. Relevant information is your Lab (partners should at least have labs meeting at the same time), approximate skill level (best to match with someone 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 (if your dorm/home, say where that is), ...
Feel free to ask questions and answer other students' questions in these Folders (subject to the prohibition of posting code for programs, quizzes, and exams). I will read all Folders 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 Folder in which to put it and the Summary line carefully, so that potential readers see a context and overview of its contents.

In past quarters, Piazza has 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 Folders arise, I will create them: feel free to suggest other Folders to me.

I will not answer questions posted anonymous. Asking questions is an art; think carefully and by posting questions that you take ownership of (with your name) you will improve your ability to post questions. Try state what you understand about the issue, and then ask s specific question. I often find that students answer their own questions, once this are asked to articulate exactly what the know and what they are asking.

Course Email: The instructor, staff, and all students registered for the course can send email to everyone else by emailing the address ics46A-F19@classes.uci.edu. All messages sent via this email address will be archived on the Email Archive 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 Piazza Folders 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 proble, and everyone will know I know about the problem. 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 Piazza or email.


Lecture/Lab Meeting Places and Times

Common Labs will be arranged the first week of class.
These will be staffed by ICS-46A TAs, Readers, and Tutors. Expect a few hours of Common Labs every day.

Lecture/Lab(s) Staff: TA or Reader/Tutor Classroom Days Start Stop
Lecture A Rich Pattis ELH 100 MWF 3:00 pm 3:50 pm
Common Lab 1 Cancelled
Common Lab 2 ICS2 100 Peng Zhou(M)/Sakshi Agarwal(W) MW 12:00 pm 2:00 pm
Common Lab 3 ICS2 100 Sakshi Agarwal(M)/Peng Zhou(W) MW 2:00 pm 4:00 pm
Common Lab 4 ICS2 100 Yuxiang Qian MW 4:00 pm 6:00 pm
Common Lab 5 ICS2 100 Claudio Parra MW 6:30 pm 8:30 pm
Common Lab 6 ICS2 100 Jessica Shu TuTh 10:00 am 12:00 pm
Common Lab 7 ICS2 100 Carlos Puentes II TuTh 12:30 pm 2:00 pm
Common Lab 8 ICS2 100 Justine Koa TuTh 2:00 pm 4:00 pm
Common Lab 9 Cancelled
Common Lab 10 ICS2 100 Andrew Chio TuTh 6:00 pm 8:00 pm
Common Lab 11 ICS2 100 Matthew Mueller F only 11:00 am 2:00 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?"


Bottom Line

As a lecturer 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 Piazza) and grading.