Intro to
Computer
Science

Fall 2020
course
site
-->

syllabus

info

A first class in computer programming and computing skills, and as such a foundation for further work in computer science. Much as a competency with English grammar is required for writing, an understanding of programming is required for nearly all intermediate and advanced work in computing. Topics include program design, boolean logic, input and output, object oriented programming, and some basic computing skills such as code editing, debugging, and practice with the unix command line environment.

Students will learn to design and implement computer programs for tasks such as drawing graphical patterns, transforming and analyzing data files, and responding to user input. The language used will be Python, a general purpose high level scripting language often used in domains such as scientific computing and web development.

A computer (MacOS, Windows, or Linux) onto which Python and related modules and tools may be installed is required.

learning outcomes

Students will learn fundamental computing concepts and skills including

format

As an asynchronous online course, we won't typically all be together at the same time, either in person or in a zoom room. Instead, I'll post videos of myself explaining some of the things that I would have explained in a face-to-face classroom setting, and be available regularly via zoom to answer questions and discuss the material.

The course will consist of

While I've taught this course many times before at Marlboro College, doing it entirely online is new to me, so this plan may well change as we go along. Please do give me feedback about what is and isn't working.

times and discussion sessions

Assignments will be due twice weekly, Mondays and Thursdays by midnight.

There are multiple discussion zoom sessions with Jim and the CS tutors (Quang, Stacy, and Suman) - currently 13 times per week, 32 hours, seven days a week. See the zoom times for the details.

You don't need to participate in all of these (though if you make it to even half of them in one week and let me know I'll send you some chocolate as a prize) but it would be good to connect up with Jim at least once per week.

We also have a slack channel where you can ask questions.

workload

Learning the fundamentals of computer science is different for everyone and may even differ from topic to topic or problem to problem in terms of how much time and effort is required to master that topic or problem.

Working in a group setting on a larger problem can present a unique challenge in terms of workload - groups will be responsible for dividing work equitably among all partners and holding each other accountable to get tasks done well in a timely manner. Even the best project plans are not perfect, and as such, it should be expected that some weeks may be more intense than others. It is advised that students communicate with each other and the instructor regarding schedule, availability and workload.

In the past, I've taught this course over a 14 week semester, and expected roughly 12 hours of time per week, both in and out of classes.

This semester we will cover the same material in 7 weeks, in an online setting ... which means you should expect to need spend roughly 24 hours per week on all this. Depending on your background, aptitude, and how much you want to get out of all this, your may need less or more than this. But you should expect it to be something like half of a full time job.

expectations and academic integrity

A note on attribution, code, and the culture of programming...

The "culture" surrounding programming is one that encourages sharing and collaboration. Open-source software, online communities such as StackOverflow, GitHub/Gist, and the fast-paced nature of the technology world have all led to a vast collection of places where programmers can quickly and easily get help in solving common and not-so-common problems. This is a fantastic and vital part of being a 'programmer', and I encourage you to use and contribute to these communities.

This being said, there are a few important guidelines that MUST be followed in order to strike a balance between collaboration and academic integrity:

Here's an example of quoting your sources : a lot of the preceding language in this syllabus is from Andrew Cencini's Fall 2019 edition of this course. ("Hi Andrew!")

grading

The overall course grade will be the average of

The homework grade is based on the number of assignments completed and submitted on time.

Project grades will be based on

If circumstances outside of your control - illness, technology issues, your dog ate your homework - get in the way, please do let me know, and we will try to work things out.

schedule

This is what I have in mind for our schedule of topics but may well change as we go along.

The specifics will be posted in assignments and notes ; this is just an overview and summary.

       Mo | Tu | We | Th | Fr                                                              
  Sep        1         3     getting started                                               
             8        10     input, output, graphics                                       
            15        17     strings, lists, functions                                     
            22        24     decisions; start group projects                               
            29         1     group projects; simulations;                                  
  Oct        6         8     classes, dicts, recursion; start projects                     
            13        15     final project

planned assignments

   Thu Sep  3        1. umber, jupyter, unix shell lab, about you, hello world

   Mon      8        2. chap 2, 3; interest rates & temp conversion
   Thu     10        3. python on laptop; zelle graphics; LAB - Sol Levitt

   Mon     14        4. chap 5: strings, lists, files : ciphers, debug, docs
   Thu     17        5. chap 6: functions, ant song, more debug & docs

   Mon     23        6. chap 7,8: decisions, booleans
   Thu     24        7. group projects check-in, STOP guess word game

   Mon     28        8. group projects due
   Thu Oct  1        9. chap 9 : LAB - craps simulation ; propose final project

   Mon      5       10. chap 10,11: classes & data collections; cards
   Thu      8       11. chap 12: recursion; LAB - peg solitaire

   Mon     13       12. final project check-in
   Thu     15       13. final project due

questions

Questions about any of this? Ask Jim.

college policies

accommodations

Bennington College provides reasonable accommodations to students with documented disabilities when such accommodations are requested and necessary to ensure equal access to College programs and facilities. If you believe you are entitled to an accommodation speak with Katy Evans, the Academic Services and Accommodations Advisor, about any disability-related needs. If approved, you will receive a memo detailing your specific accommodations; it is your responsibility to provide me with the memo and discuss the implementation of accommodations. Note that I will not be aware of your needs if you do not share this memo with me. Accommodations are not retroactive, so the sooner we meet to discuss your needs, the better. Also, students experiencing mental and/or physical health challenges that are significantly impacting their academic work are encouraged to speak with their faculty advisor and member of Academic Services (academicservices@bennington.edu or 440-4400) about the impact and to connect with resources through health and psychological services (440-4426 or 440-4451).

basic needs

At Bennington College, we understand that basic needs (food, housing, and wellness) have a direct impact on academic performance, mental-emotional-physical health, professional development, and holistic success of our students. If you have a personal circumstance or need that will affect your learning or performance in this course, please let me or your faculty advisor know so that we can direct you to available resources to help support you during the term.

inclusion

Bennington College is committed to fostering the intellectual growth of all students, and to creating a learning environment where human cultural diversity is valued and respected. To that end, in this course all students can expect a respectful, welcoming and inclusive environment. I hope that all students in this course will openly share their unique perspectives and, just as importantly, respect the perspectives, comments, and contributions made by every other student and guest that participates in this course during the term. If you feel that at any time that this goal is not being met, please don’t hesitate to see me, or speak with a college administrator (e.g., from The Office of Diversity & Inclusion, Student Life, or Academic Services) to share your concern.

https://cs.bennington.college /courses /fall2020 /introcs /syllabus
last modified Thu September 10 2020 10:07 pm