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:

Schedule

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

Course Policies

Assignments and Grading

Grading


Resources


Marginally Interesting Links


Go Home

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