CS 152: Computer Programming Fundamentals
Instructor:
Brooke Chenoweth
Department of Computer Science
Email: bchenoweth@cs.unm.edu (Include course number in a meaningful subject line, please)
Office: FEC 2060
Office Hours:
Mondays 2:30pm-4:00pm in person,
Thursdays 2:30pm-4:00pm via Zoom,
or by appointment
Lectures
Lectures are 12:00 pm - 12:50 pm MWF Collaborative Teaching & Learn 300
Labs and Section Leaders
Lab 001
- Time: 2:00 pm - 2:50 pm Wednesday
- Location: Centennial Engineering Center 1032
- Section Leader: Tyler Smith
Lab 002
- Time: 3:00 pm - 3:50 pm Wednesday
- Location: Centennial Engineering Center 1032
- Section Leader: Andres Lucero
Lab 003
- Time: 2:00 pm - 2:50 pm Tuesday
- Location: Woodward Lecture Hall 147
- Section Leader: Noah Litz
Lab 006
- Time: 9:30 am - 10:20 am Tuesday
- Location: Centennial Engineering Center 1030
- Section Leader: An Vo
Feel free to go to any of the section leaders for help.
You aren't limited to the assistant for your own section.
Course Description
CS-152 is an introduction to the art of computing. This course has
several goals. Students who successfully complete the course should
have a firm grasp on creating small programs in Java, should be able
to solve problems with code, should have a more full idea of what
Computer Science as a field is, and most importantly not be afraid to
dive into code!
The primary emphasis of this course is to develop fluency in working
with conditional control flow, looping structures, and procedural
programming techniques. The secondary emphasis is to apply those
skills in solving computational problems.
CS-152 is a project based course: students spend many hours writing
programs that have a wide range of applications. In past semesters
these have included business applications, multimedia manipulations,
video games, simulations of complex systems, and scientific models.
CS-152 is currently taught using the Java programming language.
While Java is an Object Oriented Programming (OOP) language and while
students in CS-152 will certainly be working with Objects, CS-152 is
not a course on OOP. Experienced Java programmers with solid skills in
control flow, procedural programming and computational problem solving
should skip CS-152 and take CS-251 (Intermediate Programming). CS-251
is also currently taught in Java and its primary emphasis is on
understanding, developing and applying OOP skills.
- Updated 2026-08-24 with office hours
Handy References and Links
CS 152 Code Standards
Java
- Software
- Reference Material
- Learn more online
Past exams
Lectures and Assignments
Week 1
- Monday, August 17: Welcome and Intro
- Wednesday, August 19: Variables and Types
- Introduce IntelliJ
- Describe ASCII Art assignment
- Friday, August 21: Continue with variables
- No lab meetings this week
- There are no lab sessions meeting this first week, only the MWF 12pm lectures.
- The lab rooms should still be available if you want to use them as a working space, or just make sure you know where they are for next week.
- Make sure you have installed the JDK and IntelliJ on whichever computer you will be using for this course. (Some students use personal laptops, some carry their working files on a thumb drive, some keep everything in the cloud and download onto whichever lab machine they are using. Whatever you choose, make sure the configuration will work for you now.)
- Test your setup by compiling and running a Hello World program
- If you have any technical difficulties, please contact one of us for help so we can get you set up before you get working on the first lab assignment.
- Project 1: ASCII Art
- Due Friday, August 28
- This assignment is to make sure you aren't having trouble installing and setting up your tools. It shouldn't be much more complicated than the hello world example from my slides. Please don't overthink it.
- You may want to use an online ASCII text generator rather than creating the ASCII art completely from scratch.
- Submit to Canvas before the deadline.
There is a small survey you'll need to complete before you can turn in your code.
Week 2
Week 3
- Monday, August 31: Go over quiz 2
- In lecture group exercise
- Wednesday, September 2: Go over quiz 3
- Friday, September 4: Describe project 3
- Project 3: Drawing with Points
Week 4
- Monday, September 7: No classes for Labor Day holiday
- Wednesday, September 9: Switch statement
- Friday, September 11: Go over quiz 4
Week 5
- Monday, September 14: Methods
- Wednesday, September 16: Methods example, printing star patterns
- Friday, September 18: Go over quiz 5
- Project 4: Welcome to Methods
- MethodPractice.java Implement the methods in this file.
- MethodPracticeTests.java Test your methods with this file.
- Part 1 (writing new tests) is due Wednesday, September 23
- After submitting MethodsPracticeTests.java on Canvas, you will have access to a more extensive testing file.
- I'm okay if some of your test lines are over 80 characters in this file.
- Part 2 (your method implementations) is due Monday, September 28
Week 6
- Monday, September 21: Arrays
- Wednesday, September 23: Go over quiz 6
- Friday, September 25
Week 7
- Monday, September 28
- Wednesday, September 30
- Friday, October 2
Week 8
- Monday, October 5: Review for midterm
- Wednesday, October 7 Midterm exam
- You may bring with you a single sheet of 8.5" x 11" paper. You may write on both sides. You may type it on a computer.
- The test is closed book, closed laptop, closed phone, closed friends. You can only use the single sheet of paper and whatever is in your brains. You may also bring a calculator to perform basic arithmetic.
- Friday, October 9: No class during Fall Break
Week 9
- Monday, October 12
- Wednesday, October 14
- Friday, October 16
Week 10
- Monday, October 19
- Wednesday, October 21
- Friday, October 23
Week 11
- Monday, October 26
- Wednesday, October 28
- Friday, October 30
Week 12
- Monday, November 2
- Wednesday, November 4
- Friday, November 6
Week 13
- Monday, November 9
- Wednesday, November 11
- Friday, November 13
Week 14
- Monday, November 16
- Wednesday, November 18
- Friday, November 20
Week 15
- Monday, November 23
- Wednesday, November 25
- Friday, November 27: No class during Thanksgiving Break
Week 16
- Monday, November 30
- Wednesday, December 2: Review for final
- Friday, December 4: Final exam (during regular lecture time/location)
- You may bring with you a single sheet of 8.5" x 11" paper. You may write on both sides. You may type it on a computer.
- The test is closed book, closed laptop, closed phone, closed friends. You can only use the single sheet of paper and whatever is in your brains. You may also bring a calculator to perform basic arithmetic.
Finals Week
- You took your final last week, so go deal with your other classes now.
- It's finals week, so I won't be having my usual office hours, but will be checking my email and Canvas messages.