you're reading...

Syllabus for 2016 CS1021C

Syllabus for 2016 CS1021C –
Professor Fred Annexstein 

CS1021C – 2016 Meeting Times

Lecture: Meets MWF 1:25p – 2:20p in RECENTER 3200
Section 001 Lab: Meets M 2:30 – 5:35pm in OLDCHEM 825
Section 002 Lab: Meets W 2:30 – 5:35pm in OLDCHEM 825

CS1021C Course Summary

CS1021 can be summarized with these five major topics or objectives:

  • Learning a language for expressing computations
  • Learning about the process of writing and debugging a program
  • Learning about the process of moving from a problem statement to a computational formulation of a method for solving the problem
  • Learning a basic set of “recipes”—algorithms
  • Learning about how to use computational tools to help model and understand data

In CS1021 you learn to apply computational modes of thought to frame problems, and to guide the process of deducing information in a computational manner. This means that the primary knowledge you will take away from this course is the art of computational problem solving. Unlike many introductory level courses, having an ability to memorize facts will be of little help. This course is about learning to solve problems, not learning facts. Since the emphasis is on problem solving, all exams and quizzes are open book!

Prerequisites and Preparation

This course is aimed at students with little or no prior programming experience but a desire to understand computational approaches to problem solving.

Programming Languages

This term we will be studying and applying two important languages: C++ and Python. Why C++?  Because the C language offers programmers the best abstraction of computer hardware.  Why Python?  Because Python is a more modern language that was designed for object-oriented programming and is growing in popularity. Learning both C++ and Python provides an excellent foundation for students of Computer Science

Textbook and Supporting Materials

The textbook is Pearson custom text, and available at the UC Bookstore. The textbook and the course lectures parallel each other. All other required course materials and assignments are available on Blackboard. This blog provides additional materials and points to best practices for Computer Science students.

Computing Platform

The default computing platform for the course is the UCFILESPACE compute server.


Class Participation: 5%
Laboratory and Homework Assignments: 45%
Quizzes: 5%
Midterm Exam: 20% and Final Exam: 25%

List of Topics: (Subject to Change in Scope and Sequence)

What a computer does, Computational thinking, Aspects of programming languages, Basic machine architecture

Core elements of programs:
Kinds of languages, Objects, expressions, operators, Abstraction by naming, Strings

Simple algorithms:
Iteration, Input/Output, Exhaustive enumeration, Guess and check, For and while loops, Approximate solutions, Bisection search

Function syntax, Abstraction by specification, Functions and scoping, Specifications, Modules

Recursion, Inductive reasoning, Divide and conquer

Structured types and mutability, Tuples and Lists, Dictionaries, Functions as objects

Testing and debugging, Black box testing, Glass box testing, Integration testing and unit testing, Assertions and Exceptions, Assertions,  Exceptions

Efficiency and orders of growth:
Complexity, How to measure complexity, Asymptotic notation

Memory and search:
Memory storage, Indirection, Searching and sorting methods, Hashing

Classes and Object Oriented Programming:
Definition of classes, Classes versus instances, Methods, Bindings of values, Exceptions, Inheritance



No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: