Comp 150
Introduction to Computing
Fall, 2017

Course #: 3749
Day/Time: MWF 12:35 - 1:25
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:



Syllabus Index
Objectives Exams  
Texts and Software Grades
Tutoring Programming Environment
Sakai
Academic Honesty
Class Format, Attendance
Religious Holidays
Homework/Assignments Students with Disabilities
Course Schedule Important Dates


Course Objectives:

Course Materials:  There is no specific text for this course.  Rather, we will be using resource materials available online.
Other Free Online References for Python:  All except the official Python Tutorial are intended for people with no programming background.  The others, however, tend to be for Python 2.X, which has slightly different syntax for reading from the keyboard (raw_input), printing (a statement, not a function), and they use an old form of  division where / can mean either the // or / of Python 3.2, depending on the types involved.

Tutoring Assistance (free!):

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).  In general, COMP students have done better with the department's tutoring service.


Sakai:

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!! 

Course Format:

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.

Homeworks/Assignments:

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 can be found here. This will be discussed further in class.

-->Important note about team submissions:  If I announce that an assignment may be worked on in a team (for instance, pair programming), each team member must submit something on Sakai.  If you are the team member submitting the assignment, you must also submit a note in the Assignment comment box on Sakai, listing each team member for whom you are submitting the assignment.  If someone else is submitting the assignment, you must submit a note in the Assignment comment box telling me who is submitting the assignment for your team.  Do not assume that just because your team member submitted the assignment that you will automatically get credit.  You MUST submit a comment letting me know that it was submitted on your behalf.
-->Even more important note about the group project:  You are expected to fully participate in the group project.  Your individual grade may be modified depending upon your contribution to the project and your cooperative and substantive participation.  This will be assessed by instructors walk-throughs during class and by the Team Pariticpation form completed by each team member.

Programming Environment:
We will be programming in Python, available in the University Windows labs, and as a download to your own computer. There are several choices based on program version and operating system. You should get Python version 3.3.2 or greater for your operating system from the central site www.python.org/download. Mac users, also see this page that is referenced on the download page - you may need a second download, Python comes with the graphical interface, Idle, which we will use. The latest version for Windows and Mac is 3.4.



Flash Drives or other storage

The University computers labs provide Computer Science students with permanent storage on P: drive. If you use both computer lab machines and other machines, or just share with a partner, you will want to take all of your files with you. You have several alternatives:

Get a USB 2.0+ flash drive** ($5-$30 depending on the capacity) and use it every time you are in the lab. It takes almost no time to insert and remove, and it will have everything in one place.

Flash drive are very small, like a finger, and that makes them easy to forget and leave behind. I have gotten a flash drive returned to me several times because I write my email address on the outside of it. I suggest you do the same.

Save on some Internet site like Box or Google Drive.

In a pinch, send email to yourself with attachments.

Academic Honesty:

The penalty for cheating may be anywhere from a 0 on an assignment to a grade of "F" in this course. The appropriate dean will be informed in writing of any cheating incidents. No exceptions, for any reason.  Students are expected to have read the university's statement on academic integrity. This policy applies to the course, except that the minimum penalty is a 0 (not an F) on the assignment.   The Academic Grievance procedure is listed  here.

Cheating consists of, but is not limited to:

Help from any source is fine concerning



Exams:  There are three exams.  Tentative dates are:
Exams will cover material discussed in class, reading material on the web, and assignments. Exams will always be cumulative.  You are allowed at  two 8.5 x 11 inch sides of notes for exams, but no computer or calculator. I emphasize having you process and use information, not regurgitate facts -- put the facts you most forget and still need in your notes. This is very different than many of the requirements some students had in high school, where fact recall may have been key. What you want most to remember is general patterns about the process of breaking problems into pieces and identifying the right process for each piece. The pieces may come in all sorts of combinations, so remembering whole rote sequences is not likely to be helpful. Do not depend on it.

There is a review for each exam posted on the Course Schedule.

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.


Grading:


Tutorial, Chapter 1 Exercises 45
Tutorial, Chapter 2 Exercises 45
Tutorial, Chapter 3 Exercises 60
Tutorial, Chapter 4 Exercises 30
Exam #1 150
Exam #2 200
Final Exam 250
Python Project 150
Pip Program 60
Gates Homework 60
Total 1050



Course grades are assigned as follows:
A
93
A-
90
B+
87
B
83
B-
80
C+
77
C
73
C-
70
D+
67
D
63


Course Components:

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.


Course Schedule:

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 Sakai 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.
Week
Date Activities Assignments
1 8/24
8/26
8/28
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.

Prep: Hands-on Python Tutorial through Input/Output 1.10 (most video for one class, with all the introductory material); bring flashdrive!
2
8/31
9/02
9/04
Catch up and questions: 1.1 - 1.10

Prep: Python Tutorial  functions 1.11, dictionaries 1.12
3
9/07
Labor Day, no school

9/09
9/11
Prep: Python Tutorial  1.13 Loops
Prep: Python Tutorial 1.14, hw questions ready!
4
9/14
9/16
9/18
Prep: Tutorial 2.1 - 2.2 (2.3)
Chapter 1 Exercises
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

5
9/21
9/23
9/25
Prep:  Tutorial 2.4.6-8, 2.4.10 (read/demo )
Prep:  Tutorial 2.5
6
9/28
Exam 1 (review materials)  ("What is printed?")
Chapter 2 Exercises
9/30
Exam #1, continued  (Programming and short answer)

10/02
Discuss Python Project  (finalize teams)
Prep
:  Python Tutorial  Chapter 3 through 3.1.6

7
10/05
Mid-semester break, no school

10/07
10/09
Prep: Python Tutorial 3.1.6 - 3.1.7

8
10/12
10/14
10/16
Prep: Python Tutorial 3.1.7 - 3.3.1
Prep: Python Tutorial 3.3.2. - 3.3.4 through bounceWhile.py

9
10/19
10/21
10/23
Chapter 3 Review and Exam Review
Chapter 3.1 Exercises
Chapter 3 work and examples
10
10/26
Prep:  Python Tutorial Chapter 4 through 4.3, web programming

10/28
10/30
Exam 2 (review materials)
11
11/02
Prep: Python Tutorial 4.4.4 Submit any independent plan for the Python Project  
11/04
11/06
Prep: Bases and Binary Arithmetic in binary web notes
(videos N2, N3A, N3B, N3C-E)
Chapter 3.2--3.3.4 Exercises
12
11/09
11/11
11/13
Prep: Pip assembler through 4E in web notes
(videos N4, N4A, N4B, N4C, N4D, N4E)

Prep: Pip If-else in assembler (Videos N4F, N4G, N4H) Chapter 4 Exercises
13
11/16
Homework and Projects
11/18
11/20
Prep: gatesand Boolean algebra (N5A-D) through Gates Applet Pip Program
14
11/23
PrepGates and Boolean Algebra (N5E-I)
project, show project steps completed, in class
Gates HW due in class, or  by midnight  in Sakai, part possibly scanned.
11/25
11/27
Thanksgiving
15
11/30
Proect Presentations

12/02
Project Presentations


12/04
Project Presentations
Python Project Due
16
12/11
Final Exam:  Friday, 12/11, 9:00 - 11:00 a.m.(review materials) 

Important Dates:
Here are some dates from the LUC academic calendar:

Open registration ends
Sun
Aug 23 (midnight)
Fall Semester Begins. Late and Change of Registration begins - Late registration fee applies Mon
Aug 24
Late and change registration ends.  Last day to withdraw with a mark of "W".
Mon
Aug 31
Labor Day weekend begins
Fri
Sept 4
Last day to drop classes with a Bursar credit of 100%
Sun
Sept 6
Last day to convert from credit to audit or vice versa.
Last day to request or cancel pass/no pass option.
Tues
Sept 8
Last day to drop classes with a Bursar credit of 50%
Sun
Sept 20
Last day to drop classes with a Bursar credit of 20% (zero credit thereafter) Sun Sept 27
Mid-semester break--no classes Mon-Tues Oct 5 - 6
Early alert process begins on Mon week 7 and runs through Fri of week 9.
Mon
Oct 5
Last day (5:00 p.m.) to withdraw with a grade of "W".  After this date, the penalty grade of "WF" is assigned.
Fri
Oct 30
Spring Semester UGRD Registration begins
Mon
Nov 2
Thanksgiving Break:  no classes
Wed - Sat
Nov 25 - 28
Fall Semester classes end
Sat
Dec 5
Final Examinations

Dec 7 - 12