Welcome to Comp 215.
Course Descritpion:
This course is the last course in the Computer Science intro sequence, though this course really isn't introductory anymore. It is a much deeper dive into the world of algorithms.
In this course, we will have three main goals:
- Solidify and complete your knowledge of C++
- Teach you the basics of algorithm analysis
- Cover some of the most common techniques that will enable you to write more efficient programs
We will not only talk about how to write programs, but also try to measure
how good programs are. I will teach you the theory and the language to talk about algorithm efficiency. We will then use this to analyse every algorithms we will cover in the course.
The techniques you learn in this course will be useful to solve problems in many other courses, and possibly for your entire programming career.
Course Basics
Lecture: |
Tuesday-Thursday 11:00AM-12:20PM, Location TBD |
Lab: |
Wednesday 3:30PM - 5:20PM, Location TBD |
Instructor: |
Martin Gagné |
Email: |
lastname_firstname at wheatoncollege dot edu |
Office: |
Science Center 1323 |
Office Hours: |
Monday 2:00PM-3:00PM Tuesday-Thursday 3:30PM-4:30PM Wednesday 10:30AM-12:00PM and by appointment |
Tutors: |
Francesca Sajedi Jackson Reed (times TBD) |
Course Discussion: |
Piazza (by invitation, mandatory enrollment, broken link for now) |
Course Textbook
The following text is not required, but strongly recommended, I will be following it somewhat closely:
Additional references
This course provides an introduction to programming
as well as to the Python program language. Each could warrant their own course of
study and we highly recommend you study them further. Some references of use:
- The online C++ reference for
when it's 3am and you can't remember how to use cout. A great
source for looking up C++ routines with examples.
- www.cplusplus.com, another very useful references on the C++ language. If you google a C++ language feature, this is the site that you will usually get as the frist link.
- The tutorial from the site above. Be warned, it goes FAST, so it's really better as a reference than a tutorial.
- How to Think Like a Computer Scientist, based on the work of Jeffrey Elkner, Allen B. Downey, and Chris Meyers, if you feel a bit nostalgic about the good old days of Comp 115 and Python. Not everything translates neatly to C++, but you may want to remember some of that stuff before seeing it again in C++.
- Google. Seriously, it's a really good place to look for stuff, but make sure that you look for explanations, not for solutions (see section on Academic misconduct). Be particularly careful with sites like Stack Overflow! There is a lot of code there, but not a lot of explanations on how it works. You should be able to explain every line of code that you submit on assignments or exams.