04-330 Syllabus

Title: Programming Fundamentals and Problem Solving

Course Description

This course explores the discipline of computer science through a hands-on focus on practical programming skills. Topics include algorithm development, problem solving (decomposition and synthesis), program design, data representation, arithmetic and logical expressions, input/output operations, basic user interfaces, and object-oriented programming and design, with an emphasis on developing good programming habits.

Intensive programing assignments are required. The programming will involve understanding and analyzing a set of requirements for a problem, formulating a solution, and implementing that solution on the computer along with tests that show that the program achieves its goals. These programs can be intensive and fun, and are designed to provide the student with a clear understanding of principals needed to work with the computer in the future.

Prerequisites: None.

Units: 12

Course/Section: 04-330 A or B

Class Communication: Piazza

Class site: http://public.africa.cmu.edu/cbishop/pfun

Objectives

The successful student will be able to:

Topics

Analysis and Design
Decisions
Class Design and Implementation
Algorithm Development
Iteration
Objects
Testing
Recursion
Basic GUIs and Event-Driven Code
Common Algorithms and Patterns
Method Abstractions
Coding Standards
Language Syntax
File I/O
Source File Organization
Data Types and Operators
Arrays
Compiling and Running
Data Structures
Collections
Computer Language Comparison
Scope Rules
Debugging Methods
Basic Computer Graphics

Location

Faculty Information


Cathy Bishop

Office hours: posted at http://public.africa.cmu.edu/cbishop/
Email: mcbishop@andrew.cmu.edu

Please use Piazza as the primary contact; talk to TAs in WhatsApp for emergencies; email is for non-PFUN topics

Grading System for the course 

Grading Criteria    

Exams are open-book and open-note. You will have a Midterm about half-way through the course and a Final exam at the end. You will be tested on all the material covered up to the date of the exam. Missed exams cannot be made up or retaken unless there are exceptional circumstances, which will be handled on an individual basis. It is the student's responsibility to make any necessary special arrangements with the instructor at least two class-days before the exam is given. Percentages are not rounded up

Note: I have explicitly designed the course grading policy to rely on multiple areas of evaluation. Although some are weighted more heavily than others, they are all important. You must have a passing grade (C or better) in each area of evaluation in order to pass the course.

If you are within one percentage point (i.e. 89 or higher, but less than 90), I will consider rounding-up your grade if all of the following are true:

Attendance

Academic Dishonesty

Submitting your work

Grading Criteria (In general)

Please note that your code must demonstrate the techniques, best-practices, and design principles taught during class. It is not sufficient to say "my program works"; your work will be evaluated based on additonal criteria covered in class.


Last Updated - 09/06/2020 01:56:07