|
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 072.
- Office hours:
Mo 3:30-5p, Tu 4:30-6p, Th 3-4:30p, and by appointment
- Online discussion platform:
We'll use Piazza, please sign up. Course page
here
- Course assistants:
Ava Biery,
Caroline Bhupathi,
Nikhil Ghosh,
Adina Gitomer,
Shiv Khanna,
Tong Kong,
Madeleine Kusel,
Shota Nakamura,
Yuan Sun
- Help sessions: Su 7-9p, Mo 7-9p, Tu 7-9p, Exley 074
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 any other imperative
programming language will be straightforward to learn.
You will also learn that you can
still do object-oriented like things in C using something called a struct.
An interesting perspective on C can be found in
this
article.
My goal in this class is not to teach you the current latest and greatest
programming language but to teach you the fundamentals you need so that you can
more easily learn any programming language. Read more about programming language
comparisons
here,
here,
and
here.
Pre-requisites
This class now has COMP 112 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 112, 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.
All work must be submitted electronically.
Grades and feedback on code submissions will be returned as paper, with
written work and code printed out with
comments written on it directly. I will email you your grades periodically
to double-check that the information that I have is consistent with what you have.
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.
|
---|