Sections
  Section Days Hours Room Instructor

Lectures A MW 01:00 pm - 02:15 pm SB 265 Nikita Neveditsin
B TR 11:30 am - 12:45 pm REMOTE Mark Young
C MW 10:00 am - 11:15 am LA 175 Somayeh Kafaie

Labs LA M 2:30 pm - 05:15 pm SB 155 Nikita Neveditsin
LB W 2:30 pm - 05:15 pm SB 155 Prachi Kudeshia
LC MW 11:30 am - 12:45 pm LA 182 Paul Muir
LD F 2:30 pm - 05:15 pm SB 155 Prachi Kudeshia
LE TR 1:00 pm - 02:15 pm REMOTE Mark Young
LF TR 2:30 pm - 03:45 pm REMOTE Paul Muir
Office Hours
Office hours are times for students to visit the instructor to ask questions about problems they're having. You are allowed to attend any instructor's office hours, regardless of which section you are in.

Instructor Days Hours Office

Mark Young MW 9:30 am - 11:00 am Remote
Somayeh Kafaie T
W
RF
1:30 pm - 2:30 pm
1:00 pm - 2:00 pm
9:00 am - 10:00 am
Remote
Nikita Neveditsin MTW 10:00 am - 11:00 am MN 118

E-mail Policy
Make sure to include "CSCI 1226" in the subject line. That'll make it less likely to be sent to a spam folder (or missed due to lots of other emails coming in at the same time).

Questions about lab grades should be sent to your lab instructor.

Emails about errors in the assignment/lab description should be sent to Dr. Young.

Other questions should be sent to the lecturer for your section.

Course Web Page
Online Lecture (Brightspace course home)
Lecture Recordings (Brightspace course Zoom -- click the Cloud Recordings tab)
        Note: recordings might not be available until a few hours after class has ended
Tests (Brightspace course quiz widget)
Everything Else (course homepage)
Textbook
There is no required textbook for this term. Everything you need to know is in the course notes.

However, in the past we have used

Java: An Introduction to Problem Solving and Programming
by Savitch & Carrano
Any edition from the 5th on covers everything we'll be doing in this course (and much of what we'll be doing in CSCI 1228).
Course Description
(from Academic Calendar)
This course is designed to introduce the student to some of the key concepts in computing science and simultaneously provide introductory hands-on experience using a modern programming language. General topics will include a brief history of computing; the place of hardware, software, and policies in any computing environment; a high-level view of the components of a computing system; and the tools one can expect to find in any programming environment. Programming language topics will include input/output; simple data types; operators and expressions; looping and decision-making control constructs; subprograms and parameter passing; overall program structure and programming style considerations. Problem-solving and program-design strategies will include divide-and-conquer and top-down design with step-wise refinement. Students will design algorithms with data input and output to solve particular problems, and later implement those solutions as computer programs in the current programming language of choice.
3 credit hours
Majoring in CS?
This course is an introduction to computer programming. It is the starting course for CS majors, but it is also for students who are just interested in computer programming. Many students in this course have never written a computer program before. We will start with the very basics.

If you are planning to carry on in computer science, you will need to go on to take CSCI 1228, and later CSCI 2341 (data structures).

Declaration of Major: Once you have completed approximately the first three terms of your degree (i.e., approximately 45 credit hours), it is time to declare your major.

Please complete the form Major-Minor Declaration and email it to advisor.science@smu.ca as soon as possible.

Science Advisor and Program Student Advisor: Once you have declared your major, two important resources that will help to guide you through your degree are the:

  • Science Advising Office: advisor.science@smu.ca
  • Student Advisor for Computing Science and Computing Science/Business Admin degrees, muir@smu.ca
Important Dates
Sep 6 (Wed)Classes begin. Yes, REALLY!
Sep 15 (Fri)Last day to register for or change fall term courses.
Sep 15 (Fri)Last day to drop fall term courses.
Sep 29 (Fri)National Day for Truth and Reconciliation. No classes.
Oct 9 (Mon)Thanksgiving Day. No classes.
Nov 6-12Fall Break. No classes.
Nov 13 (Mon)Remembrance Day (observed). No classes.
Nov 20 (Mon)Last day to withdraw from fall term classes without academic penalty.
Dec 6 (Wed)Last day of classes.
Dec 8 (Fri)University Patronal Feast Day.
Dec 9-20Final exam period (dates subject to change)
Tentative List of Topics
  1. Introduction to Computers and Java
    • Computers
    • Programs
    • Programming
  2. Basic Computation
    • Variables and Expressions
    • Keyboard and Screen I/O
    • Documentation Style
  3. Flow of Control: Branching
    • The if-else Control
    • The Type boolean
  4. Flow of Control: Loops
    • The for and while Controls
    • Programming with Loops
  5. Defining Classes and Methods
    • Objects and References
    • Class and Method Definitions
    • Constructors
    • Static Variables and Static Methods
    • Overloading
  6. Arrays
    • Creating and Using Arrays
    • Arrays and Methods
    • Arrays of Objects
    • Arrays in Objects
  7. GUIs
    • Programs with Windows
    • Labels, Text Boxes and Buttons
    • Laying out Windows
    • Processing Data from Windows
Course Delivery
The course will incorporate a combination of lecture and lab sessions designed at the instructors' discretion. During the lab sessions, there will be problem solving exercises designed to help you grasp the topics taught during lectures. All sections will follow the same course outline, and will use the same course delivery methods and grading schemes. Any deviations will be posted on the course web site (cs.smu.ca/~myoung/csci1226).
Expected Learning Outcome
Computer programming is considered a core subject for all students in computer science. At the end of the course, you are expected to be able to:

  • Describe the Java data types that are used for simple data like numbers and characters.
  • Write Java statements to declare variables and define named constants.
  • Write assignment statements and expressions containing variables and constants.
  • Use the Java branching statements.
  • Use the primitive data type boolean.
  • Design and use a loop.
  • Describe the concepts of a class and of an object of a class.
  • Create objects of a class.
  • Define a Java data class and its methods (Java Bean).
  • Define and use a class's constructors.
  • Write and use overloaded methods.
  • Describe the nature and purpose of an array.
  • Use arrays in simple Java programs (including sorting and searching the elements in an array).
  • Create a simple GUI program.
Tips for Success!
There is a lot of material in this course, and it builds from one week to the next. The most important factor for success is keeping on top of things:

  • Pay attention in class, and follow along with what we're doing on your computer.
  • Check the course homepage regularly for updates and important news.
  • Make sure you do the lab exercises each week. Submit them even if you think you didn't do well. It won't lower your average because every point you get in lab adds onto your total until you reach the maximum.
  • Start early on the assignments. It may be that we haven't covered some parts of the assignment in class yet, but there's always something you can do on it—and if you pay attention, you'll see there's generally quite a bit you can do.
  • Submit assignments and labs early, and submit often. You don't even have to finish it before you submit it. We'll always get just the last version you submit. And even if you never get it finished, it's better to get partial credit (and we do give substantial partial credit) than to get no credit at all.
  • Ask for help when you need it. Feel free to reach out to the professors and lab instructors if you find yourself unsure about any aspect of the course, or even if you just want to learn more. We're there for you.
Evaluation Criteria
  1. Assignments (25%)
    • There are nine assignments designed to help you practice concepts learned in class.
    • The best six assignments will count towards your final grade. Missing assignments count as zeroes.
    • Available on the Topic Outline page.
    • Assignments must be submitted electronically. We don't have access to your student accounts! Links to submit can be found on the assignment description page.
    • Assignments are due by midnight at the end of the day they're due.
    • Late assignments will not be accepted.
  2. Lab Activities (15%)
    • Twelve in-lab assignments consisting of examples and analytical problems of the theory covered in class.
    • Collect lab points until your lab point jar is full (100 points).
    • Available on the Topic Outline page.
    • Some lab activities might require material you haven't seen in class yet. Skip those bits and do what you can. The lab will not be due before all the material has been covered.
    • Lab activities are due by midnight at the end of the day they're due.
    • Late labs will not be accepted.
  3. Midterm Tests (20%)
    • Two midterm tests used to evaluate your knowledge of course content.
    • Tests are taken using the BrightSpace quiz tool.
    • Tests take place on Friday of the week they are scheduled.
    • The test will be available to start for a period of at least six hours during the day.
    • You have 90 minutes to complete each test from the time you start it.
    • Tests are open book.
    • No collaboration on tests will be tolerated. (See the Academic Integrity section below.)
    • If you miss one midterm, the weight for that midterm will be moved to the final exam.
    • If you miss both midterms, the weight of one test will be moved to the final exam. You will receive a grade of zero on the other.
  4. Final Exam (30%)
    • The final exam is taken using the BrightSpace quiz tool.
    • Scheduled by the Registrar during the formal exam period.
    • Will cover all material in the course.
    • If you miss the final exam for any reason, you must contact the Dean of Science withing 48 hours to request a new time.

      You should send a copy of your request to your lecture instructor, but keep in mind that it's the Dean that decides whether you will get another chance.

  5. Better Testing Grade (10%)
    • Either your combined midterm test scores or your final exam score, whichever is greater.

The final mark will be a letter grade based on the scale described in Section 5 of the Academic Regulations in the University Calendar. There will be no supplementary examinations. Note: students majoring in CS or Mathematics must achieve a minimum grade of C.

Missed Final Exams
If you miss the final exam, you must contact the Dean of Science within 48 hours to schedule a new time, as explained in Academic Regulation #10 “Special Examinations”. The Dean decides whether your excuse is acceptable.
Academic Integrity

You are required to demonstrate academic integrity in all of the work that you do. The University provides policies and procedures that every member of the university community is required to follow to ensure academic integrity.

There is no group-work in this course. Not on the weely assignments; not on the in-lab activities; not on the tests and exam.

What that means is, unless stated otherwise, it is expected that all the work you submit is your OWN work. You must compose and type it all by yourself, and not copy any of it from any other source, except:

  • We will sometimes provide you with “starter code”. This code can be incorporated entirely into your submission.
  • We provide sample code with the lecture notes. Code from those samples can be copied into your work and used as-is or adapted as required.
  • Code YOU prepared for an earlier assignment or lab may be copied into one of your later assignments/labs/tests, and used as-is or adapted as required.
  • For weekly assignments and in-lab activities, students may work together to generate pseudocode algorithms (the term will be explained in class). These algorithms must appear in your submitted work as comments in the code, together with a comment indicating all people who worked together to generate that pseudocode.

The student who gives code to another is also guilty of an academic integrity violation, even if it was given with a warning not to copy it.

Using LLMs or other AI tools that generate code and submitting the results as one's own original work is prohibited. Such actions will be considered a violation of Academic Regulation 18. Students are allowed to use the AI tools for learning purposes, provided that they declare the use of AI in their submissions and they do not claim the content generated by the AI as their original work. Violation of this policy will be treated as an academic offense pursuant to Academic Regulation 18.

The penalty for submitting any work that violates the academic integrity rules is a zero on that submission—even if the violation pertains to only part of the submission. There will be no chance to re-submit that material.

If your submission is singled out in suspicion of an academic integrity violation, the Academic Integrity Officer will get in touch with you to give you a chance to explain what happened. The AIO may decide to drop the matter at that time.

The Registrar will keep a record of your academic integrity violations. The violations will not be part of the public record, but any further action (usually as the result of a second offence) could be.

Lack of knowledge of the academic integrity policy is not a reasonable explanation for a violation. You are encouraged to consult the Academic Integrity and Student Code of Conduct sections of the Academic Regulations in the Academic Calendar, in order to be well informed on the consequences of dishonest behaviour.

The relevant sections are also available here.

Note that there is an appeal process, so you have recourse if you think your professor and the AIO have been unreasonable. Know your rights..
Privacy Information

Assignments are evaluated with appropriate feedback to the student who wrote them. In order to view your evaluations, you will be required to sign-up for the course web page. Exams may be viewed by appointment after grades are submitted. For more information see the SMU privacy policies.

Accessibility
As part of Saint Mary's University Core Values statement, the University is committed to accessibility, diversity, and the provision of a positive and supportive learning environment through the effective integration of teaching and research. The Fred Smithers Centre establishes individualized support service programs to facilitate the participation of students with physical, medical, and learning disabilities, and provides students with disability accommodation services and supports. Students are encouraged to seek more information by visiting the Centre.
Student Counselling
University can be a very stressful time in a person's life. Dealing with heavy work-loads and novel social situations can sometimes get to be more than you can handle on your own. I know. If you need help, the Counselling Centre is located on the 4th floor of the Student Centre and offers daily drop-in sessions and peer support from students trained in mental health. See their web page at smu.ca/counselling.
In Case of Emergency
It is important to be familiar with SMU Security Procedures so you are prepared in the case of an emergency situation/need for evacuation.