COSC-052: Computer Science II

Spring 2013

“People who know neither programming nor mathematics take for granted that programming is like mathematics. Yet, it turns out that English majors are as likely to be as successful at programming as mathematics graduates are. In practice, the worlds of mathematics and programming are just about disjoint.” —M.H. van Emden, Communications of the ACM, 32(12), p. 1498, December 1989.

Class Time: TR 11:00 AM–12:15 PM
Classroom: ICC 105
Instructor: Mark Maloof
Office: 325 St. Mary's Hall
Mailbox: 329A St. Mary's Hall
Office Hours: In-person (325 STM): TR 11:00 AM–12:00 PM; online: M 10:30–11:30 AM and W 3:00–4:00 PM; or by appointment. Send me an email to get the Zoom link for online office hours. (or by appointment)

Everything you need to know about the TAs:

Name Netid Office Hours Dev Environment
Jessica Natoli jan59 TR 4–6 PM OS X, Xcode
Wells Robinson wir TR 2:30–4:30 PM OS X, Xcode
Kristen Schwabe-Fry kms298 MW 10:30 AM–12:30 PM Unix, vi, g++
Andrew Stukey ats44 MW 2–4 PM Windows, Visual Studio

TA's Office: 330 St. Mary's Hall
TA's Mailboxes: 329A St. Mary's Hall

Course Description

This course surveys advanced topics of C++ programming and introductory concepts of data structures. It is intended for computer science majors and minors, and other students with a serious interest in learning C++ programming. The course covers the following topics: program organization, pointers, self-referential classes, dynamic object creation and destruction, linked lists, recursion, inheritance, abstract base classes, virtual functions, polymorphism, template classes, exception handling, C-style arrays, bit operations, random file access, big-Oh notation, abstract data types, stacks, queues, deques, lists, vectors, sequences, priority queues, binary trees, binary search trees, elementary graphs, searching, and sorting.

Prerequisite: Computer Science I (COSC-051).

Recommended Texts:


1   Program Organization, make, Doc Comments
2   Classes, Object Composition, Exception Handling
3   Classes, Object Composition
4   Inheritance, Polymorphism
5   Inheritance, Polymorphism
6   Exception Handling, Implementing Exception Classes
7   Algorithm Complexity, Asymptotic Notation
8   Midterm, Self-Referential Classes
9   Template Classes
10   Singly Linked Lists
11   Stacks, Queues
20.5, 20.6
12   Deques, Priority Queues
13   Lists
14 Recursion, Linear Search
15   Arrays, Vectors, Binary Search, Sorting
16 Trees, Binary Trees
17 Binary Trees, Binary Search Trees

Course Policies

Assignments and Grading



Marginally Interesting Links

Go Home

Copyright © 2019 Mark Maloof. All Rights Reserved. This material may not be published, broadcast, rewritten, or redistributed.