Difference between revisions of "CSC111 Syllabus 2018"

From dftwiki3
Jump to: navigation, search
(Schedule)
 
(One intermediate revision by the same user not shown)
Line 45: Line 45:
 
Programming assignments are given every week. ''Approximately'' 11 homework assignments can be expected this semester. There will be a timed midterm exam and a final take-home exam.
 
Programming assignments are given every week. ''Approximately'' 11 homework assignments can be expected this semester. There will be a timed midterm exam and a final take-home exam.
  
<!-- The due date for the homework assignments is tentatively set for '''Thursday''' evening, at midnight.-->
+
The due date for the homework assignments is tentatively set for '''Thursday''' evening, at midnight.
  
 
<br />
 
<br />
Line 78: Line 78:
 
<br />
 
<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://www.science.smith.edu/classwiki/index.php/Computer_Science_TA_hours here].
 
<br />
 
<br />
  

Latest revision as of 13:58, 26 January 2018

D. Thiebaut (talk) 11:33, 16 January 2018 (EST)


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




CSC111 Spring 2018 -- Syllabus



Prof

Dominique Thiébaut email
Dept. Computer Science
Ford Hall, 356.
Telephone: 3854
Office hours: Monday 3:00-5:30 p.m., Wednesday/Thursday 1-3 p.m. (when not in 111 Lab)

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 Stoddard Hall G2, 11:00-12:10 p.m., and for four two-hour lab sessions, on Wednesdays and Thursdays. The lab sections are taught by David Marshall. See catalog for latest details.

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

The due date for the homework assignments is tentatively set for Thursday 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 MWF: 11-12:10 p.m.
  • Lab 1 Wed 1:10-3:00 p.m.
  • Lab 2 Wed 3:00-5:00 p.m.
  • Lab 3 Th 1:00-3:00 p.m.
  • Lab 4 Th 3:00-5:00 p.m.


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

Textbook


Python Programming: an Introduction to Computer Science. Version 2 or Version3 by John Zelle, Franklin, Beedle & Associate. It is available at the campus-center bookstore, an also on Amazon.com
There are very few differences between Versions 2 and 3, and both are acceptable for this class.

Other Sources of Material


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


Piazza


This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email team@piazza.com.

Find our class page at: piazza.com/smith/spring2018/csc111/home

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 homework assignment without penalty, as well as one lab. If you turn in all the assignments this semester, the one with the lowest grade will be dropped automatically.

Missing 4 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 where pair-programming is required, both students should work together on one computer only, following the rule of pair-programming presented in the article read the first week of class. For homework assignments that have to be done individually, nobody should see your code except yourself and the members of the course staff! By extension, you should not see anybody else's code either! For work done individually, 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.


Lab Attendance


You are required to attend all the labs, and attendance will be taken at each lab session. Once you have finished writing the code for the final problem, you will need to show it to the lab instructor, or to the TA, and demonstrate the correct operation of your program. You are free to leave the lab when you have finished all the assigned work. Failure to attend four separate labs will result in failing the course.

Grading


Category Percentage

Homework assignments

35%

Labs

15%

midterm

25%

final

25%


Teaching Assistants


  • Sunday 1-3 - Anastasia, Jenny
  • Sunday evening - Lauren, Jenny
  • Monday evening - Tiffany, Hening
  • Tuesday evening - Lauren, Hening, Silvana
  • Wednesday 1-3 lab - Lauren
  • Wednesday 3-5 lab - Emma
  • Wednesday evening - Tiffany, Grace
  • Thursday 1-3 lab - Hening
  • Thursday 3-5 lab - Anastasia
  • Thursday evening - Grace, Silvana