Difference between revisions of "CSC111 Syllabus 2015"

From dftwiki3
Jump to: navigation, search
(Teaching Assistants)
 
(20 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
----
 
----
  
<center>[[CSC111 Spring 2015 | Main Page]] | [[CSC111_Syllabus_2015 | Syllabus ]] | [[CSC111_Class_Page_2015 | Weekly Schedule ]] | [[CSC111_Class_Page_2015#Links_and_Resources | Links & Resources ]] |[http://piazza.com/smith/spring2014/csc111/home Piazza]</center>
+
<center>[[CSC111 Spring 2015 | Main Page]] | [[CSC111_Syllabus_2015 | Syllabus ]] | [[CSC111_Class_Page_2015 | Weekly Schedule ]] | [[CSC111_Class_Page_2015#Links_and_Resources | Links & Resources ]] |[https://piazza.com/smith/spring2015/csc111/home Piazza]</center>
 
<br />
 
<br />
 
----
 
----
 +
<br />
 
=CSC111 Spring 2015 -- Syllabus=
 
=CSC111 Spring 2015 -- Syllabus=
 +
<br />
 
__TOC__
 
__TOC__
 
+
<br />
 
=Prof=
 
=Prof=
 
'''Dominique Thiébaut''' [mailto:thiebaut@cs.smith.edu email] <br />
 
'''Dominique Thiébaut''' [mailto:thiebaut@cs.smith.edu email] <br />
Line 13: Line 15:
 
Ford Hall, 356.<br />
 
Ford Hall, 356.<br />
 
Telephone: 3854<br />
 
Telephone: 3854<br />
'''Office hours''': TBA, and by appointments
+
'''Office hours''': Wed. and Thu., 1-3 p.m., and by appointment
 +
 
 +
<br />
  
 
=Introduction=
 
=Introduction=
Course Overview: This course is an introduction to computers, computer science and computer programming. The programming language '''Python''' is used to introduce basic programming skills and techniques.  
+
<br />
 +
Course Overview: This course is an introduction to computers, computer science and computer programming. The programming language '''Python''' (Version 3) is used to introduce basic programming skills and techniques.  
  
This is the first course in the Computer Science major, and no previous experience with computers or programming is assumed.
+
This is the first course in the Computer Science major, and ''no previous experience with computers or programming is assumed''.
  
Objectives: The objectives for this course are for each student to become familiar with
+
Objectives: The objectives for this course are for each student to become familiar with:
  
* Basic programming constructs such as if-then statements, loop control, functions, arrays, simple input-output, searching, and recursion.
+
* Basic programming constructs such as '''if-then''' statements, '''loop''' control, '''functions''', '''lists''', simple '''input-output''', '''object-oriented programming''' (OOP), '''searching''', and '''recursion'''.
* Good programming techniques including top-down design, program documentation, modular design, all resulting in code that can be readily understood and used by other programmers.
+
* Good programming techniques including ''top-down design'', ''program documentation'', ''modular design'', all resulting in code that can be readily understood and used by other programmers.
* The Python programming language
+
* The Python programming language and its syntax, features, libraries, and limitations.
 
* The basic internal operation of a computer, including the central processing unit, simple memory management, and the file system.
 
* The basic internal operation of a computer, including the central processing unit, simple memory management, and the file system.
 +
 +
<br />
  
 
=Prerequisites=
 
=Prerequisites=
 +
<br />
  
 
<font color="orange">'''No prerequisites!'''</font>
 
<font color="orange">'''No prerequisites!'''</font>
  
 +
<br />
 
=Schedule=
 
=Schedule=
 +
<br />
  
The class meets twice a week, '''TuTh''', in McConnell 103, 10:30-11:50 a.m., and for two two-hour lab sessions '''Thursday''', in Ford Hall 241, 1:00-2:50 p.m. for Section 1, and 3:00-4:50 p.m. for Section 2.
+
The class meets three times a week, '''Monday, Wednesday, Friday''', in Weinstein Auditorium, in Wright Hall, 11:00-12:10 p.m., and for four two-hour lab sessions, on '''Wednesdays''' and '''Thursdays''', in Ford Hall 241, from 1 p.m. to 3 p.m., and 3 p.m. to 5 p.m.
  
 
Programming assignments are given every week. ''Approximately'' 12 homework assignments can be expected this semester. There will be an in-class midterm exam and a final take-home exam.
 
Programming assignments are given every week. ''Approximately'' 12 homework assignments can be expected this semester. There will be an in-class midterm exam and a final take-home exam.
  
 
The due date for the homework assignments is tentatively set for '''Tuesday''' evening, at midnight.
 
The due date for the homework assignments is tentatively set for '''Tuesday''' evening, at midnight.
 +
 +
<br />
  
 
=Topics=
 
=Topics=
 +
<br />
  
 
The course covers the following topics (this list is tentative):
 
The course covers the following topics (this list is tentative):
 +
<br />
  
* Windows and Unix tools
+
* Python and the Python IDE
 
* Computers and programs
 
* Computers and programs
 
* Computing with numbers
 
* Computing with numbers
Line 52: Line 66:
 
* Loops
 
* Loops
 
* Classes and objects
 
* Classes and objects
* Advanced Topics, including recursion, sorting, searching.
+
* Recursion
 +
* Advanced Topics
 +
<br />
  
 
=Class and Lab Times =
 
=Class and Lab Times =
 +
<br />
  
 
*'''Lectures''' TuTh: 10:30-11:50 a.m. <br>
 
*'''Lectures''' TuTh: 10:30-11:50 a.m. <br>
*'''Lab 1''' Th 1:00-2:50 p.m.
+
*'''Lab 1''' Wed 1:10-3:00 p.m.
*'''Lab 2''' Th 3:00-4:50 p.m.
+
*'''Lab 2''' Th 1:00-2:50 p.m.
 +
*'''Lab 3''' Th 3:00-4:50 p.m.
 +
*'''Lab 4''' Wed 3:00-4:50 p.m.
 +
<br />
  
There will be TA sessions. Their location and time is available [http://cs.smith.edu/classwiki/index.php/CSC111_TA_Hours| here].
+
There will be TA sessions. Their location and time is available [http://cs.smith.edu/classwiki/index.php/CSC111_TA_Hours here].
 +
<br />
  
 
=Textbook=
 
=Textbook=
 +
<br />
 
''Python Programming: an Introduction to Computer Science. Version 3'' by John Zelle, Franklin, Beedle & Associate.
 
''Python Programming: an Introduction to Computer Science. Version 3'' by John Zelle, Franklin, Beedle & Associate.
 
It is available at the campus-center bookstore, an  also on [http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1590282418/ref=sr_1_2 Amazon.com]
 
It is available at the campus-center bookstore, an  also on [http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1590282418/ref=sr_1_2 Amazon.com]
 +
<br />
  
 
=Other Sources of Material=
 
=Other Sources of Material=
 +
<br />
  
 
Check the [[CSC111_Class_Page_2015 | class homepage]] for additional links to Python-related sources.
 
Check the [[CSC111_Class_Page_2015 | class homepage]] for additional links to Python-related sources.
  
 +
<br />
 
=Lateness Policy=
 
=Lateness Policy=
 +
<br />
  
No late assignments will be accepted (except in case of ''documented'' illness or personal difficulties). The assignments are tentatively scheduled to be due every Tuesday evening at midnight.  
+
<font color="red">'''No extensions will be given, and no late assignments will be accepted'''</font> (except if I receive a note from your Dean asking for extending a deadline). The assignments are tentatively scheduled to be due every '''Tuesday evening at 11:55 p.m.'''
  
'''You are, however, allowed to drop any one assignment without penalty.'''  If you turn in all the assignment this semester, the one with the lowest grade will be dropped for you automatically.
+
'''You are, however, allowed to drop one weekly assignment without penalty, as well as one weekly lab.'''  If you turn in all the assignments this semester, the one with the lowest grade will be dropped automatically.
  
'''4 missing assignments will result in failing the class'''.
+
'''4 missing homework assignments will result in failing the class'''.
  
=Grading=
+
<br />
  
You have two options for completing each homework assignment.  You can either work individually (sharing ideas with classmates and getting input from the TAs and instructors as needed), or you may work in pairsIf you work in pairs, you need to follow the protocol for 'pair programming' as discussed in [http://maven.smith.edu/~jfrankli/111s08/pairProgramming2000.pdf this article]If you select pair programming, be sure that each partner understands the concepts and final recipe fully, since exams will, of course, be individual.
+
=Collaboration=
 +
<br />
 +
Learning to program requires dedication and hard work.  All assignments will have to be done individually, and students are expected to complete these assignments by themselves.   
  
Homework assignments 40%, class participation 5%, quizzes 10%, midterm 20%, final 25%.
+
<tanbox>'''Homework Assignments''': Each student will be expected to follow this guideline for homework assignments: on all assignments, nobody should see your code  but yourself and the members of the course staff! By extension, you should not see anybody else's code either!  <font color="red">Sharing code or working with others to write code for individual homework assignments is a violation of the Smith Honor Code.</font>.
 +
</tanbox>
  
=Teaching Assistants=
+
<br />
  
The teaching assistants are:
+
Despite the above, many forms of collaboration are specifically encouraged. On any assignment students may and should discuss algorithms, approaches, and issues that arise so long as this is done without reference to specific code. Students may also discuss any programs and code not directly related to the solution of a current or pending programming assignment. In this manner, students may assist each other while ensuring that each ultimately completes the assignments for herself. During in-class labs (as opposed to the homework assignments), students are ''encouraged to help each other work through problems'', and may review each others' programs as necessary toward that goal.
 +
<br />
  
{| cellpadding="2"
+
<br />
!width="150"|Name
+
=Grading=
!width="150"|Email
+
<br />
 +
 
 +
<center>
 +
{| class="wikitable"
 +
! Category
 +
! Percentage
 
|-
 
|-
| TBA
+
|
|  
+
Homework assignments
 +
|
 +
40%
 
|-
 
|-
| TBA
+
|
|  
+
Labs
 +
|
 +
15%
 
|-
 
|-
| TBA
+
|
|  
+
midterm
 +
|
 +
22.5%
 
|-
 
|-
 +
|
 +
final
 +
|
 +
22.5%
 
|}
 
|}
 +
</center>
 +
 +
<br />
 +
 +
=Teaching Assistants=
 +
<br />
 +
 +
The teaching assistants are listed on [http://cs.smith.edu/classwiki/index.php/Computer_Science_TA_hours this page].  You will find their names, when they hold drop-in hours, and where you can find them (usually FH241).
 +
  
To see when and where they are available this week, click [http://cs.smith.edu/classwiki/index.php/Computer_Science_TA_hours here].
 
 
<br>
 
<br>
 
<br>
 
<br>

Latest revision as of 17:37, 12 February 2015

--D. Thiebaut (talk) 14:55, 13 January 2015 (EST)


Main Page | Syllabus | Weekly Schedule | Links & Resources |Piazza




CSC111 Spring 2015 -- Syllabus



Prof

Dominique Thiébaut email
Dept. Computer Science
Ford Hall, 356.
Telephone: 3854
Office hours: Wed. and Thu., 1-3 p.m., and by appointment


Introduction


Course Overview: This course is an introduction to computers, computer science and computer programming. The programming language Python (Version 3) is used to introduce basic programming skills and techniques.

This is the first course in the Computer Science major, and no previous experience with computers or programming is assumed.

Objectives: The objectives for this course are for each student to become familiar with:

  • Basic programming constructs such as if-then statements, loop control, functions, lists, simple input-output, object-oriented programming (OOP), searching, and recursion.
  • Good programming techniques including top-down design, program documentation, modular design, all resulting in code that can be readily understood and used by other programmers.
  • The Python programming language and its syntax, features, libraries, and limitations.
  • The basic internal operation of a computer, including the central processing unit, simple memory management, and the file system.


Prerequisites


No prerequisites!


Schedule


The class meets three times a week, Monday, Wednesday, Friday, in Weinstein Auditorium, in Wright Hall, 11:00-12:10 p.m., and for four two-hour lab sessions, on Wednesdays and Thursdays, in Ford Hall 241, from 1 p.m. to 3 p.m., and 3 p.m. to 5 p.m.

Programming assignments are given every week. Approximately 12 homework assignments can be expected this semester. There will be an in-class midterm exam and a final take-home exam.

The due date for the homework assignments is tentatively set for Tuesday evening, at midnight.


Topics


The course covers the following topics (this list is tentative):

  • Python and the Python IDE
  • Computers and programs
  • Computing with numbers
  • Strings
  • Objects and Object-Oriented programming (OOP)
  • Functions
  • Control structures
  • Loops
  • Classes and objects
  • Recursion
  • Advanced Topics


Class and Lab Times


  • Lectures TuTh: 10:30-11:50 a.m.
  • Lab 1 Wed 1:10-3:00 p.m.
  • Lab 2 Th 1:00-2:50 p.m.
  • Lab 3 Th 3:00-4:50 p.m.
  • Lab 4 Wed 3:00-4:50 p.m.


There will be TA sessions. Their location and time is available here.

Textbook


Python Programming: an Introduction to Computer Science. Version 3 by John Zelle, Franklin, Beedle & Associate. It is available at the campus-center bookstore, an also on Amazon.com

Other Sources of Material


Check the class homepage for additional links to Python-related sources.


Lateness Policy


No extensions will be given, and no late assignments will be accepted (except if I receive a note from your Dean asking for extending a deadline). The assignments are tentatively scheduled to be due every Tuesday evening at 11:55 p.m.

You are, however, allowed to drop one weekly assignment without penalty, as well as one weekly lab. If you turn in all the assignments this semester, the one with the lowest grade will be dropped automatically.

4 missing homework assignments will result in failing the class.


Collaboration


Learning to program requires dedication and hard work. All assignments will have to be done individually, and students are expected to complete these assignments by themselves.

Homework Assignments: Each student will be expected to follow this guideline for homework assignments: on all assignments, nobody should see your code but yourself and the members of the course staff! By extension, you should not see anybody else's code either! Sharing code or working with others to write code for individual homework assignments is a violation of the Smith Honor Code..


Despite the above, many forms of collaboration are specifically encouraged. On any assignment students may and should discuss algorithms, approaches, and issues that arise so long as this is done without reference to specific code. Students may also discuss any programs and code not directly related to the solution of a current or pending programming assignment. In this manner, students may assist each other while ensuring that each ultimately completes the assignments for herself. During in-class labs (as opposed to the homework assignments), students are encouraged to help each other work through problems, and may review each others' programs as necessary toward that goal.


Grading


Category Percentage

Homework assignments

40%

Labs

15%

midterm

22.5%

final

22.5%


Teaching Assistants


The teaching assistants are listed on this page. You will find their names, when they hold drop-in hours, and where you can find them (usually FH241).