<commit_before>---
layout: page
title: Syllabus
permalink: /syllabus/
---
- Day/Time:	MW 12:10 - 1:25
- Classroom:	Crown Center 105
- Prerequisites:	none
- Instructor:	 Dr. <NAME>
- email:	<<EMAIL>>
- web page:	<http://hwheeler01.github.io/comp150>
- office hours: Tuesdays 2:30 - 4:30 in <a href="http://www.luc.edu/campus_reservations/lsb.shtml">LSB</a> 324
- TA: <NAME> <<EMAIL>>

<table style="width: 459px; height: 182px;" class="docutils" border="1">
  <caption><b>Syllabus Index</b></caption> <colgroup><col width="50%"><col width="50%"></colgroup> <tbody valign="top">
    <tr>
      <td><a class="reference internal" href="#objectives">Objectives</a></td>
      <td><a class="reference internal" href="#exams">Exams</a></td>
    </tr>
    <tr>
      <td><a class="reference external" href="#texts">Course Materials</a></td>
      <td><a class="reference external" href="#grades">Grades</a></td>
    </tr>
    <tr>
      <td><a class="reference external" href="#env">Programming Environment</a></td>
      <td><a class="reference external" href="#sakai">Sakai<br>
    </tr>
    <tr>
      </a></td>
      <td><a class="reference external" href="#honesty">Academic Honesty</a></td>
      <td><a class="reference external" href="#format">Class Format, Attendance<br>
    </tr>
    <tr>
      <td><a class="reference external" href="#assignments">Homework/Assignments</a></td>
      <td><a class="reference internal" href="#disabilities">Students with Disabilities</a></td>
    </tr>
    <tr>
      <td style="vertical-align: top;"><a class="reference external" href="#schedule">Course Schedule</a></td>
      <td style="vertical-align: top;"><a class="reference external" href="#dates">Important Dates</a> </td>
    </tr>
  </tbody>
</table>

<span style="font-weight: bold;"><a name="objectives"></a>Course Objectives: </span>

- To introduce the concepts of algorithms and their analysis and design in the context of a simple yet powerful computer language, Python
- To implement Python programs with appropriate use of selection repetition functions and data structures
- To learn how to add graphical effects to programs
- To study some of the basic ideas behind computing -- how data are represented in a computer; how a computer processor is built up from simple circuits; how the processor is controlled through low level languages; and the transition from low level languages to high level languages like Python
- To use HTML to construct a web page containing forms and write a Python CGI script to dynamically process information placed in a web form


<span style="font-weight: bold;"><a name="texts"></a>Course Materials: </span>

There is no specific text for this course. Rather, we will be using free online materials. See <a href="http://hwheeler01.github.io/comp150/resources/">Resources</a>.

<p><a name="sakai"></a><span style="font-weight: bold;">Sakai:</span></p>

<p>Sakai will be used for course announcements, homework submissions, and grade postings. While the raw scores posted on Sakai should be correct, please do not rely upon Sakai's Course Total calculations. <span style="font-style: italic;">Grades are calculated as specified in this syllabus.</span>&nbsp; <br>

</p>

<p style="font-weight: bold;"><a name="format"></a>Course Format:</p>

Much of this course will be *flipped* from the traditional course format. That is, the presentations are mostly at your convenience, at your speed, as videos/text on your computer outside of class. In class, we will discuss questions you have 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, the TA, and classmates. </span></p>

As you work through the <a href="http://anh.cs.luc.edu/python/hands-on/3.1/index.html">Hand's-on Python Tutorial</a> at the beginning of the semester, come to class prepared with questions on the <a href="http://hwheeler01.github.io/comp150/syllabus/#schedule">day's topics</a>. In general, if you feel that you can benefit from more explanation on a topic, 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.

You are responsible for what goes on in class; some of the activity may not be covered in the class notes. For the non-Python topics later in the semester, there will be short demonstrations/labs in class, in which you are expected to participate. I expect 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.*

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. I suggest keeping a list of questions as you watch the videos. You may find that some of your questions will be answered as you continue to watch the videos, and some you will want to bring to class.

<span style="font-weight: bold;"><a name="assignments"></a>Homeworks/Assignments:</span>

*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, each due date and a link to a list of the required exercises are on the <a class="reference external" href="#schedule">Course Schedule</a>.<br>

*Homework Assignments:* There are also several non-Python homework assignments, including Pip Program (assembly-language programming) and Gates Homework. The links to these homeworks and their due dates are on the <a class="reference external" href="#schedule">Course Schedule</a>.

*Pair Programming:* Pair Programming is when two people collaborate on one problem with one person coding while the other looks on. For novices and professionals alike, pair programming often leads to better, faster, and more enjoyable project completion. We will have the option to do pair programming in this course for in-class work and programming assignments. **However, your exams will NOT be in pairs!** Read the page on how to make pair programming work and requirements for using it in this class <a href="{{ site.baseurl }}/pairprogram">here</a>.

*Python 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 <a href="http://hwheeler01.github.io/comp150/HW/Project.html">here.</a> This will be discussed further in class.<br>


***Important note about pair/team submissions:*** For pair/team assignments, only one person needs to submit the archive of programs (everyone should have their own copy for reference), but each team member must submit their own independently written `log.txt` file with the requested information for that assignment. 

***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 instructor walk-throughs during class and by the *Team Participation* form completed by each team member.<br>

<span style="font-weight: bold;"><a name="env"></a>Programming Environment: </span><br>

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 the latest version 3.5.1 for your operating system from the central site <a href="https://www.python.org/downloads/">https://www.python.org/downloads/</a>. Python comes with the graphical interface, Idle, which we will use. 

- Recommended storage options for course work:
	- Cloud-based storage like Box or Google Drive
	- USB Flash Drive (write your email address on it in case you lose it)


<span style="font-weight: bold;"><a name="honesty"></a>Academic Honesty: </span><br>

Plagiarism and cheating will not be tolerated (see <a href="http://www.luc.edu/academics/catalog/undergrad/reg_academicintegrity.shtml">University Policy</a>) and will be
reported to the college. STUDENTS FOUND TO PRESENT SOMEONE ELSE’S WORK AS
THEIR OWN WILL **RECEIVE ZERO POINTS FOR THE HOMEWORK/EXAM**. ANY
STUDENT WHO REPEATS SUCH AN ACTION WILL RECEIVE A FAILING GRADE (F) FOR THE
COURSE.

Cheating consists of, but is not limited to:

- Using or copying an outside person's work on an exam or assignment in any fashion. "Outside person" includes a person who put something on a web page. Don't copy others' work from the web!
- Others' work includes outlines, pseudocode, code, and documentation.
- Allowing your own work to be copied or used by an outside person.
- Submitting as your own work something that has been written by an outside person (or web site).
- Using any unauthorized reference on an exam or assignment.
- Not acknowledging and describing in writing any help you received on an assignment.
- If you are working on a pair or group project, an "outside person" only refers to people other than your partner or team.
- Note that cheating goes both ways: giving and receiving.
- Consultation is allowed with the TA, tutors and me. If you consult with the tutors and/or with me, still make a comment at the top of your work about the substance and depth of the help.

Help from any source is fine concerning:

- The meaning of program specifications (not the plan for the solution or the actual solution).
- The tools used to write programs. Feel free to ask questions on the programming environment you use and the use of the debugger.
- The restrictions of the current programming language syntax.


<span style="font-weight: bold;"><a name="exams"></a>Exams:</span><span style="font-style: italic;"></span>  

There are three exams. Dates are:

- Exam #1: Feb 24
- Exam #2: Mar 23
- Final Exam: *Friday* May 6, 9:00 - 11:00 a.m.<br>

Exams will cover material discussed in class, reading material on the web, and assignments. *Exams will always be cumulative.* You are allowed one 8.5 x 11 inch piece of paper (both sides) with notes for each exam, 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 will be a review for each exam posted on the <a class="reference external" href="#schedule">Course Schedule</a> a week before the exam.<br>

**MISSING EXAMS** WILL ONLY BE PERMITTED UNDER SPECIAL CIRCUMSTANCES (e.g., medical emergencies, educational events, court dates, religious holidays, etc.). **ARRANGEMENTS MUST BE MADE IN ADVANCE** WHEN APPLICABLE AND A NEW EXAM WILL BE ADMINISTERED. DOCUMENTATION OF THE ABSENCE IS REQUIRED.

<span style="font-weight: bold;"><a name="disabilities"></a>Students with Disabilities:</span>&nbsp; 

Any student with special needs or difficulties in learning and completing course assignments is strongly encouraged to contact the instructor as soon as possible. Please refer to the Student Handbook for student rights and <a href="http://www.luc.edu/sswd/">available resources</a> pertaining to assistance with special needs or disabilities.

<span style="font-weight: bold;">Students with Sponsorships and Scholarships:&nbsp;</span>

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 <a href="http://www.luc.edu/academics/schedules/fall/academic_calendar.shtml">withdrawal dates</a> posted by the registrar.<br>

<span style="font-weight: bold;"><a name="grades"></a>Grading:</span><br>

| **Assignment** | **Points**|
| :------------- | ---------:|
| Tutorial, Chapter 1 Exercises | 45 |
| Tutorial, Chapter 2 Exercises | 45 |
| Tutorial, Chapter 3.1 Exercises | 30|
| Tutorial, Chapter 3.2-3.3.4 Exercises | 30|
| Tutorial, Chapter 4 Exercises | 30|
| Pip Program | 60 |
| Gates Homework | 60 |
| EXAM 1 | 150 |
| EXAM 2 | 200 |
| Python Project | 150 |
| FINAL EXAM | 250 |
| **TOTAL** | **1050**|

- Note that there are 1050 total possible points. Your grade will be calculated as the number of points you receive out of 1000. Fifty extra points are built-in, to cover "down days" or to be used for extra credit.
- No further accommodations will be provided. If your personal circumstances are such that you have to miss more than 50 points worth of material, please consider taking the course another semester.
- There are a few extra credit homework problems in some of the assignments. No further extra credit opportunities will be provided. It is neither practical nor fair to the other students.
- ALL ASSIGNMENTS ARE DUE VIA SAKAI BY 11:00 PM ON THE DUE DATE. **LATE ASSIGNMENTS WILL NOT BE ACCEPTED.** That's what the extra fifty points are for. 


Course grades are assigned according to the following percentage scale:<br>

| **Grade** | **Minimum Percent** |
| :--- |:---:|
|A | 93|
|A-| 90|
|B+| 87|
|B | 83|
|B-| 80|
|C+| 77|
|C | 73|
|C-| 70|
|D+| 67|
|D | 63|


<br>



<span style="font-weight: bold;"><a name="schedule"></a>Course Schedule:</span><br>



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.


In the Activities column **"Prep:"** means preparation done *before* class with your questions ready for discussion in class! See <a href="http://hwheeler01.github.io/comp150/resources/">Resources</a> for how to obtain the videos for the listed sections. 

| **Date**      | **Activities**    | **DUE by 11:00 PM via Sakai** |
| ------------- |:-------------:| :-----|
|Jan 20|Introductory notes, syllabus, <a href="{{ site.baseurl }}/pairprogram">pair programming</a>, form pairs, introduction to <a target="_blank" href="http://anh.cs.luc.edu/python/hands-on/3.1/index.html">Hands-on Python Tutorial</a>, <a href="http://anh.cs.luc.edu/python/hands-on/3.1/examples.zip">example files</a> **Follow up:** make sure you have completely read the syllabus.|
|Jan 25|**Prep:** Hands-on Python Tutorial <a href="http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/index.html">Context 1.1 through Input/Output 1.10</a> (most video for one class, with all the introductory material)|
|Jan 27|Catch up and questions: Python Tutorial 1.1 - 1.10 |
|Feb 1|**Prep:** Python Tutorial Functions 1.11, Dictionaries 1.12, Loops 1.13 |
|Feb 3|**Prep:** Python Tutorial 1.14 - 1.15, homework questions ready! |<a href="http://hwheeler01.github.io/comp150/HW/CheckOnTutorial-1.html">Chapter 1 exercises</a>|
|Feb 8|**Prep:** Python Tutorial 2.1 - 2.3 | |
|Feb 10|**Prep:** Python Tutorial 2.4 , 2.4.1, 2.4.2, 2.4.5  |
|Feb 15|**Prep:** Python Tutorial 2.4.6-8, 2.4.10 (read/demo) |
|Feb 17|**Prep:** Python Tutorial 2.5 |<a href="http://hwheeler01.github.io/comp150/HW/CheckOnTutorial-2.html">Chapter 2 exercises</a>|
|Feb 22|Review for Exam 1 | |
|Feb 24|**EXAM 1** |
|Feb 29|**Prep:** Python Tutorial  Chapter 3 through 3.1.6 |
|Mar 2|**Prep:** Python Tutorial 3.1.6 - 3.1.7 | <a href="http://hwheeler01.github.io/comp150/HW/CheckOnTutorial-3.html">Chapter 3.1 exercises</a> |
|Mar 7| *No class: SPRING BREAK*|
|Mar 9| *No class: SPRING BREAK* |
|Mar 14|Discuss Python Project  (finalize teams) **Prep:** Python Tutorial 3.1.7 - 3.3.1 |
|Mar 16|**Prep:** Python Tutorial 3.3.2 - 3.3.4 through bounceWhile.py|<a href="http://hwheeler01.github.io/comp150/HW/CheckOnTutorial-3.html">Chapter 3.2 - 3.3.4 exercises</a>|
|Mar 21|Review for Exam 2 ||
|Mar 23|**EXAM 2** |
|Mar 28| *No class: EASTER BREAK* |
|Mar 30|**Prep:** Python Tutorial 4.1 - 4.3| Submit plan for the <a href="http://hwheeler01.github.io/comp150/HW/Project.html">Python Project</a> |
|Apr 4|**Prep:** Python Tutorial 4.4.4 | <a href="http://hwheeler01.github.io/comp150/HW/CheckOnTutorial-4.html">Chapter 4 exercises</a>|
|Apr 6|**Prep:** Binary Arithmetic in <a href="http://hwheeler01.github.io/comp150/ClassNotes.html">Class Notes</a> Sections 2-3F (videos N2, N3A, N3B, N3C-E) ||
|Apr 11|**Prep:** Pip Assembler in <a href="http://hwheeler01.github.io/comp150/ClassNotes.html">Class Notes</a> Sections 4A-E (videos N4, N4A, N4B, N4C, N4D, N4E)|
|Apr 13|**Prep:** Pip Assembler in <a href="http://hwheeler01.github.io/comp150/ClassNotes.html">Class Notes</a> Sections 4F-H (videos N4F, N4G, N4H) | <a href="http://hwheeler01.github.io/comp150/HW/PipPrograms.html">Pip Program</a> |
|Apr 18|**Prep:** Boolean Algebra, Truth Tables, and Digital Circuits in <a href="http://hwheeler01.github.io/comp150/ClassNotes.html">Class Notes</a> Sections 5A-D (videos N5A-D)|
|Apr 20|**Prep:**  Boolean Algebra, Truth Tables, and Digital Circuits in <a href="http://hwheeler01.github.io/comp150/ClassNotes.html">Class Notes</a> Sections 5E-I (videos N5E-I) **In class:** show project steps completed | <a href="http://hwheeler01.github.io/comp150/HW/Gates.html">Gates Homework</a> |
|Apr 25| **Project Presentations** |
|Apr 27| **Project Presentations**, Review for Final Exam| <a href="http://hwheeler01.github.io/comp150/HW/Project.html">Python Project</a> |
|May 6| **FINAL EXAM: Friday May 6, 9:00-11:00 AM** |

<span style="font-weight: bold;"><a name="dates"></a>Important Dates:<br>

See the <a href="http://www.luc.edu/academics/schedules/spring/academic_calendar.shtml">Loyola academic calendar</a> for registration and withdrawal dates. 
<br>
<br>
*This syllabus is subject to change during the course at the discretion of the instructor.*
<commit_msg>condense syllabus heade<commit_after>---
layout: page
title: Syllabus
permalink: /syllabus/
---
- Day/Time:	MW 12:10 - 1:25
- Classroom:	Crown Center 105
- Prerequisites:	none
- Instructor:	 Dr. <NAME> <<EMAIL>>
- Website:	<http://hwheeler01.github.io/comp150>
- Office Hours: Tuesdays 2:30 - 4:30 in <a href="http://www.luc.edu/campus_reservations/lsb.shtml">LSB</a> 324
- TA: <NAME> <<EMAIL>>

<table style="width: 459px; height: 182px;" class="docutils" border="1">
  <caption><b>Syllabus Index</b></caption> <colgroup><col width="50%"><col width="50%"></colgroup> <tbody valign="top">
    <tr>
      <td><a class="reference internal" href="#objectives">Objectives</a></td>
      <td><a class="reference internal" href="#exams">Exams</a></td>
    </tr>
    <tr>
      <td><a class="reference external" href="#texts">Course Materials</a></td>
      <td><a class="reference external" href="#grades">Grades</a></td>
    </tr>
    <tr>
      <td><a class="reference external" href="#env">Programming Environment</a></td>
      <td><a class="reference external" href="#sakai">Sakai<br>
    </tr>
    <tr>
      </a></td>
      <td><a class="reference external" href="#honesty">Academic Honesty</a></td>
      <td><a class="reference external" href="#format">Class Format, Attendance<br>
    </tr>
    <tr>
      <td><a class="reference external" href="#assignments">Homework/Assignments</a></td>
      <td><a class="reference internal" href="#disabilities">Students with Disabilities</a></td>
    </tr>
    <tr>
      <td style="vertical-align: top;"><a class="reference external" href="#schedule">Course Schedule</a></td>
      <td style="vertical-align: top;"><a class="reference external" href="#dates">Important Dates</a> </td>
    </tr>
  </tbody>
</table>

<span style="font-weight: bold;"><a name="objectives"></a>Course Objectives: </span>

- To introduce the concepts of algorithms and their analysis and design in the context of a simple yet powerful computer language, Python
- To implement Python programs with appropriate use of selection repetition functions and data structures
- To learn how to add graphical effects to programs
- To study some of the basic ideas behind computing -- how data are represented in a computer; how a computer processor is built up from simple circuits; how the processor is controlled through low level languages; and the transition from low level languages to high level languages like Python
- To use HTML to construct a web page containing forms and write a Python CGI script to dynamically process information placed in a web form


<span style="font-weight: bold;"><a name="texts"></a>Course Materials: </span>

There is no specific text for this course. Rather, we will be using free online materials. See <a href="http://hwheeler01.github.io/comp150/resources/">Resources</a>.

<p><a name="sakai"></a><span style="font-weight: bold;">Sakai:</span></p>

<p>Sakai will be used for course announcements, homework submissions, and grade postings. While the raw scores posted on Sakai should be correct, please do not rely upon Sakai's Course Total calculations. <span style="font-style: italic;">Grades are calculated as specified in this syllabus.</span>&nbsp; <br>

</p>

<p style="font-weight: bold;"><a name="format"></a>Course Format:</p>

Much of this course will be *flipped* from the traditional course format. That is, the presentations are mostly at your convenience, at your speed, as videos/text on your computer outside of class. In class, we will discuss questions you have 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, the TA, and classmates. </span></p>

As you work through the <a href="http://anh.cs.luc.edu/python/hands-on/3.1/index.html">Hand's-on Python Tutorial</a> at the beginning of the semester, come to class prepared with questions on the <a href="http://hwheeler01.github.io/comp150/syllabus/#schedule">day's topics</a>. In general, if you feel that you can benefit from more explanation on a topic, 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.

You are responsible for what goes on in class; some of the activity may not be covered in the class notes. For the non-Python topics later in the semester, there will be short demonstrations/labs in class, in which you are expected to participate. I expect 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.*

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. I suggest keeping a list of questions as you watch the videos. You may find that some of your questions will be answered as you continue to watch the videos, and some you will want to bring to class.

<span style="font-weight: bold;"><a name="assignments"></a>Homeworks/Assignments:</span>

*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, each due date and a link to a list of the required exercises are on the <a class="reference external" href="#schedule">Course Schedule</a>.<br>

*Homework Assignments:* There are also several non-Python homework assignments, including Pip Program (assembly-language programming) and Gates Homework. The links to these homeworks and their due dates are on the <a class="reference external" href="#schedule">Course Schedule</a>.

*Pair Programming:* Pair Programming is when two people collaborate on one problem with one person coding while the other looks on. For novices and professionals alike, pair programming often leads to better, faster, and more enjoyable project completion. We will have the option to do pair programming in this course for in-class work and programming assignments. **However, your exams will NOT be in pairs!** Read the page on how to make pair programming work and requirements for using it in this class <a href="{{ site.baseurl }}/pairprogram">here</a>.

*Python 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 <a href="http://hwheeler01.github.io/comp150/HW/Project.html">here.</a> This will be discussed further in class.<br>


***Important note about pair/team submissions:*** For pair/team assignments, only one person needs to submit the archive of programs (everyone should have their own copy for reference), but each team member must submit their own independently written `log.txt` file with the requested information for that assignment. 

***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 instructor walk-throughs during class and by the *Team Participation* form completed by each team member.<br>

<span style="font-weight: bold;"><a name="env"></a>Programming Environment: </span><br>

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 the latest version 3.5.1 for your operating system from the central site <a href="https://www.python.org/downloads/">https://www.python.org/downloads/</a>. Python comes with the graphical interface, Idle, which we will use. 

- Recommended storage options for course work:
	- Cloud-based storage like Box or Google Drive
	- USB Flash Drive (write your email address on it in case you lose it)


<span style="font-weight: bold;"><a name="honesty"></a>Academic Honesty: </span><br>

Plagiarism and cheating will not be tolerated (see <a href="http://www.luc.edu/academics/catalog/undergrad/reg_academicintegrity.shtml">University Policy</a>) and will be
reported to the college. STUDENTS FOUND TO PRESENT SOMEONE ELSE’S WORK AS
THEIR OWN WILL **RECEIVE ZERO POINTS FOR THE HOMEWORK/EXAM**. ANY
STUDENT WHO REPEATS SUCH AN ACTION WILL RECEIVE A FAILING GRADE (F) FOR THE
COURSE.

Cheating consists of, but is not limited to:

- Using or copying an outside person's work on an exam or assignment in any fashion. "Outside person" includes a person who put something on a web page. Don't copy others' work from the web!
- Others' work includes outlines, pseudocode, code, and documentation.
- Allowing your own work to be copied or used by an outside person.
- Submitting as your own work something that has been written by an outside person (or web site).
- Using any unauthorized reference on an exam or assignment.
- Not acknowledging and describing in writing any help you received on an assignment.
- If you are working on a pair or group project, an "outside person" only refers to people other than your partner or team.
- Note that cheating goes both ways: giving and receiving.
- Consultation is allowed with the TA, tutors and me. If you consult with the tutors and/or with me, still make a comment at the top of your work about the substance and depth of the help.

Help from any source is fine concerning:

- The meaning of program specifications (not the plan for the solution or the actual solution).
- The tools used to write programs. Feel free to ask questions on the programming environment you use and the use of the debugger.
- The restrictions of the current programming language syntax.


<span style="font-weight: bold;"><a name="exams"></a>Exams:</span><span style="font-style: italic;"></span>  

There are three exams. Dates are:

- Exam #1: Feb 24
- Exam #2: Mar 23
- Final Exam: *Friday* May 6, 9:00 - 11:00 a.m.<br>

Exams will cover material discussed in class, reading material on the web, and assignments. *Exams will always be cumulative.* You are allowed one 8.5 x 11 inch piece of paper (both sides) with notes for each exam, 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 will be a review for each exam posted on the <a class="reference external" href="#schedule">Course Schedule</a> a week before the exam.<br>

**MISSING EXAMS** WILL ONLY BE PERMITTED UNDER SPECIAL CIRCUMSTANCES (e.g., medical emergencies, educational events, court dates, religious holidays, etc.). **ARRANGEMENTS MUST BE MADE IN ADVANCE** WHEN APPLICABLE AND A NEW EXAM WILL BE ADMINISTERED. DOCUMENTATION OF THE ABSENCE IS REQUIRED.

<span style="font-weight: bold;"><a name="disabilities"></a>Students with Disabilities:</span>&nbsp; 

Any student with special needs or difficulties in learning and completing course assignments is strongly encouraged to contact the instructor as soon as possible. Please refer to the Student Handbook for student rights and <a href="http://www.luc.edu/sswd/">available resources</a> pertaining to assistance with special needs or disabilities.

<span style="font-weight: bold;">Students with Sponsorships and Scholarships:&nbsp;</span>

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 <a href="http://www.luc.edu/academics/schedules/fall/academic_calendar.shtml">withdrawal dates</a> posted by the registrar.<br>

<span style="font-weight: bold;"><a name="grades"></a>Grading:</span><br>

| **Assignment** | **Points**|
| :------------- | ---------:|
| Tutorial, Chapter 1 Exercises | 45 |
| Tutorial, Chapter 2 Exercises | 45 |
| Tutorial, Chapter 3.1 Exercises | 30|
| Tutorial, Chapter 3.2-3.3.4 Exercises | 30|
| Tutorial, Chapter 4 Exercises | 30|
| Pip Program | 60 |
| Gates Homework | 60 |
| EXAM 1 | 150 |
| EXAM 2 | 200 |
| Python Project | 150 |
| FINAL EXAM | 250 |
| **TOTAL** | **1050**|

- Note that there are 1050 total possible points. Your grade will be calculated as the number of points you receive out of 1000. Fifty extra points are built-in, to cover "down days" or to be used for extra credit.
- No further accommodations will be provided. If your personal circumstances are such that you have to miss more than 50 points worth of material, please consider taking the course another semester.
- There are a few extra credit homework problems in some of the assignments. No further extra credit opportunities will be provided. It is neither practical nor fair to the other students.
- ALL ASSIGNMENTS ARE DUE VIA SAKAI BY 11:00 PM ON THE DUE DATE. **LATE ASSIGNMENTS WILL NOT BE ACCEPTED.** That's what the extra fifty points are for. 


Course grades are assigned according to the following percentage scale:<br>

| **Grade** | **Minimum Percent** |
| :--- |:---:|
|A | 93|
|A-| 90|
|B+| 87|
|B | 83|
|B-| 80|
|C+| 77|
|C | 73|
|C-| 70|
|D+| 67|
|D | 63|


<br>



<span style="font-weight: bold;"><a name="schedule"></a>Course Schedule:</span><br>



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.


In the Activities column **"Prep:"** means preparation done *before* class with your questions ready for discussion in class! See <a href="http://hwheeler01.github.io/comp150/resources/">Resources</a> for how to obtain the videos for the listed sections. 

| **Date**      | **Activities**    | **DUE by 11:00 PM via Sakai** |
| ------------- |:-------------:| :-----|
|Jan 20|Introductory notes, syllabus, <a href="{{ site.baseurl }}/pairprogram">pair programming</a>, form pairs, introduction to <a target="_blank" href="http://anh.cs.luc.edu/python/hands-on/3.1/index.html">Hands-on Python Tutorial</a>, <a href="http://anh.cs.luc.edu/python/hands-on/3.1/examples.zip">example files</a> **Follow up:** make sure you have completely read the syllabus.|
|Jan 25|**Prep:** Hands-on Python Tutorial <a href="http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/index.html">Context 1.1 through Input/Output 1.10</a> (most video for one class, with all the introductory material)|
|Jan 27|Catch up and questions: Python Tutorial 1.1 - 1.10 |
|Feb 1|**Prep:** Python Tutorial Functions 1.11, Dictionaries 1.12, Loops 1.13 |
|Feb 3|**Prep:** Python Tutorial 1.14 - 1.15, homework questions ready! |<a href="http://hwheeler01.github.io/comp150/HW/CheckOnTutorial-1.html">Chapter 1 exercises</a>|
|Feb 8|**Prep:** Python Tutorial 2.1 - 2.3 | |
|Feb 10|**Prep:** Python Tutorial 2.4 , 2.4.1, 2.4.2, 2.4.5  |
|Feb 15|**Prep:** Python Tutorial 2.4.6-8, 2.4.10 (read/demo) |
|Feb 17|**Prep:** Python Tutorial 2.5 |<a href="http://hwheeler01.github.io/comp150/HW/CheckOnTutorial-2.html">Chapter 2 exercises</a>|
|Feb 22|Review for Exam 1 | |
|Feb 24|**EXAM 1** |
|Feb 29|**Prep:** Python Tutorial  Chapter 3 through 3.1.6 |
|Mar 2|**Prep:** Python Tutorial 3.1.6 - 3.1.7 | <a href="http://hwheeler01.github.io/comp150/HW/CheckOnTutorial-3.html">Chapter 3.1 exercises</a> |
|Mar 7| *No class: SPRING BREAK*|
|Mar 9| *No class: SPRING BREAK* |
|Mar 14|Discuss Python Project  (finalize teams) **Prep:** Python Tutorial 3.1.7 - 3.3.1 |
|Mar 16|**Prep:** Python Tutorial 3.3.2 - 3.3.4 through bounceWhile.py|<a href="http://hwheeler01.github.io/comp150/HW/CheckOnTutorial-3.html">Chapter 3.2 - 3.3.4 exercises</a>|
|Mar 21|Review for Exam 2 ||
|Mar 23|**EXAM 2** |
|Mar 28| *No class: EASTER BREAK* |
|Mar 30|**Prep:** Python Tutorial 4.1 - 4.3| Submit plan for the <a href="http://hwheeler01.github.io/comp150/HW/Project.html">Python Project</a> |
|Apr 4|**Prep:** Python Tutorial 4.4.4 | <a href="http://hwheeler01.github.io/comp150/HW/CheckOnTutorial-4.html">Chapter 4 exercises</a>|
|Apr 6|**Prep:** Binary Arithmetic in <a href="http://hwheeler01.github.io/comp150/ClassNotes.html">Class Notes</a> Sections 2-3F (videos N2, N3A, N3B, N3C-E) ||
|Apr 11|**Prep:** Pip Assembler in <a href="http://hwheeler01.github.io/comp150/ClassNotes.html">Class Notes</a> Sections 4A-E (videos N4, N4A, N4B, N4C, N4D, N4E)|
|Apr 13|**Prep:** Pip Assembler in <a href="http://hwheeler01.github.io/comp150/ClassNotes.html">Class Notes</a> Sections 4F-H (videos N4F, N4G, N4H) | <a href="http://hwheeler01.github.io/comp150/HW/PipPrograms.html">Pip Program</a> |
|Apr 18|**Prep:** Boolean Algebra, Truth Tables, and Digital Circuits in <a href="http://hwheeler01.github.io/comp150/ClassNotes.html">Class Notes</a> Sections 5A-D (videos N5A-D)|
|Apr 20|**Prep:**  Boolean Algebra, Truth Tables, and Digital Circuits in <a href="http://hwheeler01.github.io/comp150/ClassNotes.html">Class Notes</a> Sections 5E-I (videos N5E-I) **In class:** show project steps completed | <a href="http://hwheeler01.github.io/comp150/HW/Gates.html">Gates Homework</a> |
|Apr 25| **Project Presentations** |
|Apr 27| **Project Presentations**, Review for Final Exam| <a href="http://hwheeler01.github.io/comp150/HW/Project.html">Python Project</a> |
|May 6| **FINAL EXAM: Friday May 6, 9:00-11:00 AM** |

<span style="font-weight: bold;"><a name="dates"></a>Important Dates:<br>

See the <a href="http://www.luc.edu/academics/schedules/spring/academic_calendar.shtml">Loyola academic calendar</a> for registration and withdrawal dates. 
<br>
<br>
*This syllabus is subject to change during the course at the discretion of the instructor.*

{'fraction_non_alphanumeric': 0.1145710928319624, 'fraction_numerical': 0.0220061959192394, 'mean_word_length': 4.494497432134996, 'pattern_counts': {'":': 0, '<': 443, '<?xml version=': 0, '>': 443, 'https://': 4, 'lorem ipsum': 0, 'www.': 14, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7604917', 'n_tokens_mistral': 11627, 'n_tokens_neox': 10538, 'n_words': 4780}