A second course in computer science. Data structures and algorithms are studied through major programming projects in the C++ programming language. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion.
Prerequisite: Comp 11 or consent of instructor.
A better title for the course is:
Data Abstractions Every Working Programmer Must KnowWe will learn about the use and implementation of a variety of standard containers focusing on their various interfaces and on the performance of their various operations.
Of course, the Big Ideas from Comp 11 continue to play a central role!
Should I take Comp 11 or Comp 15?Many incoming students or others with some programming experience are curious about whether they should take Comp 11.
Comp 11 and Comp 15 both use C++. Comp 11 covers problem solving and
basic programming skills from scratch, no experience necessary.
You'll learn about values, variables, expressions, conditional
if statements), functions, recursion, loops,
and arrays. Unlike most courses students have elsewhere, students
also learn about computer memory organization, pointers, and manual
allocation and deallocation of memory (dynamic arrays and linked
lists). All of this is done on our department servers, which run
Comp 15 starts from there and adds the aforementioned data abstractions and investigates their performance and use is various programming projects.
Students coming with a strong background would be board in Comp 11 for the first two thirds of the course. But then, you get to work on larger projects and use pointers, so most students with a high school background are challenged at the end.
If you don't know about pointers, memory allocation/deallocation, and Unix, then you'll have to learn those skills in Comp 15. It's can be doable, and we support students doing this, but it will be substantially more work for the first 3 weeks or so while you catch up on those topics.
If you have a busy schedule and are settling in to college, then it might make sense to take the easier course, reinforce the skills you have and acquire a few more — take Comp 11 (but don't complain that already know the material for the first part of the course). If you are up for a challenge are willing to do extra work, or if you already know about pointers, then take Comp 15.
You can also give Comp 15 a try for a week and then switch to Comp 11 if there is space. But you won't be able to switch into Comp 15 after a week or so — that extra work will have piled up by then.