Course #: | 4160; 4162 |
Day/Time: | M-W 12:35 - 1:50; M-W 2:45 - 4:00 |
Classroom: | Crown Center 103 |
Prerequisites: | none |
Instructor: | Dr. Channah Naiman |
email: | [email protected] |
web page: | http://webpages.cs.luc.edu/~cnaiman |
office hours: |
updated within the
first two
weeks |
TA: |
How to
Think Like
a
Computer Scientist Covers the same basics as the Hands-on
Python Tutorial,
but in online book form, to greater depth in a somewhat different order
with a different
simple graphics library. The latest version is for Python
3.X. Extra neat in that you can run programs online and edit
code
in the text.
Software Carpentry is a Python-centered introduction to many subjects, many beyond this course but not far off. The sections that do largely correspond to the Python tutorials are the ones through Functions. They list more methods than the Hands-on Python Tutorial, but with rather limited examples.
Official Python Tutorial for version 3.2 covers a lot. It moves fast for someone with no programming background. Idle links to this.
Wikibooks Non-programmer Tutorial for Python Another introduction to Python basics in different words. No graphics, few major examples, lots of basic syntax.
One notable resource for testing Python code out is for http://www.pythontutor.com/. You run code in your browser step by step and save and email a URL reference to any step.
Tutoring hours by Computer Science TA's (generally first-come-first-serve) is posted at http://www.luc.edu/cs/academics/tutoring/. It should start by the second or third week of the semester. Your best choices for help are the professor and TA for the course, but all TA's should be familiar with most of the course topics. If any tutors you visit are NOT familiar with Python, let me know right away!
The university supports an official Tutoring Center in the Sullivan Center. Their phone extension is 8-7708. Their web site is http://www.luc.edu/tutoring. You may need to make appointments in advance for university tutoring. When consulting the university tutoring center hours, remember that, at most, tutors for Comp 150 are only available during some of those times, due to the personal schedule of the tutor(s).
As of this writing, Sakai will be used for course
announcements,
homework submissions, and grade postings. While the raw
scores
posted on Sakai should be correct (although I have encountered some
problems with that too!), please do not rely upon Sakai's Course Total
calculations. Grades are calculated as specified in this
syllabus. If Sakai presents too many problems, we will switch
to
CourseSites.
There is recent evidence that with all the online resources available, a hybrid approach is useful for on-campus courses. The approach I plan to mostly be doing with you is called flipping: flip when you get most of your presentations and do much of your homework, so the presentations are mostly at your convenience, at your speed, as videos/text on your computer or in a lab, and then in class discuss questions you had on the presentations and do much of the harder creative work of synthesizing and using this information, when you have the most direct support from me, TA's, and classmates. Please give me feedback on how this is going and what you think would improve your experience!
There will be an in-class mini-lecture to introduce new topics. In addition, if three people ask the same question, I will offer an explanation to the class on that topic. In general, if you feel that you can benefit from more explanation, sit on the same side as the instructor's desk If you would prefer to continue working on your own, sit on the opposite side of the room. In this way, those students who want additional lecture support can have it with minimal intrusion to those students who would prefer to work on their own.
For
the non-Python topics, there will be short demonstrations/labs in
class, in which you are expected to participate.
You are
responsible
for
what
goes on in class, even if some of the activity may not be
covered in the class notes. If
you choose not to attend, that is your prerogative; however, make sure
that you find out what you missed.
I am expecting you to look at assigned presentations before
class,
but if you want to
check on
something in a video during class, remember to bring headphones!
To avoid bothering others in labs, the lab machine sound only works
through separate speakers. (Use headphones if you listen
on
your own notebook computer in class, too.)
Class time is valuable and in short supply, so there are some tradeoffs in this approach. You cannot immediately get a question answered by me in the middle of a video presentation. That is offset by the fact that there are several days at least to take in the videos, so if you attend to them early, you have time to get emailed feedback before you finish viewing. It would be helpful if you kept a list of questions as you watch the videos. You may find that some of your questions will be answered as you continue to wathc the videos, and some you will want to bring to class.
Cell Phones: Only
you know
the relative importance of any particular
cell phone call, and whether it is important for you to answer a call
imediately rather than later. I do want you to be respectful of my
class and disrupt it as little as is practical. If you get cell phone
calls with fair frequency, be sure to have the ring muted before coming
to class. If you rarely get calls, you might not mute it ahead, and
your cell phone may happen to ring. Get rid of the noise as soon as
possible, and do not get flustered. I assume you will move outside the
classroom for a conversation. If you get fairly frequent calls that you
are likely to consider important answering, sit in a place where your
exit and re-entrance are as unobtrusive as possible.
Programming
Assignments: For each tutorial, you must submit
to Sakai a
zip file of the required exercises for that chapter. The
exercises are mentioned as you encounter them in the
tutorials.
In addition, a list of the exercises and the due dates for each
assignment are linked to on the Course
Schedule.
Homework
Assignments:
There are also several non-programming homework assignments.
The links to these homeworks and their due dates are on the
Course Schedule(below). Pip Program (assembly-language
programming) and Logic Gates are listed. We may also have an
additional assignment on database queries.
Pair Programming: It has been demonstrated recently that Pair Programming, two people collaborating on one problem with one person coding while the other looks on, whether beginner students or seasoned professionals, allows projects been done better and faster with more confidence, and also that students learn at least as well and have more enjoyment in the process. We will have the option to do pair programming in this course for in-class work and programing assignments. (Your exams will NOT be in pairs however!) Read the page on how to make pair programming work and also the page of administrative guidelines for pair programming (mostly for when it does not work out as planned!).
Project: You will form teams of two or three, to complete a project, which is a major programming assignment in Python. Some suggestions for the project are posted here.If you must miss an exam, let me know well in advance. Then if
you
have
a good reason we can possibly make other arrangements. I have little
sympathy for people who inform me after the fact for no good reason.
Exam absences will be veririfed. If they can't be verified,
you
will not be excused.
*No second try*: If you have an excuse for not being prepared to take an exam, but decide to take it anyway, you don't get to change your mind after you see a poor grade. Being sick is not a way to get one more chance than everyone else. I may allow you to delay an exam due to illness, but I will not let you be reexamined due to a poor grade.
Religious Holidays:Students with religious holiday conflicts: Please
let me know
within the first two weeks of class if you have a religious holiday
conflict with any exam or homework due date, so that we can plan on a
makeup schedule.
Students with Disabilities: If you have a documented disability and wish to discuss academic accommodations, please contact the Services for Students with Disabilities Office (773-508-3700 and [email protected]) as soon as possible. Students with documented disabilities who provide me with a letter from the SSWD office will be fully accommodated as per the terms of the letter. Students who are allowed to take their exams in the SSWD office are encouraged to do so. Should you choose to take the exam in the classroom, I cannot guarantee that the classroom environment will be quiet enough to provide you with the environment that your disability may require.
Students with Sponsorships and Scholarships: If you require a certain grade in order to satisfy a sponsor or a scholarship requirement, please be sure to monitor your grade on Sakai. I will consider only your performance in this course in calculating grades, using the grading rubric posted in this syllabus. If you cannot achieve a minimum grade that is required by a sponsor or a scholarship, I will not change your grade to help you meet that requirement. This would be unfair to other students, and not reflecive of your performance in this course. You are reponsible to monitor your grade and to keep apprised of the withdrawal dates posted by the registrar.Tutorial, Chapter 1 Exercises | 40 |
Tutorial, Chapter 2 Exercises | 50 |
Tutorial, Chapter 3 Exercises | 60 |
Tutorial, Chapter 4 Exercises | 30 |
Exam #1 | 150 |
Exam #2 | 200 |
Quiz Chapter 4 |
50 |
Final Exam | 250 |
Python Project | 100 |
Pip Program | 60 |
Gates Homework | 60 |
Total | 1050 |
A |
93 |
A- |
90 |
B+ |
87 |
B |
83 |
B- |
80 |
C+ |
77 |
C |
73 |
C- |
70 |
D+ |
67 |
D |
63 |
Tutorial and Videos: An important component of this course involves programming using the Python language. We will be using the Hand-on Python Tutorials designed specifically for this course by Professor Andrew Harrington. The tutorials are availabe in PDS format (you may print them), or browsable format online. The accompanying videos are numbered to match the section numbers in the tutorials. Example files are referenced in the tutorials, and you may download them here.
The dates below give the sequence and a general idea of the time spent, though we may get ahead or behind this time schedule at different points, depending on the needs of the class. Links for assignments and exam reviews may be inaccurate (not updated) or missing until their introduction in class.
Under Activities Prep: means preparation done before class, with your questions always noted for discussion in class! Sometimes extra In class activities (besides questions and active use of preparatory reading) are mentioned. Written assignments should be turned in to Blackboard by the end of the day listed (11:59PM), unless otherwise noted. The section on Course Materials discusses how to obtain the videos for the listed sections.Date | Activities | Assignments |
8/25 |
In class:
Syllabus, Pair Programming:
the idea
and administration,
introductory notes
Form pairs, pictures, introduce Hands-on Python Tutorial, Example Files Followup: make sure you have completely read the administrative documents introduced above. |
|
8/27 |
Prep: Hands-on Python Tutorial through Input/Output 1.10 (most video for one class, with all the introductory material); bring flashdrive! | |
9/01 |
Labor Day--no
classes |
|
9/03 |
Prep: Python Tutorial functions 1.11, dictionaries 1.12 | |
9/08 |
Prep: Python Tutorial 1.13 Loops | |
9/10 |
Prep: Python Tutorial 1.14, hw questions ready! | |
9/15 |
Prep:
Tutorial 2.1 -
2.2 (2.3) |
Chapter 1 Exercises |
9/17 |
Prep:
Tutorial 2.4 ,
2.4.1, 2.4.2, 2.4.5 (2.4.5 only in text) In class: Review materials for Exam #1 |
|
9/22 |
Prep: Tutorial 2.4.6-8, 2.4.10 (read/demo ) | |
9/24 |
Prep: Tutorial 2.5 | |
9/29 |
Exam 1 (review materials) | Chapter 2 Exercises |
10/01 |
Discuss Python
Project (finalize teams) Prep: Python Tutorial Chapter 3 through 3.1.6 |
|
10/08 | Prep: Python
Tutorial
3.1.6 - 3.1.7 |
|
10/13 |
Prep: Python Tutorial 3.1.7 - 3.3.1 | |
10/15 |
Prep:
Python Tutorial
3.3.2. - 3.3.4 through
bounceWhile.py |
|
10/20 |
Chapter 3 Review and
Exam Review |
Chapter 3.1 Exercises |
10/22 |
Chapter 3 work and examples | |
10/27 |
Prep:
Python
Tutorial Chapter 4 through 4.3, web programming |
|
10/29 |
Exam 2 (review materials) |
|
11/03 |
Prep: Python Tutorial 4.4.4 | Submit any independent plan for the Python Project |
11/05 |
Prep: Bases and
Binary
Arithmetic in binary web
notes (videos N2, N3A, N3B, N3C-E) |
Chapter 3.2--3.3.4 Exercises |
11/10 |
Prep:
Pip assembler
through 4E
in web
notes (videos N4, N4A, N4B, N4C, N4D, N4E) |
|
11/12 |
Prep: Pip If-else in assembler (Videos N4F, N4G, N4H) | Chapter 4 Exercises |
11/17 |
Homework and Projects | |
11/19 |
Prep: gatesand Boolean algebra (N5A-D) through Gates Applet | Pip Program |
11/24 |
Prep: Gates and Boolean
Algebra
(N5E-I) project, show project steps completed, in class |
Gates HW due in class, or by midnight in Blackboard, part possibly scanned. |
11/26 |
Thanksgiving |
|
12/01 |
Work on Project | |
12/03 |
Last class; Review; possible Database lab |
Python Project Due |
Final Exam: COMP 150-001: Thursday,
12/11, 1:00-3:00
(review
materials) Final Exam: COMP 150-003: Friday, 12/12, 9:00 - 11:00 (review materials) |
8/25 | Fall semester begins |
8/25 |
Late
Registration
Begins |
9/01 |
Labor Day |
9/02 |
Last day to
withdraw without a W |
9/07 |
Last day to
withdraw with 100%
reimbursement |
9/08 |
Last day to switch
from Credit
to Audit or Audit to Credit |
9/21 |
Last day to
withdraw with 50%
reimbursement |
9/28 |
Last day to
withdraw with 20%
reimbursement |
10/06-10/07 |
MId-Semester Break |
10/06 |
Early Alert begins |
10/24 |
Early Alert ends |
10/31 |
Last day to
withdraw with a
grade of W |
11/03 |
Spring Registration
Begins |
11/26-11/29 |
Thanksgiving Break |
12/06 |
Classes End |
12/08-12/13 |
Final Exams |
12/10 |
Study day; Finals
resume at 4:15 |
12/15-12/16 |
Final Exams |