|
Course info
- Professor: Victoria Manfredi,
vumanfredi [at] wesleyan.edu,
Exley 627,
860-685-2194
- Lectures: Tu and Th, 8:50-10:10a, Exley 121
- Labs: Wed 1:20-2:40p (Sec 1) and 2:50-4:10p (Sec 2), Exley 072
- In-person office hours (in my office):
Mon 3:30-5p, Tu 4:30-6p, Wed 4:30-6p, and by appointment.
- Virtual office hours (on Zoom):
Email me to set-up a time to meet, sometime within my in-person office hours if possible.
- Announcements and online discussion:
We'll use Google Classroom. I will add you, but you should double-check that you've been added and receive announcements, etc.
- Course assistants: Nina Criswell, Anna Fehr, Sam Feuer, Emily Ren Jackson,
Eliza Kuller, Chunyue Ma, Zach Mines, Trey Plante, Jolie Zhang
- In-person help sessions: Su 7-9p, Mo 7-9p, Tu 7-9p, Exley 072
- Virtual help sessions: Mo 7-9p, Tu 7-9p. The link for these will be announced via Google Classroom and held on Zoom.
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.
|
---|