Rust and Go Seminar

Intro to Computer Science I

Syllabus


Instructor: Dr. John F. Santore
Phone: 508-531-2226
Office: Science Center 333
E-Mail: jsantore@bridgew.edu
Instructor Web Page: http://webhost.bridgew.edu/jsantore/
Course Web Page: http://webhost.bridgew.edu/jsantore/Spring2019/CS1/

Office Hours for Spring 2019:

or by appointment

I also will take appointments if you cannot make my other office hours, however, I generally have meetings and work prepared for a day or two ahead so plan on about 48 hours from the time I get your request to us being able to meet.

Course Description:

This is a beginning course in programming, which introduces concepts of computer organization. Problem-solving methods and algorithmic development stressing good programming style and documentation including top down and modular design will be covered. This course emphasizes problem solving with programming exercises run on the computer.

Course Outcomes:

At the end of the course, students
1.    understand the fundamental syntax & computer programs
2.    understand the fundamental control and loop (iteration) structures
3.    program simple algorithms, such as counting, summing, and finding maximum/minimum 
4.    Implement, test, and debug simple recursive functions and procedures 
5.    understand the basic data structures used in programming
6.    argue effectively about the merits and possible unintended consequences of a computing implementation 
7.    effectively write or present about the impact of computing on society. Students should extrapolate from historic lessons learned from unintended consequences of computing to the current computer solutions.
Textbooks:
One required Textbook:
Title:
Python Programming: An Introduction to Computer Science 3rd Ed.
Authors: John Zelle
ISBN 978-1590282755

Class Requirements and grading:

Project Work:

You can't really grok a programming language without writing lots of programs in the language, so a large part of the grade will be project wok. Project work is done individually. There will be from 6-9 projects in the class. The earlier projects will be less difficult and therefore will be worth less than the later projects which will require more effort and time.

Non-Project work:

Non-project work (exams and misc assignments) are individual assignments and should not be done with any other classmates. (discussion without recording devices is always allowed for homeworks, exams are closed neighbor) The exam part of the grade will be split 20% for the midterm and 25% for the final exam.

Students with special needs:

Anyone who has special needs should contact me in the first week of classes with their letter from the Academic Achievement center so that reasonable accommodations can be agreed on.


Academic Integrity:

See the BSU Academic Integrity statement for a complete description of the academic integrity procedure at Bridgewater.


Academic integrity will be taken very seriously in this class. All individual work must be your own. If you cheat or otherwise represent the work of others as your own. You will receive an F for the course.

Guidelines for proper academic integrity:

Discussing problems with your classmates can help you understand the problems and kinds of solutions to those problems that you will learn about in this class. In an effort to make in clear what sort of discussions are appropriate and encouraged in this class and which cross the line to academic dishonesty I use the following guidelines: You may discuss any out of class problem I assign in this class with your classmates or other so long as no one is using any sort of recording implement including, but not limited to, computers, digital recorders, pens, pencils, phones etc. This lets you talk about theoretical solutions without sharing the actual implementations. As soon as anyone in the group is typing, writing etc, all conversations must stop. You may look at someone else's program code only very briefly in order to spot a simple syntax error. As a rule of thumb, if you find yourself looking at someone else's code for more than about 30-45 seconds it is probably time to stop. If you are having trouble with your program, come to the instructors office hours for more help.

All in class exams and quizzes are closed book and closed neighbor. If you are found using a data storage device of any kind during one of these evaluations, you will be failed for the course.

Of course for your group work, your entire group is intended to produce a single deliverable and are expected to work together on all parts of that so the above does not apply to members of a group working together on their group work.

Standards for in class behavior:

You are all adults and are expected to act as adults in this class. While questions are encouraged in this class, if a particular line of questioning is taking us too far afield, I will ask the student to come by my office hours or to see me after class.

Cell phones,  electronic organizers and other devices should be silenced while in class. If you work of EMS or something similar, please turn your cell phones etc to vibrate mode so that you are not disrupting others in the class.

In the unlikely case of trouble makers in the class, those who are simply attempting to disrupt the class will be asked to stop; those who will not, will be referred to the college for appropriate action.


I do not take regular attendance. Because of the census day regulations, I'll have to take occasional attendance. You are adults and are paying for this class. If you miss a class, you are expected to get notes from a classmate and familiarize yourself with the material that was covered before returning to class. I do find from dealing with students in the past that attendance at lecture is highly correlated with doing well in my classes.


Tentative Schedule:

I may well rearrange some of the later material based on classroom interaction.

Week
Topic
Week 1 Introduction to the class
Week 2 Basic programming and Math in python
Week 3 simple graphics, using objects in python
Week 4 Graphics and events
Week 5
Control flow, If/for/While etc
Week 6
I/O and simple Sequences, Strings, Lists maybe Dictionaries
Week 7
APIs Imports and using python in the real world (likely with MS excel as the example)
Week 8
Review and Midterm
Week 9
Computers and Society I: Computer Aided disasters
Week 10
Graphics/Animations/functions
Week 11
Recursion
Week 12
Simple Algorithms (finding the biggest/smallest/averages/median etc)
Week 13
Simple Algorithms II
Week 14
More of collections
Week 15
review and final