you're reading...

Syllabus for 2016 Computer Science I : An Introduction to Programming

Syllabus for CS1021C-001 – Professor Fred Annexstein 

CS1021C – 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 M 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 Language

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? 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 and the course lectures parallel each other, though there is more detail in the book about some topics.


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: