Bryn Mawr College
CS 246: Programming Paradigms (C and Unix)
Spring 2014

General Information Syllabus and Schedule Group Projects
Text and Software
Course Policies
Reference Links


General Information

Instructor: Jia Tao
E-Mail: jtao@cs.brynmawr.edu
When you e-mail me, make sure you put "CS246" at the start of the subject line to ensure a quicker response.
Website: http://cs.brynmawr.edu/Courses/cs246/spring2014/
Lecture:
Tuesdays & Thursdays, 11:25PM - 12:45PM
Room: Park 349
Open Lab: Tuesdays or Thursdays 4pm - 6pm (not both) Park Room 231 (Computer Science Lab)
TAs:
Juliette Klingsberg Friday 10am - noon; Yijun Zhou Thursday 7-9pm

Group Projects : Games to Play!

Download the games below and you can start to play!

Syllabus and Schedule

   Programming Projects & Homework
Week Date Topic Assignments Comments
1
1/21
Intro to C (Lec 01 & 02)
Introduction to C: Basic program structure, declarations and statements, variables and types.

Read: Chapters 1-2, 3.1, 4.1, 7.1 and 7.2 from King

Examples: HelloWorld.tex    HelloWorld.pdf    helloworld.c    formatting.c   

Code Formatting Standards
Grading Policy

Introduction to Latex
Another Latex handout (by Prof Xu)

Software:
Gnu C Compiler
Texmaker, a LaTex editor
1/23
2
1/28 Formatted Input/Output
Expressions

Read: Chapters 3 and 4 from King

Control Flow Statements
Read: Chapters 5 and 6 from King

An announcement was sent to your email regarding assignment submissions. Contact the instructor if you have any question.
1/30
1/31 Game description due Project 2 out

3
2/4
Basic Types

Read: Chapter 7 from King
Lab: Linux basics

2/6
2/8 2/10 Project 2 due
4
2/11
Array

Read: Chapter 8 from King
Lab: GDB
Project 3 out

2/13
5
2/18
07_Functions

Questions:
1. How can you make the power function (pp 6) more efficient?
2. Climbing stairs. It takes n steps to reach top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

Read: Chapter 9 from King

2/20
2/21 Project 3 due

Project 4 out


6
2/25
08_Preprocessor

09_Pointer

Read: Chapters 10.1, 10.3, 10.4, 10.5, 14 and 11 from King
Lab: understanding recursion. Solve the problem on the last page of 07_Functions
2/27
P4 Prob 2 Part 1 due in class


7
3/4
10_Pointer_Array

Read: Chapter 12 from King
3/3 P4 Electronic submission due
P4 Prob 2 Part 2 due in class

3/6
11_Strings

Read: Chapter 13 from King
Lab: understanding pointers. Solve the exercise problem 12.13 on pp 274.
8
3/11
Spring Break!
3/13
3/13 Project 5 due
9
3/18
12_String_Lib
13_Structures

Read: Chapter 16 from King
Project 6 out
3/20


10
3/25
14_IO_File
15_Memory_Mng

Read: Chapters 22, 17.1-17.4 from King
Lab: File, Pipe, Redirection
Project 6 due

3/27
Final Project Initial Design due
Project 7 Part I out


11
4/1
16_2DArray_Pointers
17_Writing_Large_Prog
18_Regular_Exp

Read: Chapter 15 from King

Examples: 2DArray.c    2DArray_Ptr.c   
main.c    main.h    stack.c    stack.h    io.c    io.h    Makefile   
Lab: final project discussion
4/3
4/6 Project 7 Part 1 due
Project 7 Part II out


12
4/8
19_Linked_List
20_Low_Level

Read: Chapters 17 and 20 from King
Lab: Regex
4/10
4/13 Project 7 Part II due

13
4/15
21_Declaration
22_Function_Pointers

Read: Chapters 18 and 17 from King
Lab Quiz: Unix Utilities and Regex
4/17


14
4/22
23_BSTs Project 8 out
4/24
Exam!

15
4/29
Group project presentations.
5/1


Important Dates

January 21: First lecture
May 1: Last lecture



Text & Software

Required:

  • C Programming: A Modern Approach, by K. N. King, W. W. Norton & Company, 1996.

Reference:

  • Programming with GNU Software , by Andy Oram and Mike Loukides, O'Reilly, 1996.
  • The C Programming Language , Second Edition, by Brian Kernighan & Dennis Ritchie, Prentice Hall, 1988.
  • The Unix Programming Environment, by Brian Kernighan & Rob Pike, Addisson-Wesley, 1984.




Course Policies

Grading

Assignments must be submitted according to the Assignment Submission instructions.  You should pay careful attention to the Code Formatting Standards when doing your assignments.  The grading structure for individual assignments is broken down in the Grading Policy.

At the end of the semester, final grades will be calculated as a weighted average of all grades according to the following weights:

Exam: 20%
Term project: 20%
Assignments: 60%
Total: 100%

Incomplete grades will be given only for verifiable medical illness or other such dire circumstances.

Submission and Late Policy

All work must be turned in either in hard-copy or electronic submission, depending on the instructions given in the assignment.  E-mail submissions, when permitted, should request a "delivery receipt" to document time and date of submission.  Extensions will be given only in the case of verifiable medical excuses or other such dire circumstances, if requested in advance and supported by your Academic Dean.

Late submissions will receive a penalty of 10% for every 0-24 hours it is past the due date and time (e.g., assignments turned in 25 hrs late will receive a penalty of 20%). Submissions received more than one week late will not be accepted.

Exam

There will be one exam in this course.  The exam will be closed-book and closed-notes.  The exam will cover material from lectures, homeworks, and assigned readings (including topics not discussed in class).

Study Groups

We encourage you to discuss the material and work together to understand it. Here are our thoughts on collaborating with other students:

If you have any questions as to what types of collaborations are allowed, please feel free to ask.


Links

Unix for Beginners

Basic Unix Tutorial

Unix FAQ

Emacs howto

LaTeX primer

Beginning LaTeX


Created on Jan 16, 2014.