CpSc 140, Introduction to Programming

Syllabus, Fall, 2013

Dr. Conlon

For a printable copy of this syllabus, click here.


Catalog Description: Techniques are stressed that enable systematic development of clear, correct programs. Other topics include data types, algebraic notation, standard control structures, functions; input/output, arrays, and program testing and debugging. The course will be taught in a language designed for non-programmers. Prerequisite: ASSD 110. (3 cr.)

Professor's Description: In this course you will learn the elementary principles of computer programming while creating three-dimensional animated worlds in the Alice programming environment. This course has recently been re-purposed, and is now intended to provide a gentle introduction to computer programming for liberal arts students. If you are a future scientist, mathematician, computer scientist, or engineer, you should probably take CpSc 146 instead. The prerequisite, ASSD 110, is the equivalent of high-school algebra 1.

Meets Requirements in: IS Minor and the GES Track in Applied Geographic Technology. Also, this is a goal course in the math/logic block of the Science, Technology and Mathematics section of the Liberal Studies program.

Does not count for: CS, IS, IT, Math, or Physics majors, CS or IT minor, pre-Engineering, or any of the Bioinformatics programs. Take CpSc 146 instead.

Class Meetings:





TR 11:00 a.m.-12:15 p.m.

ATSH 129






Michael P. Conlon, Ph.D.



ATSH 252

Office hours: As indicated in the table below, or by appointment.






2 p.m.-4 p.m.

2 p.m.-4 p.m.


9:30 a.m.-10:30 a.m.


Office hours are for you. Please feel free to visit me to discuss any problems. Do not wait until problems become unmanageable. If I am doing other work during my office hours, it is because no student has come to see me. I will gladly drop what I am doing to help you. If my office hours are inconvenient, see me before or after class and we will find a better time to meet.

Text: Learning to Program with Alice, third edition,© 2012, by Dann, Cooper, and Pausch, Prentice Hall. ISBN #0-13-212247-2.

Software: This course will use software called Alice. Those interested in attaching sound to their animations will also need Audacity and Lame, which are optional. This software is installed on PC's in ATSH 129, 130, 224, and 230, and is available elsewhere through Citrix. All three software packages are free, open-source software, and versions are available for Windows, Linux, and Macintosh. While this software is available on computers in the SRU labs listed above, I urge you to install it on your own computer for your greater convenience.

        Download Alice software from www.alice.org. We will be using Alice version 2.3.

        Download Audacity from audacity.sourceforge.net.

        Download Lame from lame.sourceforge.net/links.php#Binaries.




Lab & Homework

Service, etc.






Late Assignment Policy: Late assignments will be accepted, but will receive a grade of zero. Exceptions will be made only in extraordinary circumstances.

Important dates:


Exam 1

Exam 2


Section 3

Oct. 1,3

Oct 29, 31

Tue, Dec 10, 10:30 a.m.-12:30 p.m.

Attendance, reading, and participation: You are expected to attend every class and to arrive on time. Please do all assigned reading before the class in which it is covered. You are expected to attend and participate in class, and you must do the reading and homework to participate. Use of entertainment devices during class or lab time is inappropriate.


Labs: Labs will be graded primarily on completion of the lab project. Your first responsibility in lab is to complete the lab assignment. When the assignment is complete, you may work on project work or homework from this course. If you have no outstanding homework or project, make improvements to programs you have completed, or work on an Alice programming project of your choice. Your lab grade will be reduced if you are not working on programming during lab time, or if you leave lab early. If you do not complete your lab assignment during lab time, it will be marked as a zero unless you complete it and demonstrate it to the instructor within three class days, normally one week.

Service, etc.: You will be expected to complete four service/professional-development activities during the semester. For an activity to be eligible, it must be an organized activity and it must meet one of the following criteria:

 Such activities may take the form of lectures on or off campus, resumé workshops, dress-for-success workshops, Computer Technology Club meetings, and service activities for high school students. If you are not sure whether an activity will count, ask me! Day-long activities count double.

 In general, I do not produce these activities. You are expected to watch the bulletin boards around campus and find activities that qualify. There will be plenty of them available, but if you wait until the end of the semester to start looking, you will not be able to complete this assignment.

Recording of Lectures: Video and/or audio recording of lectures is generally prohibited. The instructor reserves the right to reduce your grade should you make illicit recordings. Permission to record will be granted if there is an educational need for you to do so.

Email: I may communicate via electronic mail, using your SRU address. Assignments may be announced or modified this way. You are responsible for checking your SRU email regularly.

Plagiarism policy: Plagiarism or collusion will earn you a failing grade for the assignment. You are not to cooperate with others in any way in the development of your programming projects, except as specified in the assignment. However, cooperation in doing homework and lab work is encouraged. If you have cooperated with anyone in your homework projects, you must indicate that person's name in your header comments.

Copyright permission: By registering in this course you grant the SRU Computer Science Department permission to copy any of your work from the course for use in assessment or accreditation processes. Information that identifies you will be removed from such copies.

Course Outcomes: This course and its outcomes support Information Systems Learning Outcomes of Problem Solving and Critical Thinking (PS&CT), Communication and Interpersonal Skills (C&IS), and Ethical and Professional Responsibilities (E&PR). These Information Systems Learning Outcomes are tied directly to the University Wide Outcomes of Critical Thinking and Problem Solving, Communication, and Values and Ethics.

Program Objectives Assessed in CpSc 140

Course Objectives

Departmental Learning Outcomes

The student will be able to:

  1. 1. Integrate programming and design principles for effective problem solving to address the needs of an organization 

  2. 2. Devise effective user interfaces for information systems 

  3. 3. Demonstrate an understanding of the Association for Computing Machinery (ACM) Code of Professional Ethics 

  4. 4. Develop skill in using materials, techniques, tools, and technology central to STEM programs 

  5. 5. Demonstrate synthesis and integration of information and ideas 

  6. 6. Analyze and interpret experimental data and results effectively 

Problem Solving and Critical Thinking

  1. 1.Implement program solution to an algorithm or design specification. 

  2. 2.Implement a program or answer test questions that utilize basic terms and theories of the language to solve specific problems. 

  3. 3.Select tools and techniques such as data types and control flow when implementing a program on the appropriate hardware. 

  4. 4.Write programs that demonstrate the synthesis and integration of programming ideas into an algorithmic design. 

  5. 5.Examine the results of the program to ensure it meets program specifications and works for all experimental input data. 

Communication and Interpersonal Skills

  1. 6.Design programs that effectively communicate with the end user. 

Ethical and Professional Responsibilities

  1. 7.Understand ethics & professionalism in the context of an introductory programming class. 

Additional Course Objectives: The student will be able to

  1. 1.Select appropriate data types, control flow, and programming techniques. 

  2. 2.Design an algorithmic, object-oriented solution that meets the specification of a programming problem. 

  3. 3.Write self-documenting programs according to standard techniques as defined by the instructor. 


Calendar (tentative), with assigned readings:






Welcome. Tour of the Alice programming environment

Ch. 1



Scene setup. Objects. Properties, functions, and methods.








lab: Set up a scene with template and up to 8 objects.




Scenarios and storyboards: designing software.

Chap. 2







Programming: control structures.

Chap. 3











Classes and Objects.

Chap. 4











Exam 1 Practical




Exam 1 Objective; Parameters.












Events and Event Handling

Chap. 5















Functions and Selection

Chap. 6












Chap. 7











Exam 2 Objective




Exam 2 Practical; Recursion

Chap. 8



















List processing.

Chap. 9











Arrays and Random Access












Variables and Inheritance

Chap. 10







Arrays: Searching, and Sorting












Final exam, 10:30 a.m.-12:30 p.m.