COMP 211: Principles of Imperative Computation
Sections 1 and 2, Fall 2017
         Home Schedule Policies Resources         

Course info

  • Professor: Victoria Manfredi, vumanfredi [at] wesleyan.edu, Exley 627, 860-685-2194.

  • Lectures: Tu and Th, 10:20-11:40p, Exley 121.

  • Labs: Wed 1:20-2:40p (Sec 1) and 2:50-4:10p (Sec 2), Exley 72.

  • Office hours: Mo 3:30-5p, Wed 4:30-6p, Th 1:30-3p, and by appointment.

  • Piazza: We'll use Piazza for discussion. Sign up here.

  • Course assistants:

  • Help sessions: Su 7-9p, Mo 7-9p, Exley ???.

Description

COMP 211 is the first semester of the one-year gateway sequence to the Computer Science major. It is intended for students who are considering Computer Science as a potential major as well as those who are looking for an in-depth introduction to the field beyond the fundamentals of programming. In addition to learning how to program in C, we will also focus on developing computational thinking skills.


Student learning goals:
  • Algorithms: You will learn to design and analyze algorithms for solving computational problems. Topics to be covered include searching, sorting, and graph algorithms, and basic ideas of time and space analysis such as big-O notion and common complexity classes. While this course will cover many concepts in algorithms, this is not specifically an algorithms course and there are many topics we will not cover that you will see if you take COMP 312.

  • Data structures: You will learn to use and implement different structures to store data including arrays, linked-lists, stacks, queues, hash tables, trees, graphs. These data structures will be used to store the data that is manipulated by the algorithms that you will implement.

  • Programming: You will learn how to transform algorithmic ideas into C programs and how to be a good C programmer by writing, testing, and debugging code.

Why C?

The short answer is that if you understand how C works, you will have a deeper understanding of how memory is used in any programming language and you will find that you can still do object-oriented like things in C using something called a struct. And if you understand C, any other imperative programming language will be straightforward to learn.

Pre-requisites

This class now has COMP 111 as a pre-requisite. While the course is self-contained and provides a complete introduction to programming and computer science, the course moves quickly, and and in the past we have found those without any prior exposure to computer science may struggle. To inquire about skipping COMP 111, please submit a pre-req override request explaining your programming and/or math background and any special motivation for starting with COMP 211.

Assessment

Your grade will be based on approximately 10 homework assignments (60%), a midterm exam (20%), and a final exam (20%). Assignments will be posted on the schedule and grades will be posted on Piazza. All work must be submitted electronically. Grades and feedback on code submissions will be returned electronically, whereas written work will be printed out with comments written on it directly. It is your responsibility to check your grades and feedback and report any issues promptly. It is always possible for mistakes to happen in recording scores, especially in larger classes. If I do not hear about a problem, it will not be fixed.